git-version-bump 0.18.0.8.g580160f → 0.18.0.13.gc1af65c
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +13 -0
- data/lib/git-version-bump.rb +38 -7
- 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: 401c8af39ee5870527618010dfaf9d40942dadf75be49d8aff1052068f26e05b
|
4
|
+
data.tar.gz: '050811bc1eecc11587c369fe2d1ad48d8f51291127cfd989d23202dca5758e67'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 388a339b6f4c4b12bab2294e7fd8c912c5385d50fcb26a504b1dd1266151eb7a34a9ebdccdca4c26cd2a508e898265d5a5389f46b0d56674761349214abfc933
|
7
|
+
data.tar.gz: 227415d087e67252ab3a89c655b2b1ffdb23b384f010b9355fa69f3a6f6b18e865764348cbed7a64ad4e949afa6b54ccc14a69b05d1dd82fa3dc25a5e16be890
|
data/README.md
CHANGED
@@ -141,6 +141,19 @@ commits to be detected then use the following configuration:
|
|
141
141
|
end
|
142
142
|
|
143
143
|
|
144
|
+
## Overriding the version
|
145
|
+
|
146
|
+
In very rare circumstances, while running in a git repo, you may wish to explicitly set the version or date returned by `GVB.version` or `GVB.date`, respectively.
|
147
|
+
This can be done by setting the repo's `versionBump.versionOverride` or `versionBump.dateOverride` config values, like so:
|
148
|
+
|
149
|
+
```bash
|
150
|
+
git config versionBump.versionOverride 1.2.3
|
151
|
+
git config versionBump.dateOverride 1970-01-01
|
152
|
+
```
|
153
|
+
|
154
|
+
Note that whatever you set those values to is used without validity checking; if you set it to something weird, you'll get weird results.
|
155
|
+
|
156
|
+
|
144
157
|
# Contributing
|
145
158
|
|
146
159
|
Send your pull requests to the [Github
|
data/lib/git-version-bump.rb
CHANGED
@@ -25,7 +25,7 @@ module GitVersionBump
|
|
25
25
|
repo_version(true, include_lite_tags)
|
26
26
|
else
|
27
27
|
gem_version || repo_version(false, include_lite_tags)
|
28
|
-
end
|
28
|
+
end.tap { |v| p :GVB_VERSION, v if debug? }
|
29
29
|
end
|
30
30
|
|
31
31
|
def self.major_version(use_local_dir=false, include_lite_tags=false)
|
@@ -106,7 +106,7 @@ module GitVersionBump
|
|
106
106
|
log_file.close
|
107
107
|
|
108
108
|
pre_hash = Digest::SHA1.hexdigest(File.read(log_file.path))
|
109
|
-
run_command(["git", "config", "-e", "-f", log_file.path], "editing release notes")
|
109
|
+
run_command(["git", "config", "-e", "-f", log_file.path], "editing release notes", false)
|
110
110
|
if Digest::SHA1.hexdigest(File.read(log_file.path)) == pre_hash
|
111
111
|
puts "Release notes not edited; not making release"
|
112
112
|
log_file.unlink
|
@@ -198,10 +198,10 @@ module GitVersionBump
|
|
198
198
|
|
199
199
|
# Execute a command, specified as an array.
|
200
200
|
#
|
201
|
-
|
201
|
+
# On success, the full output of the command (stdout+stderr, interleaved) is returned unless capture_output is not true.
|
202
202
|
# On error, a `CommandFailure` exception is raised.
|
203
203
|
#
|
204
|
-
def self.run_command(cmd, desc)
|
204
|
+
def self.run_command(cmd, desc, capture_output = true)
|
205
205
|
unless cmd.is_a?(Array)
|
206
206
|
raise ArgumentError, "Must pass command line arguments in an array"
|
207
207
|
end
|
@@ -214,7 +214,13 @@ module GitVersionBump
|
|
214
214
|
p :GVB_CMD, desc, cmd
|
215
215
|
end
|
216
216
|
|
217
|
-
|
217
|
+
if capture_output == true
|
218
|
+
out, status = Open3.capture2e({"LC_MESSAGES" => "C"}, *cmd)
|
219
|
+
else
|
220
|
+
out = '(output not captured)'
|
221
|
+
pid = spawn(*cmd)
|
222
|
+
(retpid, status) = Process.wait2 pid
|
223
|
+
end
|
218
224
|
|
219
225
|
if status.exitstatus != 0
|
220
226
|
raise CommandFailure.new("Failed while #{desc}", out, status.exitstatus)
|
@@ -236,6 +242,11 @@ module GitVersionBump
|
|
236
242
|
end
|
237
243
|
private_class_method :try_command
|
238
244
|
|
245
|
+
def self.run_git(git_args, desc, use_local_dir)
|
246
|
+
run_command(["git", "-C", git_dir(use_local_dir).to_s] + git_args, desc)
|
247
|
+
end
|
248
|
+
private_class_method :run_git
|
249
|
+
|
239
250
|
def self.caller_file
|
240
251
|
# Who called us? Because this method gets called from other methods
|
241
252
|
# within this file, we can't just look at Gem.location_of_caller, but
|
@@ -298,6 +309,16 @@ module GitVersionBump
|
|
298
309
|
private_class_method :gem_version
|
299
310
|
|
300
311
|
def self.repo_version(use_local_dir, include_lite_tags)
|
312
|
+
begin
|
313
|
+
run_git(["config", "versionBump.versionOverride"], "getting versionOverride", use_local_dir).chomp
|
314
|
+
rescue CommandFailure => ex
|
315
|
+
p :NO_OVERRIDE_VERSION, [ex.class, ex.message] if debug?
|
316
|
+
repo_version_from_tag(use_local_dir, include_lite_tags)
|
317
|
+
end
|
318
|
+
end
|
319
|
+
private_class_method :repo_version
|
320
|
+
|
321
|
+
def self.repo_version_from_tag(use_local_dir, include_lite_tags)
|
301
322
|
git_cmd = ["git", "-C", git_dir(use_local_dir).to_s, "describe", "--dirty=.1.dirty.#{Time.now.strftime("%Y%m%d.%H%M%S")}", "--match=#{VERSION_TAG_GLOB}"]
|
302
323
|
git_cmd << "--tags" if include_lite_tags
|
303
324
|
|
@@ -316,9 +337,19 @@ module GitVersionBump
|
|
316
337
|
end
|
317
338
|
end
|
318
339
|
end
|
319
|
-
private_class_method :
|
340
|
+
private_class_method :repo_version_from_tag
|
320
341
|
|
321
342
|
def self.repo_date(use_local_dir, include_lite_tags)
|
343
|
+
begin
|
344
|
+
run_git(["config", "versionBump.dateOverride"], "getting dateOverride", use_local_dir).chomp
|
345
|
+
rescue CommandFailure => ex
|
346
|
+
p :NO_OVERRIDE_DATE, [ex.class, ex.message] if debug?
|
347
|
+
repo_date_from_commit(use_local_dir, include_lite_tags)
|
348
|
+
end
|
349
|
+
end
|
350
|
+
private_class_method :repo_date
|
351
|
+
|
352
|
+
def self.repo_date_from_commit(use_local_dir, include_lite_tags)
|
322
353
|
if dirty_tree?(git_dir(use_local_dir))
|
323
354
|
Time.now.strftime("%F")
|
324
355
|
else
|
@@ -328,7 +359,7 @@ module GitVersionBump
|
|
328
359
|
rescue CommandFailure
|
329
360
|
raise VersionUnobtainable, "Could not get commit date from git repository at #{git_dir(use_local_dir)}"
|
330
361
|
end
|
331
|
-
private_class_method :
|
362
|
+
private_class_method :repo_date_from_commit
|
332
363
|
|
333
364
|
def self.git_dir(use_local_dir = false)
|
334
365
|
if use_local_dir
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git-version-bump
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.18.0.
|
4
|
+
version: 0.18.0.13.gc1af65c
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Palmer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-08-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: github-release
|