gem-release 2.0.0.dev.2 → 2.0.0.dev.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/TODO.txt +30 -2
- data/lib/gem/release/cmds/bump.rb +30 -10
- data/lib/gem/release/cmds/tag.rb +3 -2
- data/lib/gem/release/config/files.rb +1 -1
- data/lib/gem/release/context/gemspec.rb +1 -1
- data/lib/gem/release/data.rb +5 -1
- data/lib/gem/release/files/templates/group.rb +1 -1
- data/lib/gem/release/files/version.rb +10 -2
- data/lib/gem/release/helper.rb +2 -1
- data/lib/gem/release/support/gem_command.rb +7 -0
- data/lib/gem/release/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3379c9a8fe1a960836949e5167f96f83d10c71c7
|
4
|
+
data.tar.gz: a59c0b440b3d1ffd6cc862f2d696b267b478268d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3c31dd8dadfea502f17759e37228e920e773d7a7584d84cbc2c58ea5752ea9fd6bfd9ee2499866756feea1a6297d203c13384dee10d7a6b74aaa7a44a5309f82
|
7
|
+
data.tar.gz: 6e23a458c04035355e4e62c78992e125f17f39a9d1a5d24f26326cdb906ab1477263619b8f6fd88927b27490bba13d205af9384466bdc644f24116141f5dbba9
|
data/TODO.txt
CHANGED
@@ -3,14 +3,42 @@
|
|
3
3
|
- Add defaults to options help output [5]
|
4
4
|
- Add specs for all error conditions [6]
|
5
5
|
- Add a changelog [7]
|
6
|
+
- Check for TODO tags [17]
|
6
7
|
|
7
8
|
- Make sure we don't double tag the same repo when several args are given [9]
|
8
9
|
|
10
|
+
- Port "Adding ability to GPG sign commits and tags" [10]
|
11
|
+
https://github.com/svenfuchs/gem-release/pull/44
|
12
|
+
|
13
|
+
# Done
|
14
|
+
|
15
|
+
x Port "Support version files of gems with *rb suffix" done:2017-05-02 [13]
|
16
|
+
https://github.com/svenfuchs/gem-release/pull/53
|
17
|
+
Ported
|
18
|
+
|
19
|
+
x Port "Add --message for BumpCommand", allow to use a config var for this done:2017-05-02 [11]
|
20
|
+
https://github.com/svenfuchs/gem-release/pull/61
|
21
|
+
Ported
|
22
|
+
|
23
|
+
x Port "Maintenance tasks" done:2017-05-02 [12]
|
24
|
+
https://github.com/svenfuchs/gem-release/pull/57
|
25
|
+
Ported
|
26
|
+
|
27
|
+
x Check "bump any version file" done:2017-05-02 [14]
|
28
|
+
https://github.com/svenfuchs/gem-release/pull/45
|
29
|
+
Ported
|
30
|
+
|
31
|
+
x Consider "gem bootstrap --private for private gems" done:2017-05-01 [15]
|
32
|
+
https://github.com/svenfuchs/gem-release/issues/51
|
33
|
+
Already covered via custom templates
|
34
|
+
|
35
|
+
x See if we can remove unused common options from `help` done:2017-05-01 [16]
|
36
|
+
https://github.com/svenfuchs/gem-release/issues/55
|
37
|
+
Can't figure out how, without removing options globally for everyone/all other commands
|
38
|
+
|
9
39
|
x Release and tag should fail if there are uncommitted changes done:2017-05-01 [8]
|
10
40
|
https://github.com/svenfuchs/gem-release/issues/34
|
11
41
|
|
12
|
-
# Double check
|
13
|
-
|
14
42
|
x Misleading success message done:2017-05-01 [4]
|
15
43
|
https://github.com/svenfuchs/gem-release/issues/60
|
16
44
|
Pushing foo-0.0.5.gem
|
@@ -43,20 +43,32 @@ module Gem
|
|
43
43
|
|
44
44
|
DESCR = {
|
45
45
|
version: 'Target version: next [major|minor|patch|pre|release] or a given version number [x.x.x]',
|
46
|
-
commit: '
|
46
|
+
commit: 'Create a commit after incrementing gem version',
|
47
|
+
message: 'Commit message template',
|
47
48
|
push: 'Push the new commit to the git remote repository',
|
48
49
|
remote: 'Git remote to push to (defaults to origin)',
|
50
|
+
sign: 'GPG sign the commit message',
|
49
51
|
tag: 'Shortcut for running the `gem tag` command',
|
50
52
|
recurse: 'Recurse into directories that contain gemspec files',
|
51
|
-
release: 'Shortcut for the `gem release` command'
|
53
|
+
release: 'Shortcut for the `gem release` command',
|
54
|
+
file: 'Full path to the version file'
|
52
55
|
}
|
53
56
|
|
54
57
|
DEFAULTS = {
|
55
|
-
commit:
|
56
|
-
|
57
|
-
|
58
|
+
commit: true,
|
59
|
+
message: 'Bump to %{to} [skip ci]',
|
60
|
+
push: false,
|
61
|
+
remote: 'origin'
|
58
62
|
}
|
59
63
|
|
64
|
+
opt '-v', '--version VERSION', DESCR[:version] do |value|
|
65
|
+
opts[:version] = value
|
66
|
+
end
|
67
|
+
|
68
|
+
opt '-m', '--message', DESCR[:message] do |value|
|
69
|
+
opts[:message] = value
|
70
|
+
end
|
71
|
+
|
60
72
|
opt '-c', '--[no-]commit', DESCR[:commit] do |value|
|
61
73
|
opts[:commit] = value
|
62
74
|
end
|
@@ -69,8 +81,8 @@ module Gem
|
|
69
81
|
opts[:remote] = value
|
70
82
|
end
|
71
83
|
|
72
|
-
opt '-
|
73
|
-
opts[:
|
84
|
+
opt '-s', '--sign', DESCR[:sign] do |value|
|
85
|
+
opts[:sign] = value
|
74
86
|
end
|
75
87
|
|
76
88
|
opt '-t', '--tag', DESCR[:tag] do |value|
|
@@ -85,6 +97,10 @@ module Gem
|
|
85
97
|
opts[:recurse] = value
|
86
98
|
end
|
87
99
|
|
100
|
+
opt '--file', DESCR[:file] do |value|
|
101
|
+
opts[:file] = value
|
102
|
+
end
|
103
|
+
|
88
104
|
MSGS = {
|
89
105
|
bump: 'Bumping %s from version %s to %s',
|
90
106
|
version: 'Changing version in %s from %s to %s',
|
@@ -98,7 +114,7 @@ module Gem
|
|
98
114
|
|
99
115
|
CMDS = {
|
100
116
|
git_add: 'git add %s',
|
101
|
-
git_commit: 'git commit -m
|
117
|
+
git_commit: 'git commit -m %p %s',
|
102
118
|
git_push: 'git push %s'
|
103
119
|
}
|
104
120
|
|
@@ -131,7 +147,7 @@ module Gem
|
|
131
147
|
|
132
148
|
def commit
|
133
149
|
cmd :git_add, version.path
|
134
|
-
cmd :git_commit,
|
150
|
+
cmd :git_commit, message, opts[:sign] ? '-S' : ''
|
135
151
|
end
|
136
152
|
|
137
153
|
def push
|
@@ -150,8 +166,12 @@ module Gem
|
|
150
166
|
@version = nil
|
151
167
|
end
|
152
168
|
|
169
|
+
def message
|
170
|
+
opts[:message] % version.to_h
|
171
|
+
end
|
172
|
+
|
153
173
|
def version
|
154
|
-
@version ||= Files::Version.new(gem.name, opts[:version])
|
174
|
+
@version ||= Files::Version.new(gem.name, opts[:version], only(opts, :file))
|
155
175
|
end
|
156
176
|
|
157
177
|
def push?
|
data/lib/gem/release/cmds/tag.rb
CHANGED
@@ -31,6 +31,7 @@ module Gem
|
|
31
31
|
DESCR = {
|
32
32
|
push: 'Push tag to the remote git repository',
|
33
33
|
remote: 'Git remote to push to (defaults to origin)',
|
34
|
+
sign: 'GPG sign the tag',
|
34
35
|
}
|
35
36
|
|
36
37
|
opt '-p', '--[no]-push', DESCR[:push] do
|
@@ -50,7 +51,7 @@ module Gem
|
|
50
51
|
}
|
51
52
|
|
52
53
|
CMDS = {
|
53
|
-
git_tag: 'git tag -am "tag %s" %s',
|
54
|
+
git_tag: 'git tag -am "tag %s" %s %s',
|
54
55
|
git_push: 'git push --tags %s'
|
55
56
|
}
|
56
57
|
|
@@ -71,7 +72,7 @@ module Gem
|
|
71
72
|
end
|
72
73
|
|
73
74
|
def tag
|
74
|
-
cmd :git_tag, tag_name, tag_name
|
75
|
+
cmd :git_tag, tag_name, tag_name, opts[:sign] ? '--sign' : ''
|
75
76
|
end
|
76
77
|
|
77
78
|
def push
|
data/lib/gem/release/data.rb
CHANGED
@@ -10,7 +10,7 @@ module Gem
|
|
10
10
|
def data
|
11
11
|
{
|
12
12
|
gem_name: gem_name,
|
13
|
-
gem_path:
|
13
|
+
gem_path: gem_path,
|
14
14
|
module_names: module_names,
|
15
15
|
author: user_name,
|
16
16
|
email: user_email,
|
@@ -32,6 +32,10 @@ module Gem
|
|
32
32
|
gem.name || raise('No gem_name given.')
|
33
33
|
end
|
34
34
|
|
35
|
+
def gem_path
|
36
|
+
gem_name.gsub('-', '/').sub(/_rb$/, '')
|
37
|
+
end
|
38
|
+
|
35
39
|
def user_name
|
36
40
|
system.git_user_name || '[your name]'
|
37
41
|
end
|
@@ -3,7 +3,7 @@ require 'gem/release/version/number'
|
|
3
3
|
module Gem
|
4
4
|
module Release
|
5
5
|
module Files
|
6
|
-
class Version < Struct.new(:name, :version)
|
6
|
+
class Version < Struct.new(:name, :version, :opts)
|
7
7
|
VERSION = /(VERSION\s*=\s*(?:"|'))((?:(?!"|').)*)("|')/
|
8
8
|
RELEASE = /^(\d+)\.(\d+)\.(\d+)(.*)$/
|
9
9
|
PRE_RELEASE = /^(\d+)\.(\d+)\.(\d+)\.?(.*)(\d+)$/
|
@@ -19,7 +19,7 @@ module Gem
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def path
|
22
|
-
@path ||= paths.detect { |path| File.
|
22
|
+
@path ||= opts[:file] || paths.detect { |path| File.exist?(path) }
|
23
23
|
end
|
24
24
|
|
25
25
|
def from
|
@@ -30,6 +30,10 @@ module Gem
|
|
30
30
|
@to ||= number.bump
|
31
31
|
end
|
32
32
|
|
33
|
+
def to_h
|
34
|
+
{ from: from, to: to }
|
35
|
+
end
|
36
|
+
|
33
37
|
private
|
34
38
|
|
35
39
|
def paths
|
@@ -62,6 +66,10 @@ module Gem
|
|
62
66
|
def path_to(path)
|
63
67
|
"lib/#{path}/version.rb"
|
64
68
|
end
|
69
|
+
|
70
|
+
def name
|
71
|
+
@name ||= super.sub(/_rb$/, '')
|
72
|
+
end
|
65
73
|
end
|
66
74
|
end
|
67
75
|
end
|
data/lib/gem/release/helper.rb
CHANGED
@@ -17,6 +17,7 @@ module Gem
|
|
17
17
|
info cmd, *args
|
18
18
|
cmd = self.class::CMDS[cmd] % args
|
19
19
|
end
|
20
|
+
cmd = cmd.strip
|
20
21
|
notice "$ #{cmd}"
|
21
22
|
result = pretend? ? true : system.run(cmd)
|
22
23
|
abort "The command `#{cmd}` was unsuccessful." unless result
|
@@ -31,7 +32,7 @@ module Gem
|
|
31
32
|
%w(announce notice info warn error).each do |level|
|
32
33
|
define_method(level) do |msg, *args|
|
33
34
|
msg = self.class::MSGS[msg] % args if msg.is_a?(Symbol)
|
34
|
-
context.send(level, msg) unless quiet?
|
35
|
+
context.send(level, msg.strip) unless quiet?
|
35
36
|
end
|
36
37
|
end
|
37
38
|
|
data/lib/gem/release/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gem-release
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.dev.
|
4
|
+
version: 2.0.0.dev.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sven Fuchs
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-05-
|
12
|
+
date: 2017-05-02 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Release your ruby gems with ease. (What a bold statement for such a tiny
|
15
15
|
plugin ...)
|