hoe-git 1.3.0 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/CHANGELOG.rdoc +11 -0
- data/README.rdoc +7 -4
- data/lib/hoe/git.rb +66 -17
- metadata +60 -17
- metadata.gz.sig +3 -0
data.tar.gz.sig
ADDED
Binary file
|
data/CHANGELOG.rdoc
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
=== 1.4.0 / 2011-05-16
|
2
|
+
|
3
|
+
* 2 minor enhancements:
|
4
|
+
|
5
|
+
* Exported all the other git functions so that other rake tasks can benefit.
|
6
|
+
* Updated git:changelog to support annotated commit messages.
|
7
|
+
|
8
|
+
* 1 bug fix:
|
9
|
+
|
10
|
+
* Fix shell escaping on Windows. [Gordon Thiesfeld]
|
11
|
+
|
1
12
|
=== 1.3.0 / 2009-07-27
|
2
13
|
|
3
14
|
* Add a git:manifest task. [Phil Hagelb0rg]
|
data/README.rdoc
CHANGED
@@ -24,12 +24,15 @@ This takes all the commit messages since your last release and formats
|
|
24
24
|
'em into a nice RDoc fragment. If you specify <tt>VERSION</tt>, it'll
|
25
25
|
be used in the changelog fragment. If you specify <tt>FROM</tt>, it'll
|
26
26
|
be used as a starting point for the changelog instead of your last
|
27
|
-
release.
|
27
|
+
tagged release.
|
28
28
|
|
29
|
-
|
30
|
-
|
29
|
+
The rdoc is automatically formatted into sections by using "annotated
|
30
|
+
commit messages" by using a simple format for multi-line commit messages:
|
31
31
|
|
32
|
-
|
32
|
+
! major change description.
|
33
|
+
+ minor change description.
|
34
|
+
- bug fix description.
|
35
|
+
un-logged description (for minor stuff like re-formatting).
|
33
36
|
|
34
37
|
=== Generating the Manifest
|
35
38
|
|
data/lib/hoe/git.rb
CHANGED
@@ -20,7 +20,7 @@ class Hoe #:nodoc:
|
|
20
20
|
module Git
|
21
21
|
|
22
22
|
# Duh.
|
23
|
-
VERSION = "1.
|
23
|
+
VERSION = "1.4.0"
|
24
24
|
|
25
25
|
# What do you want at the front of your release tags?
|
26
26
|
# [default: <tt>"v"</tt>]
|
@@ -42,31 +42,51 @@ class Hoe #:nodoc:
|
|
42
42
|
|
43
43
|
desc "Print the current changelog."
|
44
44
|
task "git:changelog" do
|
45
|
-
|
46
|
-
tag = ENV["FROM"] || tags.last
|
45
|
+
tag = ENV["FROM"] || git_tags.last
|
47
46
|
range = [tag, "HEAD"].compact.join ".."
|
48
|
-
cmd = "git log #{range} '--format=tformat:%
|
47
|
+
cmd = "git log #{range} '--format=tformat:%B|||%aN|||%aE|||'"
|
49
48
|
now = Time.new.strftime "%Y-%m-%d"
|
50
49
|
|
51
|
-
changes = `#{cmd}`.split(
|
52
|
-
msg
|
53
|
-
|
54
|
-
developer = self.author.include?(author) ||
|
55
|
-
self.email.include?(email)
|
56
|
-
|
57
|
-
msg << " [#{author || email}]" unless developer
|
58
|
-
msg
|
50
|
+
changes = `#{cmd}`.split(/\|\|\|/).each_slice(3).map do |msg, author, email|
|
51
|
+
msg.split(/\n/).reject { |s| s.empty? }
|
59
52
|
end
|
60
53
|
|
54
|
+
changes = changes.flatten
|
55
|
+
|
61
56
|
next if changes.empty?
|
62
57
|
|
58
|
+
$changes = Hash.new { |h,k| h[k] = [] }
|
59
|
+
|
60
|
+
codes = {
|
61
|
+
"!" => :major,
|
62
|
+
"+" => :minor,
|
63
|
+
"*" => :minor,
|
64
|
+
"-" => :bug,
|
65
|
+
"?" => :unknown,
|
66
|
+
}
|
67
|
+
|
68
|
+
codes_re = Regexp.escape codes.keys.join
|
69
|
+
|
70
|
+
changes.each do |change|
|
71
|
+
if change =~ /^\s*([#{codes_re}])\s*(.*)/ then
|
72
|
+
code, line = codes[$1], $2
|
73
|
+
else
|
74
|
+
code, line = codes["?"], change.chomp
|
75
|
+
end
|
76
|
+
|
77
|
+
$changes[code] << line
|
78
|
+
end
|
79
|
+
|
63
80
|
puts "=== #{ENV['VERSION'] || 'NEXT'} / #{now}"
|
64
81
|
puts
|
65
|
-
|
66
|
-
|
82
|
+
changelog_section :major
|
83
|
+
changelog_section :minor
|
84
|
+
changelog_section :bug
|
85
|
+
changelog_section :unknown
|
67
86
|
puts
|
68
87
|
end
|
69
88
|
|
89
|
+
|
70
90
|
desc "Update the manifest with Git's file list. Use Hoe's excludes."
|
71
91
|
task "git:manifest" do
|
72
92
|
with_config do |config, _|
|
@@ -103,10 +123,12 @@ class Hoe #:nodoc:
|
|
103
123
|
end
|
104
124
|
|
105
125
|
def git_tag_and_push tag
|
126
|
+
msg = "Tagging #{tag}."
|
127
|
+
|
106
128
|
if git_svn?
|
107
|
-
sh "git svn tag #{tag} -m '
|
129
|
+
sh "git svn tag #{tag} -m '#{msg}'"
|
108
130
|
else
|
109
|
-
sh "git tag -f #{tag}"
|
131
|
+
sh "git tag -f #{tag} -m '#{msg}'"
|
110
132
|
git_remotes.each { |remote| sh "git push -f #{remote} tag #{tag}" }
|
111
133
|
end
|
112
134
|
end
|
@@ -125,8 +147,35 @@ class Hoe #:nodoc:
|
|
125
147
|
collect { |t| t.strip }.
|
126
148
|
select { |t| t =~ %r{^#{prefix}/#{git_release_tag_prefix}} }
|
127
149
|
else
|
128
|
-
|
150
|
+
flags = "--date-order --simplify-by-decoration --pretty=format:%H"
|
151
|
+
hashes = `git log #{flags}`.split(/\n/).reverse
|
152
|
+
names = `git name-rev #{hashes.join " "}`.split(/\n/)
|
153
|
+
names = names.map { |s| s[/tags\/(v.+)/, 1] }.compact
|
154
|
+
names.select { |t| t =~ %r{^#{git_release_tag_prefix}} }
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
def changelog_section code
|
159
|
+
name = {
|
160
|
+
:major => "major enhancement",
|
161
|
+
:minor => "minor enhancement",
|
162
|
+
:bug => "bug fix",
|
163
|
+
:unknown => "unknown",
|
164
|
+
}[code]
|
165
|
+
|
166
|
+
changes = $changes[code]
|
167
|
+
count = changes.size
|
168
|
+
name += "s" if count > 1
|
169
|
+
name.sub!(/fixs/, 'fixes')
|
170
|
+
|
171
|
+
return if count < 1
|
172
|
+
|
173
|
+
puts "* #{count} #{name}:"
|
174
|
+
puts
|
175
|
+
changes.sort.each do |line|
|
176
|
+
puts " * #{line}"
|
129
177
|
end
|
178
|
+
puts
|
130
179
|
end
|
131
180
|
end
|
132
181
|
end
|
metadata
CHANGED
@@ -1,37 +1,75 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hoe-git
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 7
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 4
|
9
|
+
- 0
|
10
|
+
version: 1.4.0
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- John Barnette
|
8
14
|
autorequire:
|
9
15
|
bindir: bin
|
10
|
-
cert_chain:
|
16
|
+
cert_chain:
|
17
|
+
- |
|
18
|
+
-----BEGIN CERTIFICATE-----
|
19
|
+
MIIDPjCCAiagAwIBAgIBADANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
|
20
|
+
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
21
|
+
GRYDY29tMB4XDTA5MDMwNjE4NTMxNVoXDTEwMDMwNjE4NTMxNVowRTETMBEGA1UE
|
22
|
+
AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
|
23
|
+
JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
|
24
|
+
b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
|
25
|
+
taCPaLmfYIaFcHHCSY4hYDJijRQkLxPeB3xbOfzfLoBDbjvx5JxgJxUjmGa7xhcT
|
26
|
+
oOvjtt5P8+GSK9zLzxQP0gVLS/D0FmoE44XuDr3iQkVS2ujU5zZL84mMNqNB1znh
|
27
|
+
GiadM9GHRaDiaxuX0cIUBj19T01mVE2iymf9I6bEsiayK/n6QujtyCbTWsAS9Rqt
|
28
|
+
qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
|
29
|
+
gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
|
30
|
+
HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBBQUAA4IB
|
31
|
+
AQAY59gYvDxqSqgC92nAP9P8dnGgfZgLxP237xS6XxFGJSghdz/nI6pusfCWKM8m
|
32
|
+
vzjjH2wUMSSf3tNudQ3rCGLf2epkcU13/rguI88wO6MrE0wi4ZqLQX+eZQFskJb/
|
33
|
+
w6x9W1ur8eR01s397LSMexySDBrJOh34cm2AlfKr/jokKCTwcM0OvVZnAutaovC0
|
34
|
+
l1SVZ0ecg88bsWHA0Yhh7NFxK1utWoIhtB6AFC/+trM0FQEB/jZkIS8SaNzn96Rl
|
35
|
+
n0sZEf77FLf5peR8TP/PtmIg7Cyqz23sLM4mCOoTGIy5OcZ8TdyiyINUHtb5ej/T
|
36
|
+
FBHgymkyj/AOSqKRIpXPhjC6
|
37
|
+
-----END CERTIFICATE-----
|
11
38
|
|
12
|
-
date:
|
13
|
-
default_executable:
|
39
|
+
date: 2011-05-17 00:00:00 Z
|
14
40
|
dependencies:
|
15
41
|
- !ruby/object:Gem::Dependency
|
16
42
|
name: hoe
|
17
|
-
|
18
|
-
|
19
|
-
|
43
|
+
prerelease: false
|
44
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
45
|
+
none: false
|
20
46
|
requirements:
|
21
47
|
- - ">="
|
22
48
|
- !ruby/object:Gem::Version
|
49
|
+
hash: 7
|
50
|
+
segments:
|
51
|
+
- 2
|
52
|
+
- 2
|
53
|
+
- 0
|
23
54
|
version: 2.2.0
|
24
|
-
|
55
|
+
type: :runtime
|
56
|
+
version_requirements: *id001
|
25
57
|
- !ruby/object:Gem::Dependency
|
26
58
|
name: hoe
|
27
|
-
|
28
|
-
|
29
|
-
|
59
|
+
prerelease: false
|
60
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
30
62
|
requirements:
|
31
63
|
- - ">="
|
32
64
|
- !ruby/object:Gem::Version
|
33
|
-
|
34
|
-
|
65
|
+
hash: 35
|
66
|
+
segments:
|
67
|
+
- 2
|
68
|
+
- 9
|
69
|
+
- 4
|
70
|
+
version: 2.9.4
|
71
|
+
type: :development
|
72
|
+
version_requirements: *id002
|
35
73
|
description: |-
|
36
74
|
A set of Hoe plugins for tighter Git integration. Provides tasks to
|
37
75
|
automate release tagging and pushing and changelog generation. I
|
@@ -53,7 +91,6 @@ files:
|
|
53
91
|
- README.rdoc
|
54
92
|
- Rakefile
|
55
93
|
- lib/hoe/git.rb
|
56
|
-
has_rdoc: true
|
57
94
|
homepage: http://github.com/jbarnette/hoe-git
|
58
95
|
licenses: []
|
59
96
|
|
@@ -64,21 +101,27 @@ rdoc_options:
|
|
64
101
|
require_paths:
|
65
102
|
- lib
|
66
103
|
required_ruby_version: !ruby/object:Gem::Requirement
|
104
|
+
none: false
|
67
105
|
requirements:
|
68
106
|
- - ">="
|
69
107
|
- !ruby/object:Gem::Version
|
108
|
+
hash: 3
|
109
|
+
segments:
|
110
|
+
- 0
|
70
111
|
version: "0"
|
71
|
-
version:
|
72
112
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
73
114
|
requirements:
|
74
115
|
- - ">="
|
75
116
|
- !ruby/object:Gem::Version
|
117
|
+
hash: 3
|
118
|
+
segments:
|
119
|
+
- 0
|
76
120
|
version: "0"
|
77
|
-
version:
|
78
121
|
requirements: []
|
79
122
|
|
80
123
|
rubyforge_project: hoe-git
|
81
|
-
rubygems_version: 1.
|
124
|
+
rubygems_version: 1.8.2
|
82
125
|
signing_key:
|
83
126
|
specification_version: 3
|
84
127
|
summary: A set of Hoe plugins for tighter Git integration
|
metadata.gz.sig
ADDED