revision 1.2.2 → 1.2.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a7fe914a06832d3670e34dc1a9b607fe8343058aa64528d8a0e322acf61b9611
4
- data.tar.gz: 563e66def7cb78a08d246c1a0036ea8754a9346b36bc91e08230d15c6b38508d
3
+ metadata.gz: 06454aa0fe518877aa5506845e96d39e0d8e2ce7db5339a9b1ee71364c8b673e
4
+ data.tar.gz: 9aedcfc26333c5e7e8ab2c5704e9c5f18269b4eacf36dc81fafc5a78ca85f88c
5
5
  SHA512:
6
- metadata.gz: 8f39382493167e12af0f420a698d41769b773c1720d065bd01705f1c9b1959e4505b3da25fdb7b571372afca6ca0103dfa029077d16026b2f4720cc591b26853
7
- data.tar.gz: c51c1ab72e3d9f31885d5e1817152ddbecc21d57ee8866d4ef5985360a27ba37971f86cbc5f595638e12d3fe7d1b976ee2d3681078691d72eab361b35bf8dd44
6
+ metadata.gz: be25f3b19f88933a0cf26c5afc36e8b339715c876b10ce3f3dd9737441660fd02a4791f88c070c2a920f604f5008dcbf501d6f122ee401a08b4a7ecc7e7998b8
7
+ data.tar.gz: 30ef34a8ea5fac05318ee0a426595425af05d7a68ae647339efe5be2f76954906426cc680f80ae3555c285be9d1f767cb8ad26210f4440a6519e9a0518606c5a
data/lib/revision/cli.rb CHANGED
@@ -97,8 +97,12 @@ module Revision
97
97
 
98
98
  private
99
99
 
100
+ def id_options
101
+ @releasables.keys.map { |id| "'-id #{id}'"}.join(', ')
102
+ end
103
+
100
104
  def select_one
101
- raise "Please specify one of #{@releasables.keys}" if options[:id].nil? && @releasables.keys.length > 1
105
+ raise "Please specify one of #{id_options}" if options[:id].nil? && @releasables.keys.length > 1
102
106
  @releasables[@id]
103
107
  end
104
108
 
@@ -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
20
+ attr_reader :root, :id, :revision, :build_steps, :artefacts, :git_tag_prefix
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
@@ -59,10 +59,11 @@ module Revision
59
59
  @root = Pathname.new(root).realpath
60
60
  @id = config[:id] || File.basename(@root)
61
61
  @revision = Info.new(File.join(@root,config[:revision][:src]), regex: config[:revision][:regex], comment_prefix: config[:revision][:comment_prefix])
62
+ @git_tag_prefix = config[:revision][:git_tag_prefix].nil? ? 'v' : "#{config[:revision][:git_tag_prefix]}_v"
63
+ # Legacy definition syntax compatibility
62
64
  @build_def = config[:build] ? config[:build] : { environment: { variables: {}}, steps: config[:build_steps]}
63
- @artefacts = config[:artefacts]
64
-
65
- @artefacts.each { |a| a[:dest] ||= a[:src] } unless @artefacts.empty?
65
+ @artefacts = config[:artefacts] || []
66
+ @artefacts.each { |a| a[:dest] ||= a[:src] } unless @artefacts.nil? || @artefacts.empty?
66
67
  end
67
68
 
68
69
  def to_s
@@ -73,10 +74,15 @@ module Revision
73
74
  #{@build_def[:environment]}
74
75
 
75
76
  Build pipeline:
76
- - #{@build_def[:steps].join("\n - ")}
77
+ - #{@build_def[:steps].nil? ? 'empty' : @build_def[:steps].join("\n - ")}
77
78
 
78
79
  Build artefacts:
79
- #{artefacts.map{ |a| "- #{a[:src]}\n => #{a[:dest]}" }.join("\n")}
80
+ #{@artefacts.empty? ? '- None defined' : @artefacts.map{ |a| "- #{a[:src]}\n => #{a[:dest]}" }.join("\n") }
81
+
82
+ Git commit details:
83
+ - log entry: #{commit_message}
84
+ Git tag id #{tag_id} / annotation:
85
+ #{tag_annotation.gsub("\n","\n ")}
80
86
 
81
87
  EOT
82
88
  end
@@ -89,11 +95,9 @@ module Revision
89
95
  value.gsub!(':', ';')
90
96
  value.gsub!('/', '\\')
91
97
  else
92
- value.gsub!(':', ';')
98
+ value.gsub!(';', ':')
93
99
  value.gsub!('\\', '/')
94
100
  end
95
- # value.gsub!('/',Gem.win_platform? ? '\' : '/')
96
- # value.gsub!('\',Gem.win_platform? ? '\' : '/')
97
101
  value.gsub!('~', Dir.home)
98
102
  end
99
103
  puts "Setting environment variable '#{key}' to '#{value}'"
@@ -112,22 +116,32 @@ module Revision
112
116
  end
113
117
  end
114
118
 
119
+ def tag_id
120
+ "#{@git_tag_prefix}#{revision}"
121
+ end
122
+
123
+ def tag_annotation
124
+ @revision.last_changelog_entry.join("\n")
125
+ end
126
+
127
+ def commit_message
128
+ changelog_entry = @revision.last_changelog_entry
129
+ #Insert a blank line between the revision header and release notes, as per git commit best practice
130
+ commit_lines = ["#{tag_id} #{changelog_entry[1]}", '']
131
+ if changelog_entry.length > 2
132
+ commit_lines << "Also..."
133
+ commit_lines += changelog_entry[2..-1]
134
+ end
135
+ commit_lines.join("\n")
136
+ end
137
+
115
138
  def tag
116
139
  Dir.chdir(@root) do
117
- tag_id = "v#{revision}"
118
- changelog_entry = @revision.last_changelog_entry
119
- #Insert a blank line between the revision header and release notes, as per git commit best practice
120
- commit_lines = ["#{tag_id} #{changelog_entry[1]}", '']
121
- if changelog_entry.length > 2
122
- commit_lines << "Also..."
123
- commit_lines += changelog_entry[2..-1]
124
- end
125
- commit_message = commit_lines.join("\n")
126
140
  puts "Committing..."
127
141
  puts commit_message
128
142
  system("git commit -a -m \"#{commit_message}\"")
129
143
  puts "Tagging as #{tag_id}"
130
- system("git tag -a #{tag_id} -m \"#{changelog_entry.join("\n")}\"")
144
+ system("git tag -a #{tag_id} -m \"#{tag_annotation}\"")
131
145
  end
132
146
  end
133
147
 
@@ -1,10 +1,17 @@
1
1
  # Defines the revision ID for the revision gem
2
2
  module Revision
3
- VERSION = "1.2.2"
3
+ VERSION = "1.2.4"
4
4
  end
5
5
 
6
6
  # <BEGIN CHANGELOG>
7
7
  #
8
+ # Version 1.2.4 (05 Sep 2018)
9
+ # - Added commit message and tag details to `revision info`
10
+ # - Minor refactoring
11
+ #
12
+ # Version 1.2.3 (03 Sep 2018)
13
+ # - Tidied up `revision info` output formatting
14
+ #
8
15
  # Version 1.2.2 (03 Sep 2018)
9
16
  # - Updated CLI to provide version info
10
17
  #
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.2.2
4
+ version: 1.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cormac Cannon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-09-03 00:00:00.000000000 Z
11
+ date: 2018-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor