revision 1.3.1 → 1.4.0
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/lib/revision/cli.rb +20 -2
- data/lib/revision/info.rb +8 -6
- data/lib/revision/releasable.rb +7 -2
- data/lib/revision/version.rb +4 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adcdc2d0e9d54552cb574a4abcf0f4c305ee1b4679de002a0a6b237ece5b2844
|
4
|
+
data.tar.gz: f316d48ab9d95456707bd10264d99a082b4d3ebbf0c9b2056723af0df3b6e363
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 236bea8efec06c900852eef6d30bbe544dc50cc9d5a3e27e68de45847f32cfeada7f1c22ddbcdff3245cc1dda2716ac20b827cf83d67d3fb914c65d339bf6187
|
7
|
+
data.tar.gz: 5a18f6d7d2668214c7b1c71fe4d3d25bfbfa78de9c66c3d722bc2cb85cf5097a85adb168a20e4a59b94ae60943dcbb3625417402d51107bf9d52a14397e60cf8
|
data/lib/revision/cli.rb
CHANGED
@@ -119,8 +119,26 @@ module Revision
|
|
119
119
|
def do_increment(type)
|
120
120
|
r = select_one
|
121
121
|
increment_method = "#{type}_increment!"
|
122
|
-
say "Incrementing #{r.revision} to #{r.revision.public_send(increment_method)}"
|
123
|
-
options[:dryrun]
|
122
|
+
say "Incrementing #{r.revision} to #{r.revision.public_send(increment_method)} (#{r.revision.src})"
|
123
|
+
if options[:dryrun]
|
124
|
+
r.revision.write(r.revision.src + ".new")
|
125
|
+
r.secondary_revisions.each do |s|
|
126
|
+
say "Propagating revision update to #{s.src}"
|
127
|
+
s.major = r.revision.major
|
128
|
+
s.minor = r.revision.minor
|
129
|
+
s.patch = r.revision.patch
|
130
|
+
s.write(s.src + ".new")
|
131
|
+
end
|
132
|
+
else
|
133
|
+
r.revision.write!
|
134
|
+
r.secondary_revisions.each do |s|
|
135
|
+
say "Propagating revision update to #{s.src}"
|
136
|
+
s.major = r.revision.major
|
137
|
+
s.minor = r.revision.minor
|
138
|
+
s.patch = r.revision.patch
|
139
|
+
s.write!
|
140
|
+
end
|
141
|
+
end
|
124
142
|
say ''
|
125
143
|
say "The automatic commit / tag step assumes you're only checking in changes to existing files"
|
126
144
|
say "You can answer 'n' at the prompt and use 'revision tag' to generate a commit with the latest changelog entry and an associated tag after manually adding any new files to the repo"
|
data/lib/revision/info.rb
CHANGED
@@ -15,10 +15,11 @@ class Revision::Info
|
|
15
15
|
attr_accessor :regex
|
16
16
|
attr_accessor :comment_prefix
|
17
17
|
|
18
|
-
def initialize(file, regex: nil, comment_prefix: nil)
|
18
|
+
def initialize(file, regex: nil, comment_prefix: nil, embed_changelog: true)
|
19
19
|
@src=file
|
20
20
|
@regex = regex.nil? ? DEFAULT_REGEX : /#{regex}/
|
21
21
|
@comment_prefix = comment_prefix || DEFAULT_COMMENT_PREFIX
|
22
|
+
@embed_changelog = embed_changelog
|
22
23
|
matched = false
|
23
24
|
File.open(@src).each_line do |line|
|
24
25
|
if line =~ @regex
|
@@ -65,15 +66,16 @@ class Revision::Info
|
|
65
66
|
ref_info = self.class.new(@src, regex: @regex)
|
66
67
|
raise 'No revision identifiers incremented' if ref_info.to_s == self.to_s
|
67
68
|
|
68
|
-
entry = get_changelog_entry
|
69
69
|
|
70
70
|
text = File.read(@src)
|
71
71
|
text.gsub!(@regex) { |match| "#{$~[:prefix]}#{@major}#{$~[:sep1]}#{@minor}#{$~[:sep2]}#{@patch}#{$~[:postfix]}" }
|
72
72
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
73
|
+
if @embed_changelog
|
74
|
+
entry = get_changelog_entry
|
75
|
+
#Insert start/end tags if not present
|
76
|
+
text += new_changelog_placeholder unless text.match(CHANGELOG_START)
|
77
|
+
text.gsub!(CHANGELOG_START) { |match| [match, format_changelog_entry(entry)].join("\n") }
|
78
|
+
end
|
77
79
|
|
78
80
|
File.open(output_file_name, 'w') { |f| f.write(text) }
|
79
81
|
end
|
data/lib/revision/releasable.rb
CHANGED
@@ -17,7 +17,7 @@ module Revision
|
|
17
17
|
|
18
18
|
REVISION_PLACEHOLDER = /<REV>|<VER>/
|
19
19
|
|
20
|
-
attr_reader :root, :id, :revision, :build_steps, :artefacts, :git_tag_prefix
|
20
|
+
attr_reader :root, :id, :revision, :build_steps, :artefacts, :git_tag_prefix, :secondary_revisions
|
21
21
|
|
22
22
|
# Load a file in yaml format containing one or more releasable definitions
|
23
23
|
# @param root [String] An optional root directory argument
|
@@ -53,12 +53,17 @@ module Revision
|
|
53
53
|
# @git_repo
|
54
54
|
# end
|
55
55
|
|
56
|
+
def _build_revision_info(definition, embed_changelog: true)
|
57
|
+
Info.new(File.join(@root,definition[:src]), regex: definition[:regex], comment_prefix: definition[:comment_prefix], embed_changelog: embed_changelog)
|
58
|
+
end
|
59
|
+
|
56
60
|
def initialize(root: nil, config: {})
|
57
61
|
|
58
62
|
root ||= Dir.getwd
|
59
63
|
@root = Pathname.new(root).realpath
|
60
64
|
@id = config[:id] || File.basename(@root)
|
61
|
-
@revision =
|
65
|
+
@revision = _build_revision_info(config[:revision], embed_changelog: true)
|
66
|
+
@secondary_revisions = config[:secondary_revisions].nil? ? [] : config[:secondary_revisions].map { |r| _build_revision_info(r, embed_changelog:false)}
|
62
67
|
@git_tag_prefix = config[:revision][:git_tag_prefix].nil? ? 'v' : "#{config[:revision][:git_tag_prefix]}_v"
|
63
68
|
# Legacy definition syntax compatibility
|
64
69
|
@build_def = config[:build] ? config[:build] : { environment: { variables: {}}, steps: config[:build_steps]}
|
data/lib/revision/version.rb
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
# Defines the revision ID for the revision gem
|
2
2
|
module Revision
|
3
|
-
VERSION = "1.
|
3
|
+
VERSION = "1.4.0"
|
4
4
|
end
|
5
5
|
|
6
6
|
# <BEGIN CHANGELOG>
|
7
7
|
#
|
8
|
+
# Version 1.4.0 (10 Jun 2019)
|
9
|
+
# - Now allow the definition of one or more 'secondary_revisions', where a revision ID can be updated with or without an embedded changelog
|
10
|
+
#
|
8
11
|
# Version 1.3.1 (20 May 2019)
|
9
12
|
# - Corrected bug when deploying changelog:w
|
10
13
|
#
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: revision
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cormac Cannon
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-06-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|