bump 0.7.0 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +16 -1
- data/bin/bump +13 -11
- data/lib/bump.rb +40 -30
- data/lib/bump/tasks.rb +6 -2
- 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: 83453453cffa0d63a765fc4fb7aa084d7a992da4
|
4
|
+
data.tar.gz: f4db814fff42565eee6927dc941b026c282939df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e74704154155f9ddb50c45b40a802b6a7a0088e07a7dd073fe1ee11e0580765f1a7add70ababfc247580230a700c3707d4ff75afea36f0bd8dac9c1c11792af
|
7
|
+
data.tar.gz: 9e892e2d1e59aa12abeab19e5fdff8b54594aa9c8912404d0fd503f64a0628a4601ae81d8fbe63406663e32c3bb6e70fe295234f773b017c0e4fe64e085e5c22
|
data/README.md
CHANGED
@@ -17,6 +17,12 @@ Current version:
|
|
17
17
|
|
18
18
|
> Current version: 0.1.2
|
19
19
|
|
20
|
+
Show next patch version:
|
21
|
+
|
22
|
+
bump show-next patch
|
23
|
+
|
24
|
+
> Next patch version: 0.1.3
|
25
|
+
|
20
26
|
Version file path:
|
21
27
|
|
22
28
|
bump file
|
@@ -39,10 +45,15 @@ If you don't want to make a commit after bumping, add the `--no-commit` option.
|
|
39
45
|
|
40
46
|
### `--tag`
|
41
47
|
|
42
|
-
Will add a git tag (if the current project is a git repository and `--no-commit` has not been given).
|
48
|
+
Will add a git tag like `v1.2.3` (if the current project is a git repository and `--no-commit` has not been given).
|
43
49
|
|
44
50
|
bump patch --tag
|
45
51
|
|
52
|
+
The `--tag-prefix` option can change the tag prefix:
|
53
|
+
|
54
|
+
bump patch --tag --tag-prefix v- # tag as v-1.2.3
|
55
|
+
bump patch --tag --tag-prefix "" # tag as 1.2.3
|
56
|
+
|
46
57
|
### `--no-bundle`
|
47
58
|
|
48
59
|
If you don't want to run the `bundle` command after bumping, add the `--no-bundle` option.
|
@@ -81,6 +92,7 @@ require "bump/tasks"
|
|
81
92
|
```
|
82
93
|
|
83
94
|
rake bump:current # display current version
|
95
|
+
rake bump:show-next INCREMENT=minor # display next minor version
|
84
96
|
rake bump:file # display version file path
|
85
97
|
|
86
98
|
# bumping using defaults for `COMMIT`, `TAG`, and `BUNDLE`
|
@@ -91,6 +103,7 @@ require "bump/tasks"
|
|
91
103
|
|
92
104
|
# bumping with option(s)
|
93
105
|
rake bump:patch TAG=false BUNDLE=false # commit, but don't tag or run `bundle`
|
106
|
+
rake bump:patch TAG=true TAG_PREFIX=v- # tag with a prefix 'v-' ex. the tag will look like v-0.0.1
|
94
107
|
rake bump:patch COMMIT=false TAG=false # don't commit, don't tag
|
95
108
|
rake bump:minor BUNDLE=false # don't run `bundle`
|
96
109
|
|
@@ -99,8 +112,10 @@ require "bump/tasks"
|
|
99
112
|
```ruby
|
100
113
|
require "bump"
|
101
114
|
Bump::Bump.current # -> "1.2.3"
|
115
|
+
Bump::Bump.next_version("patch") # -> "1.2.4"
|
102
116
|
Bump::Bump.file # -> "lib/foo/version.rb"
|
103
117
|
Bump::Bump.run("patch") # -> version changed
|
118
|
+
Bump::Bump.run("patch", tag: true, tag_prefix: 'v-') # -> version changed with tagging with '-v' as prefix
|
104
119
|
Bump::Bump.run("patch", commit: false, bundle:false, tag:false) # -> version changed with options
|
105
120
|
Bump::Bump.run("patch", commit_message: '[no ci]') # -> creates a commit message with 'v1.2.3 [no ci]' instead of default: 'v1.2.3'
|
106
121
|
```
|
data/bin/bump
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'optparse'
|
3
|
+
require 'shellwords'
|
3
4
|
|
4
5
|
options = {}
|
5
6
|
OptionParser.new do |opts|
|
@@ -7,13 +8,14 @@ OptionParser.new do |opts|
|
|
7
8
|
Bump your gem version.
|
8
9
|
|
9
10
|
Usage:
|
10
|
-
bump current
|
11
|
-
bump
|
12
|
-
bump
|
13
|
-
bump
|
14
|
-
bump
|
15
|
-
bump
|
16
|
-
bump
|
11
|
+
bump current # show current version
|
12
|
+
bump show-next INCREMENT # show next (pre|patch|minor|major) version of your gem
|
13
|
+
bump file # show version file path
|
14
|
+
bump pre # increase prerelease version of your gem (1.0.0-X) [alpha, beta, rc, ]
|
15
|
+
bump patch # increase patch version of your gem (1.0.X)
|
16
|
+
bump minor # increase minor version of your gem (1.X.0)
|
17
|
+
bump major # increase major version of your gem (X.0.0)
|
18
|
+
bump set 1.2.3 # set the version number to the given value
|
17
19
|
|
18
20
|
Options:
|
19
21
|
BANNER
|
@@ -21,16 +23,16 @@ OptionParser.new do |opts|
|
|
21
23
|
opts.on("-m", "--commit-message MSG", String, "Append MSG to the commit message.") { |msg| options[:commit_message] = msg }
|
22
24
|
opts.on("--no-bundle", "Do not bundle.") { options[:bundle] = false }
|
23
25
|
opts.on("--tag", "Create git tag from version (only if commit is true).") { options[:tag] = true }
|
26
|
+
opts.on("--tag-prefix TAG_PREFIX", "Prefix the tag with this string, ex. 'v'") { |tag_prefix| options[:tag_prefix] = tag_prefix }
|
24
27
|
opts.on("--replace-in FILE", String, "Replace old version with the new version additionally in this file") { |f| (options[:replace_in] ||= []) << f }
|
25
28
|
opts.on("-h", "--help", "Show this.") { puts opts; exit }
|
26
29
|
end.parse!
|
27
30
|
|
28
|
-
|
29
|
-
|
30
|
-
exit 1
|
31
|
-
end
|
31
|
+
valid_argv = ["set", "show-next"].include?(ARGV.first) ? 2 : 1
|
32
|
+
abort "Usage instructions: bump --help" unless ARGV.size == valid_argv
|
32
33
|
|
33
34
|
options[:version] = ARGV[1] if ARGV[0] == "set"
|
35
|
+
options[:increment] = ARGV[1] if ARGV[0] == "show-next"
|
34
36
|
|
35
37
|
require File.dirname(__FILE__) + '/../lib/bump'
|
36
38
|
output, status = Bump::Bump.run(ARGV.first, options)
|
data/lib/bump.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
module Bump
|
2
|
+
class InvalidIncrementError < StandardError; end
|
2
3
|
class InvalidOptionError < StandardError; end
|
3
4
|
class InvalidVersionError < StandardError; end
|
4
5
|
class UnfoundVersionError < StandardError; end
|
@@ -20,6 +21,7 @@ module Bump
|
|
20
21
|
def defaults
|
21
22
|
{
|
22
23
|
tag: ::Bump.tag_by_default,
|
24
|
+
tag_prefix: 'v',
|
23
25
|
commit: true,
|
24
26
|
bundle: File.exist?("Gemfile"),
|
25
27
|
replace_in: ::Bump.replace_in_default || []
|
@@ -39,11 +41,18 @@ module Bump
|
|
39
41
|
bump_set(options[:version], options)
|
40
42
|
when "current"
|
41
43
|
["Current version: #{current}", 0]
|
44
|
+
when "show-next"
|
45
|
+
increment = options[:increment]
|
46
|
+
raise InvalidIncrementError unless BUMPS.include?(increment)
|
47
|
+
|
48
|
+
[next_version(increment), 0]
|
42
49
|
when "file"
|
43
50
|
["Version file path: #{file}", 0]
|
44
51
|
else
|
45
52
|
raise InvalidOptionError
|
46
53
|
end
|
54
|
+
rescue InvalidIncrementError
|
55
|
+
["Invalid increment. Choose between #{BUMPS.join(',')}.", 1]
|
47
56
|
rescue InvalidOptionError
|
48
57
|
["Invalid option. Choose between #{OPTIONS.join(',')}.", 1]
|
49
58
|
rescue InvalidVersionError
|
@@ -60,6 +69,31 @@ module Bump
|
|
60
69
|
current_info.first
|
61
70
|
end
|
62
71
|
|
72
|
+
def next_version(increment, current = Bump.current)
|
73
|
+
current, prerelease = current.split('-')
|
74
|
+
major, minor, patch, *other = current.split('.')
|
75
|
+
case increment
|
76
|
+
when "major"
|
77
|
+
major = major.succ
|
78
|
+
minor = 0
|
79
|
+
patch = 0
|
80
|
+
prerelease = nil
|
81
|
+
when "minor"
|
82
|
+
minor = minor.succ
|
83
|
+
patch = 0
|
84
|
+
prerelease = nil
|
85
|
+
when "patch"
|
86
|
+
patch = patch.succ
|
87
|
+
when "pre"
|
88
|
+
prerelease.strip! if prerelease.respond_to? :strip
|
89
|
+
prerelease = PRERELEASE[PRERELEASE.index(prerelease).succ % PRERELEASE.length]
|
90
|
+
else
|
91
|
+
raise InvalidIncrementError
|
92
|
+
end
|
93
|
+
version = [major, minor, patch, *other].compact.join('.')
|
94
|
+
[version, prerelease].compact.join('-')
|
95
|
+
end
|
96
|
+
|
63
97
|
def file
|
64
98
|
current_info.last
|
65
99
|
end
|
@@ -115,9 +149,9 @@ module Bump
|
|
115
149
|
end
|
116
150
|
end
|
117
151
|
|
118
|
-
def bump_part(
|
152
|
+
def bump_part(increment, options)
|
119
153
|
current, file = current_info
|
120
|
-
next_version = next_version(
|
154
|
+
next_version = next_version(increment, current)
|
121
155
|
bump(file, current, next_version, options)
|
122
156
|
end
|
123
157
|
|
@@ -127,13 +161,14 @@ module Bump
|
|
127
161
|
end
|
128
162
|
|
129
163
|
def commit_message(version, options)
|
130
|
-
|
131
|
-
options[:commit_message] ? "#{
|
164
|
+
tag = "#{options[:tag_prefix]}#{version}"
|
165
|
+
options[:commit_message] ? "#{tag} #{options[:commit_message]}" : tag
|
132
166
|
end
|
133
167
|
|
134
168
|
def commit(version, options)
|
169
|
+
tag = "#{options[:tag_prefix]}#{version}"
|
135
170
|
system("git", "commit", "-m", commit_message(version, options))
|
136
|
-
system("git", "tag", "-a", "-m", "Bump to
|
171
|
+
system("git", "tag", "-a", "-m", "Bump to #{tag}", tag) if options[:tag]
|
137
172
|
end
|
138
173
|
|
139
174
|
def git_add(file)
|
@@ -220,31 +255,6 @@ module Bump
|
|
220
255
|
end
|
221
256
|
end
|
222
257
|
|
223
|
-
def next_version(current, part)
|
224
|
-
current, prerelease = current.split('-')
|
225
|
-
major, minor, patch, *other = current.split('.')
|
226
|
-
case part
|
227
|
-
when "major"
|
228
|
-
major = major.succ
|
229
|
-
minor = 0
|
230
|
-
patch = 0
|
231
|
-
prerelease = nil
|
232
|
-
when "minor"
|
233
|
-
minor = minor.succ
|
234
|
-
patch = 0
|
235
|
-
prerelease = nil
|
236
|
-
when "patch"
|
237
|
-
patch = patch.succ
|
238
|
-
when "pre"
|
239
|
-
prerelease.strip! if prerelease.respond_to? :strip
|
240
|
-
prerelease = PRERELEASE[PRERELEASE.index(prerelease).succ % PRERELEASE.length]
|
241
|
-
else
|
242
|
-
raise "unknown part #{part.inspect}"
|
243
|
-
end
|
244
|
-
version = [major, minor, patch, *other].compact.join('.')
|
245
|
-
[version, prerelease].compact.join('-')
|
246
|
-
end
|
247
|
-
|
248
258
|
def under_version_control?(file)
|
249
259
|
@all_files ||= `git ls-files`.split(/\r?\n/)
|
250
260
|
@all_files.include?(file)
|
data/lib/bump/tasks.rb
CHANGED
@@ -7,9 +7,11 @@ namespace :bump do
|
|
7
7
|
abort unless status == 0
|
8
8
|
end
|
9
9
|
|
10
|
-
(Bump::Bump::BUMPS + ["current", "file"]).each do |bump|
|
10
|
+
(Bump::Bump::BUMPS + ["current", "file", "show-next"]).each do |bump|
|
11
11
|
if bump == "current"
|
12
12
|
desc "Show current gem version"
|
13
|
+
elsif bump == "show-next"
|
14
|
+
desc "Show next #{Bump::Bump::BUMPS.join('|')} version."
|
13
15
|
elsif bump == "file"
|
14
16
|
desc "Show version file path"
|
15
17
|
else
|
@@ -25,8 +27,10 @@ namespace :bump do
|
|
25
27
|
end
|
26
28
|
options = {
|
27
29
|
tag: ENV['TAG'],
|
30
|
+
tag_prefix: ENV['TAG_PREFIX'],
|
28
31
|
commit: ENV['COMMIT'],
|
29
|
-
bundle: ENV['BUNDLE']
|
32
|
+
bundle: ENV['BUNDLE'],
|
33
|
+
increment: ENV['INCREMENT']
|
30
34
|
}
|
31
35
|
run_bump.call(bump, Bump::Bump.parse_cli_options!(options))
|
32
36
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bump
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gregory Marcilhacy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|