cookbook-release 1.4.5 → 1.4.6
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/cookbook-release.gemspec +1 -1
- data/lib/cookbook-release/changelog.rb +41 -15
- data/spec/changelog_spec.rb +2 -2
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7437fec8e18c6f3d3010cabcc1560d2f50a21fa9f3d3721fea2e11fbfa41245
|
4
|
+
data.tar.gz: 528a77af3764cabb0ea07cb41b1d21c52e2ff57a306ce4924d129ee657da5522
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 14d6f53eab37b49ee1b5336e23f1f05fe4145b4f8b28610645d5418a9e8b18617081060fb5c96bc79ccc2136a2a890c1f0068403e065e9136ea1ea6a0d10ca92
|
7
|
+
data.tar.gz: 5a5b26e7d8035f611a5a79dc03523d81ff8d9b87f97728ebcb9de3d3e9846d8b5b639c4c90b368355da887f42be209b3c934e1fccc9ebe2fcef1921def5d57f0
|
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.4.
|
9
|
+
spec.version = '1.4.6'
|
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'
|
@@ -11,6 +11,7 @@ module CookbookRelease
|
|
11
11
|
RISKY = 'RISKY/BREAKING (details below):'
|
12
12
|
NO_RISKY = 'NO RISKY/BREAKING COMMITS. READ FULL CHANGELOG.'
|
13
13
|
NON_NODES_ONLY = 'Non-risky/major, Non-node-only commits'
|
14
|
+
NODES_ONLY = 'Commits impacting only nodes'
|
14
15
|
FULL = 'Full changelog:'
|
15
16
|
DETAILS = 'Details of risky commits:'
|
16
17
|
|
@@ -109,28 +110,53 @@ module CookbookRelease
|
|
109
110
|
end
|
110
111
|
|
111
112
|
def markdown_priority_nodes
|
112
|
-
cl = changelog
|
113
|
-
risky_commits = cl.select { |c| c.risky? || c.major? }
|
114
|
-
not_nodes_only_commits = cl.reject { |c| c.nodes_only? || c.risky? || c.major? }
|
115
113
|
result = []
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
114
|
+
result << append_risky(changelog)
|
115
|
+
result << append_by_impact(changelog)
|
116
|
+
result << append_risky_details(changelog)
|
117
|
+
result
|
118
|
+
end
|
119
|
+
|
120
|
+
private
|
121
|
+
|
122
|
+
# @param changelog [Array<Commit>]
|
123
|
+
# @return [String] a string describing the changelog
|
124
|
+
def append_by_impact(changelog)
|
125
|
+
not_nodes_only_commits = changelog.reject { |c| c.nodes_only? || c.risky? || c.major? }
|
126
|
+
nodes_only_commits = changelog.select(&:nodes_only?)
|
127
|
+
output = []
|
121
128
|
if not_nodes_only_commits.any?
|
122
|
-
|
129
|
+
txt = not_nodes_only_commits.map { |c| c.to_s_markdown(false) }.join("\n")
|
130
|
+
output << "*#{NON_NODES_ONLY}*\n#{txt}\n"
|
123
131
|
end
|
124
|
-
|
125
|
-
|
132
|
+
if nodes_only_commits.any?
|
133
|
+
txt = nodes_only_commits.map { |c| c.to_s_markdown(false) }.join("\n")
|
134
|
+
output << "*#{NODES_ONLY}*\n#{txt}\n"
|
135
|
+
end
|
136
|
+
output.join
|
137
|
+
end
|
138
|
+
|
139
|
+
# @param changelog [Array<Commit>]
|
140
|
+
# @return [String] a string describing the changelog
|
141
|
+
def append_risky_details(changelog)
|
142
|
+
risky_commits = changelog.select { |c| c.risky? || c.major? }
|
126
143
|
if risky_commits.any?
|
127
|
-
|
128
|
-
|
144
|
+
"\n#{DETAILS}\n" + risky_commits.map { |c| c.to_s_markdown(true) }.join("\n")
|
145
|
+
else
|
146
|
+
''
|
129
147
|
end
|
130
|
-
result
|
131
148
|
end
|
132
149
|
|
133
|
-
|
150
|
+
# @param changelog [Array<Commit>]
|
151
|
+
# @return [String] a string describing the changelog
|
152
|
+
def append_risky(changelog)
|
153
|
+
risky_commits = changelog.select { |c| c.risky? || c.major? }
|
154
|
+
if risky_commits.any?
|
155
|
+
"*#{RISKY}*\n" << risky_commits.map { |c| c.to_s_markdown(false) }.join("\n") << "\n"
|
156
|
+
else
|
157
|
+
"*#{NO_RISKY}*\n\n"
|
158
|
+
end
|
159
|
+
end
|
134
160
|
|
135
161
|
def changelog
|
136
162
|
ref = ENV['RELEASE_BRANCH'] || 'origin/master'
|
data/spec/changelog_spec.rb
CHANGED
@@ -83,10 +83,10 @@ describe CookbookRelease::Changelog do
|
|
83
83
|
end
|
84
84
|
|
85
85
|
it 'expands the body with non-risky+non-nodes' do
|
86
|
-
expect(git).to receive(:compute_changelog).and_return(commits)
|
86
|
+
expect(git).to receive(:compute_changelog).and_return(commits).at_least(:once)
|
87
87
|
changelog = CookbookRelease::Changelog.new(git, expand_risky: true, nodes_only: true)
|
88
88
|
expect(changelog.markdown_priority_nodes.join('')).to include(
|
89
|
-
"\n*Non-risky/major, Non-node-only commits*\n*654321* _John Doe <j.doe@nobody.com>_ `hello`\n*
|
89
|
+
"\n*Non-risky/major, Non-node-only commits*\n*654321* _John Doe <j.doe@nobody.com>_ `hello`\n*Commits impacting only nodes"
|
90
90
|
)
|
91
91
|
end
|
92
92
|
end
|
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.4.
|
4
|
+
version: 1.4.6
|
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: 2020-
|
11
|
+
date: 2020-10-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: semantic
|
@@ -194,8 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
194
194
|
- !ruby/object:Gem::Version
|
195
195
|
version: '0'
|
196
196
|
requirements: []
|
197
|
-
|
198
|
-
rubygems_version: 2.7.7
|
197
|
+
rubygems_version: 3.0.8
|
199
198
|
signing_key:
|
200
199
|
specification_version: 4
|
201
200
|
summary: Provide primitives (and rake tasks) to release a cookbook
|