cookbook-release 1.1.2 → 1.1.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 +8 -8
- data/cookbook-release.gemspec +1 -1
- data/lib/cookbook-release/git-utilities.rb +10 -3
- data/lib/cookbook-release/release.rb +1 -0
- data/spec/release_spec.rb +5 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
N2Y5ZDZjMzE3MjM4NjY2YTJjZDMyYWQ3NTIxYTUwOGRiYTc5MjY5Yg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NmM3YWY0YjYxZmY5ZjQwY2UyODc3MGYyYTk4YTBiNGZmZDQ2NWYyNQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ODE2ZjdjYjVlMWU2OTBmOTZjNjdmNmJiOGVkMDdmNmIwYjYwZDgyNDQwMDAz
|
10
|
+
YTMzYmUwMjAxNjkwZDMzN2Q2ODBiNzBlYjg5Y2Y4M2NhNDk1OTllZTQ0MjAy
|
11
|
+
NzUyMjYzZTExNjdkMDgyY2IwNThhYjE1MTQ4MzBmNzY4YzdkOGM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZmI1OTUxNmUxMmIxNWQzZmY2YWNjOWRjNjVhNDJmZjYxOGE5ZDRhYzBiN2Ez
|
14
|
+
ZWVmNTE4ZDI2N2U3ZjdhNDE3MWQ4ZWRhODI1ZDk3OTI4YjljMWRhMDQ1MDlm
|
15
|
+
MWVjMDc1ZWY3YWEwOTQzNTI1MTQ3NTNjYzBkMDA2OWEwZGQ4ZDk=
|
data/cookbook-release.gemspec
CHANGED
@@ -6,7 +6,7 @@ require 'English'
|
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
8
|
spec.name = 'cookbook-release'
|
9
|
-
spec.version = '1.1.
|
9
|
+
spec.version = '1.1.3'
|
10
10
|
spec.authors = ['Grégoire Seux']
|
11
11
|
spec.email = 'g.seux@criteo.com'
|
12
12
|
spec.summary = 'Provide primitives (and rake tasks) to release a cookbook'
|
@@ -36,15 +36,22 @@ module CookbookRelease
|
|
36
36
|
raise "All changes must be committed!" unless clean_index?
|
37
37
|
end
|
38
38
|
|
39
|
-
def
|
40
|
-
|
39
|
+
def _compute_last_release
|
41
40
|
tag = Mixlib::ShellOut.new([
|
42
41
|
'git describe',
|
43
42
|
"--tags",
|
44
43
|
"--match \"#{@tag_prefix}[0-9]\.[0-9]*\.[0-9]*\""
|
45
44
|
].join(" "), @shellout_opts)
|
46
45
|
tag.run_command
|
47
|
-
|
46
|
+
tag.stdout.split('-').first
|
47
|
+
end
|
48
|
+
|
49
|
+
def has_any_release?
|
50
|
+
!!_compute_last_release
|
51
|
+
end
|
52
|
+
|
53
|
+
def compute_last_release
|
54
|
+
last = _compute_last_release
|
48
55
|
unless last
|
49
56
|
$stderr.puts "No last release found, defaulting to 0.1.0"
|
50
57
|
last = '0.1.0'
|
@@ -38,6 +38,7 @@ module CookbookRelease
|
|
38
38
|
|
39
39
|
# return the new version and the reasons
|
40
40
|
def new_version
|
41
|
+
return ['0.1.0'.to_version, []] unless git.has_any_release?
|
41
42
|
%w(major minor patch).each do |level|
|
42
43
|
changes = git_changelog.select(&"#{level}?".to_sym)
|
43
44
|
return [ last_release.send("#{level}!"), changes ] if changes.size > 0
|
data/spec/release_spec.rb
CHANGED
@@ -31,6 +31,7 @@ describe Release do
|
|
31
31
|
:clean_index! => true,
|
32
32
|
:compute_last_release => '1.0.0'.to_version,
|
33
33
|
:compute_changelog => [c],
|
34
|
+
:has_any_release? => true,
|
34
35
|
:tag => true,
|
35
36
|
:push_tag => true,
|
36
37
|
)
|
@@ -51,6 +52,7 @@ describe Release do
|
|
51
52
|
it 'raise when no commit has been made since last release' do
|
52
53
|
allow(git).to receive(:compute_last_release).and_return('1.0.1'.to_version)
|
53
54
|
expect(git).to receive(:compute_changelog).and_return([])
|
55
|
+
expect(git).to receive(:has_any_release?).and_return(true)
|
54
56
|
|
55
57
|
release = Release.new(git)
|
56
58
|
expect{release.new_version}.to raise_error(Release::ExistingRelease, /no commit since/i)
|
@@ -59,6 +61,7 @@ describe Release do
|
|
59
61
|
it 'suggests major release when one commit is major' do
|
60
62
|
allow(git).to receive(:compute_last_release).and_return('1.0.1'.to_version)
|
61
63
|
expect(git).to receive(:compute_changelog).and_return([minor, minor, major, patch])
|
64
|
+
expect(git).to receive(:has_any_release?).and_return(true)
|
62
65
|
|
63
66
|
release = Release.new(git)
|
64
67
|
new_version, reasons = release.new_version
|
@@ -69,6 +72,7 @@ describe Release do
|
|
69
72
|
it 'suggests minor release when one commit is minor' do
|
70
73
|
allow(git).to receive(:compute_last_release).and_return('1.0.1'.to_version)
|
71
74
|
expect(git).to receive(:compute_changelog).and_return([minor, minor, patch, patch])
|
75
|
+
expect(git).to receive(:has_any_release?).and_return(true)
|
72
76
|
|
73
77
|
release = Release.new(git)
|
74
78
|
new_version, reasons = release.new_version
|
@@ -79,6 +83,7 @@ describe Release do
|
|
79
83
|
it 'suggests patch release when all commits are patches' do
|
80
84
|
allow(git).to receive(:compute_last_release).and_return('1.0.1'.to_version)
|
81
85
|
expect(git).to receive(:compute_changelog).and_return([patch, patch, patch])
|
86
|
+
expect(git).to receive(:has_any_release?).and_return(true)
|
82
87
|
|
83
88
|
release = Release.new(git)
|
84
89
|
new_version, reasons = release.new_version
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cookbook-release
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Grégoire Seux
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: semantic
|