gem-release 2.0.0.dev.2 → 2.0.0.dev.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 ...)
|