releasetool 0.5.1 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/releasetool.rb +1 -1
- data/lib/tasks/release_thor.rb +3 -2
- data/release_notes/v0.5.2.md +10 -0
- data/release_notes/v0.5.3.md +5 -0
- data/releasetool.gemspec +1 -0
- data/spec/releasetool_spec.rb +49 -7
- metadata +19 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6b0bf2084778fb39bcc2e7e1997069473c7fc3d72db0fbd0357e775c6226f29
|
4
|
+
data.tar.gz: 50c233e3f1efa69f4b027bd214eeebbc4504854706e81b8b3e222e77699ac370
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b324b29b9b5ac6f141a0853a8e8887afa788329a9a15dd5dc0030c2d3abab4751f8d67f0fccf5029a2aee56a73aa20c1882ba38fe9cae0fed6d8e0f6399a2fd7
|
7
|
+
data.tar.gz: 8c6465c57837b267999cd74b71155b7feec58fb6f2508dc7d65a44bd12aeee7d646d723c7d400e068c1a93abee7c9ff1613ac5ee0b871062f7033dcfce713d39
|
data/lib/releasetool.rb
CHANGED
data/lib/tasks/release_thor.rb
CHANGED
@@ -5,6 +5,7 @@ require "releasetool"
|
|
5
5
|
require "releasetool/release"
|
6
6
|
require "releasetool/util"
|
7
7
|
require "releasetool/version"
|
8
|
+
require "shellwords"
|
8
9
|
|
9
10
|
class Release < Thor
|
10
11
|
include Releasetool::Util
|
@@ -82,7 +83,7 @@ class Release < Thor
|
|
82
83
|
guarded_system("git add #{Releasetool::Util.version_file}") if File.exist?(Releasetool::Util.version_file)
|
83
84
|
guarded_system("git commit #{DIR} #{File.exist?(Releasetool::Util.version_file) ? Releasetool::Util.version_file : ''} #{options[:edit] ? '-e' : nil} -m\"#{DEFAULT_COMMIT_MESSAGE}\"")
|
84
85
|
end
|
85
|
-
config.after_commit_hook(version)
|
86
|
+
config.after_commit_hook(version) if options[:after]
|
86
87
|
end
|
87
88
|
|
88
89
|
desc "tag (NEW_VERSION)", <<-END
|
@@ -93,7 +94,7 @@ class Release < Thor
|
|
93
94
|
def tag(version = nil)
|
94
95
|
version ||= stored_version
|
95
96
|
last_useful_commit = guarded_capture("git log head^^..head^ --pretty=format:%s").strip.split("\n").first.strip
|
96
|
-
guarded_system("git tag -a #{version} -e -m
|
97
|
+
guarded_system("git tag -a #{version} -e -m #{last_useful_commit.shellescape}")
|
97
98
|
end
|
98
99
|
|
99
100
|
desc "push (NEW_VERSION)", <<-END
|
@@ -0,0 +1,10 @@
|
|
1
|
+
v0.5.2 Release Notes
|
2
|
+
|
3
|
+
*Changes since v0.5.1*
|
4
|
+
|
5
|
+
allow release commit --after and release commit --no-after (#13)
|
6
|
+
|
7
|
+
* `--after` for doing only the after commit hook (if it fails first time).
|
8
|
+
* `--no-after` for skipping the after commit hook
|
9
|
+
|
10
|
+
- actually working in v0.5.2 (with test)
|
data/releasetool.gemspec
CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_dependency 'thor', '>= 0.18'
|
23
23
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 2.1"
|
25
|
+
spec.add_development_dependency "climate_control"
|
25
26
|
spec.add_development_dependency "rake"
|
26
27
|
spec.add_development_dependency "rspec"
|
27
28
|
spec.add_development_dependency "rubocop", "1.56.3"
|
data/spec/releasetool_spec.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
require 'fileutils'
|
5
|
+
require 'climate_control'
|
5
6
|
require File.expand_path('../lib/tasks/release_thor', __dir__)
|
6
7
|
|
7
8
|
RSpec.describe Releasetool do
|
@@ -10,7 +11,13 @@ RSpec.describe Releasetool do
|
|
10
11
|
end
|
11
12
|
end
|
12
13
|
|
13
|
-
RSpec.describe Release, quietly:
|
14
|
+
RSpec.describe Release, quietly: true do
|
15
|
+
around do |example|
|
16
|
+
ClimateControl.modify(RELEASETOOL_VERSION_FILE: nil) do # in case it is defined...
|
17
|
+
example.run
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
14
21
|
subject { Release.new }
|
15
22
|
|
16
23
|
let(:tmpdir) { File.expand_path('../tmp/testing', __dir__) }
|
@@ -124,22 +131,29 @@ RSpec.describe Release, quietly: false do
|
|
124
131
|
end
|
125
132
|
|
126
133
|
describe "commit" do
|
127
|
-
|
128
|
-
|
134
|
+
let(:options) { { after: "default" } }
|
135
|
+
subject { Release.new([], options, {}) }
|
136
|
+
|
137
|
+
let!(:commit_expectations) {
|
129
138
|
expect(subject).to receive(:guarded_system).with("git add release_notes")
|
130
139
|
expect(subject).to receive(:guarded_system).with("git add config/initializers/00-version.rb")
|
140
|
+
expect(subject).to receive(:guarded_system).with("git commit release_notes config/initializers/00-version.rb -m\"#{Release::DEFAULT_COMMIT_MESSAGE}\"")
|
131
141
|
}
|
132
142
|
context "with no args" do
|
133
143
|
it "outputs without -e" do
|
134
|
-
expect(subject).to receive(:guarded_system).with("git commit release_notes config/initializers/00-version.rb -m\"#{Release::DEFAULT_COMMIT_MESSAGE}\"")
|
135
144
|
subject.commit('v0.0.3')
|
136
145
|
end
|
137
146
|
end
|
138
147
|
|
139
148
|
context "with --edit" do
|
149
|
+
let(:options) { { after: "default", edit: true } }
|
140
150
|
subject { Release.new([], { edit: true }, {}) }
|
141
|
-
|
151
|
+
let!(:commit_expectations) {
|
152
|
+
expect(subject).to receive(:guarded_system).with("git add release_notes")
|
153
|
+
expect(subject).to receive(:guarded_system).with("git add config/initializers/00-version.rb")
|
142
154
|
expect(subject).to receive(:guarded_system).with("git commit release_notes config/initializers/00-version.rb -e -m\"#{Release::DEFAULT_COMMIT_MESSAGE}\"")
|
155
|
+
}
|
156
|
+
it "outputs with e" do
|
143
157
|
subject.commit('v0.0.3')
|
144
158
|
end
|
145
159
|
end
|
@@ -148,7 +162,6 @@ RSpec.describe Release, quietly: false do
|
|
148
162
|
it "should generate and still work" do
|
149
163
|
subject.init
|
150
164
|
expected = "after_commit(v0.0.3) has been called"
|
151
|
-
expect(subject).to receive(:guarded_system).with("git commit release_notes config/initializers/00-version.rb -m\"#{Release::DEFAULT_COMMIT_MESSAGE}\"")
|
152
165
|
expect { subject.commit('v0.0.3') }.not_to output(/#{Regexp.escape(expected)}/).to_stdout
|
153
166
|
end
|
154
167
|
end
|
@@ -159,10 +172,26 @@ RSpec.describe Release, quietly: false do
|
|
159
172
|
FileUtils.cp(hooks_example_rb, "#{tmpdir}/config/releasetool/hooks.rb")
|
160
173
|
end
|
161
174
|
it "should output hook" do
|
162
|
-
expect(subject).to receive(:guarded_system).with("git commit release_notes config/initializers/00-version.rb -m\"#{Release::DEFAULT_COMMIT_MESSAGE}\"")
|
163
175
|
expected = "after_commit(v0.0.3) has been called"
|
164
176
|
expect { subject.commit('v0.0.3') }.to output(/#{Regexp.escape(expected)}/).to_stdout
|
165
177
|
end
|
178
|
+
context "with --after" do
|
179
|
+
let(:options) { { after: true } }
|
180
|
+
let!(:commit_expectations) {
|
181
|
+
# none!
|
182
|
+
}
|
183
|
+
it "should output hook only" do
|
184
|
+
expected = "after_commit(v0.0.3) has been called"
|
185
|
+
expect { subject.commit('v0.0.3') }.to output(/#{Regexp.escape(expected)}/).to_stdout
|
186
|
+
end
|
187
|
+
end
|
188
|
+
context "with --no-after" do
|
189
|
+
let(:options) { { after: false } }
|
190
|
+
it "shouldn't output hook" do
|
191
|
+
expected = "after_commit(v0.0.3) has been called"
|
192
|
+
expect { subject.commit('v0.0.3') }.not_to output(/#{Regexp.escape(expected)}/).to_stdout
|
193
|
+
end
|
194
|
+
end
|
166
195
|
end
|
167
196
|
end
|
168
197
|
|
@@ -194,6 +223,19 @@ RSpec.describe Release, quietly: false do
|
|
194
223
|
end
|
195
224
|
end
|
196
225
|
|
226
|
+
describe "tag" do
|
227
|
+
let(:last_message) { "some message" }
|
228
|
+
it "calls out" do
|
229
|
+
allow(subject).to receive(:guarded_capture).with("git log head^^..head^ --pretty=format:%s").and_return "some-message"
|
230
|
+
expect(subject).to receive(:guarded_system).with("git tag -a v1.2.3 -e -m some-message")
|
231
|
+
expect(subject.tag("v1.2.3"))
|
232
|
+
end
|
233
|
+
it "escapes" do
|
234
|
+
allow(subject).to receive(:guarded_capture).with("git log head^^..head^ --pretty=format:%s").and_return 'Something new in sandwiches "aha" (#123)'
|
235
|
+
expect(subject).to receive(:guarded_system).with('git tag -a v1.2.3 -e -m Something\ new\ in\ sandwiches\ \"aha\"\ \(\#123\)')
|
236
|
+
expect(subject.tag("v1.2.3"))
|
237
|
+
end
|
238
|
+
end
|
197
239
|
# describe 'CLI' do
|
198
240
|
# it "should work with source and no target" do
|
199
241
|
# puts "CLI"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: releasetool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Diggins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-06-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '2.1'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: climate_control
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rake
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,6 +129,8 @@ files:
|
|
115
129
|
- release_notes/v0.4.0.md
|
116
130
|
- release_notes/v0.5.0.md
|
117
131
|
- release_notes/v0.5.1.md
|
132
|
+
- release_notes/v0.5.2.md
|
133
|
+
- release_notes/v0.5.3.md
|
118
134
|
- releasetool.gemspec
|
119
135
|
- spec/fixtures/empty_file.rb
|
120
136
|
- spec/fixtures/example_with_releases.tar
|
@@ -142,7 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
142
158
|
- !ruby/object:Gem::Version
|
143
159
|
version: '0'
|
144
160
|
requirements: []
|
145
|
-
rubygems_version: 3.
|
161
|
+
rubygems_version: 3.5.13
|
146
162
|
signing_key:
|
147
163
|
specification_version: 4
|
148
164
|
summary: Release management tools
|