cookbook-release 1.1.2 → 1.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|