caretaker 0.3.0 → 0.5.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/.gitignore +2 -0
- data/CHANGELOG.md +28 -6
- data/README.md +52 -4
- data/VERSION.txt +1 -0
- data/caretaker.gemspec +2 -0
- data/exe/caretaker +18 -1
- data/lib/caretaker/version.rb +1 -1
- data/lib/caretaker.rb +95 -7
- data/testing/caretaker +18 -1
- metadata +31 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 91d5852b415785fdfdea2f0b29be9ff2c082ef674203bbab66f195dacd5634cf
|
|
4
|
+
data.tar.gz: a0d62be91237cc9f150f0f3751842cb4ea15de729f38880600eb75606928cc48
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f701e972ac285d07671cafd4c0c7cc5e149015e2939faef93ee48739797e39f1456ce67c453d2dc76b5f9f8912acd5ff69d2b112f9dd0db0f1f472f443ff4003
|
|
7
|
+
data.tar.gz: f7ea032712663673eb0fbf536884125363d4bdb0994efc038480ba8b8d1a54dc1ba17648e1158e33bbe681d4267d62fb814e84f574b81e5e9617da91323b83fa
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -5,19 +5,41 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
|
|
6
6
|
This changelog was automatically generated using [Caretaker](https://github.com/WolfSoftware/caretaker) by [Wolf Software](https://github.com/WolfSoftware)
|
|
7
7
|
|
|
8
|
-
### [
|
|
8
|
+
### [v0.5.0](https://github.com/WolfSoftware/caretaker/compare/v0.4.0...v0.5.0)
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
> Released on February, 24th 2020
|
|
11
11
|
|
|
12
|
-
-
|
|
12
|
+
- Fix an error in the post-commit script where the wrong variable name was being used [`[e0d60a5]`](https://github.com/WolfSoftware/caretaker/commit/e0d60a52e65ceabe8e4adea9ccfe0c295f183f53) [`[TGWolf]`](https://github.com/TGWolf)
|
|
13
|
+
|
|
14
|
+
### [v0.4.0](https://github.com/WolfSoftware/caretaker/compare/v0.3.0...v0.4.0)
|
|
15
|
+
|
|
16
|
+
> Released on February, 24th 2020
|
|
17
|
+
|
|
18
|
+
- Updated version file for push of gem [`[8dfae21]`](https://github.com/WolfSoftware/caretaker/commit/8dfae211ec5ab70477d3d6587d84cc043a790d64) [`[TGWolf]`](https://github.com/TGWolf)
|
|
19
|
+
|
|
20
|
+
- Fix errors from travis + rubocop [`[5e69549]`](https://github.com/WolfSoftware/caretaker/commit/5e69549506726a8782899d004b64b56ba6fe4729) [`[TGWolf]`](https://github.com/TGWolf)
|
|
21
|
+
|
|
22
|
+
- Fix some issues raised by shellcheck in the post-commit hook [`[caa33d2]`](https://github.com/WolfSoftware/caretaker/commit/caa33d239b00cbea48f9123177a126cade113fac) [`[TGWolf]`](https://github.com/TGWolf)
|
|
23
|
+
|
|
24
|
+
- Add new release tagging and version bumping [`[786ed88]`](https://github.com/WolfSoftware/caretaker/commit/786ed88d1bf3486b03fbc2ee755d4ae4c763ab96) [`[TGWolf]`](https://github.com/TGWolf)
|
|
25
|
+
|
|
26
|
+
- Updated changelog to reflect current version [`[007fa21]`](https://github.com/WolfSoftware/caretaker/commit/007fa219d4845f1910cd625a325574f80909153a) [`[TGWolf]`](https://github.com/TGWolf)
|
|
27
|
+
|
|
28
|
+
### [v0.3.0](https://github.com/WolfSoftware/caretaker/compare/v0.2.0...v0.3.0)
|
|
29
|
+
|
|
30
|
+
> Released on February, 10th 2020
|
|
31
|
+
|
|
32
|
+
- Missed the name of the cli options for min-words from -m to -w [`[2b8e0cf]`](https://github.com/WolfSoftware/caretaker/commit/2b8e0cf79dd8e957aa688b395ab37f165322bd1e) [`[TGWolf]`](https://github.com/TGWolf)
|
|
33
|
+
|
|
34
|
+
- Type in the post-commit hook - doesnt stop it working but causes error output [`[9da99cc]`](https://github.com/WolfSoftware/caretaker/commit/9da99cc6b5bc131d491df8019b3acb5dcf62fa6f) [`[TGWolf]`](https://github.com/TGWolf)
|
|
13
35
|
|
|
14
36
|
### [v0.2.0](https://github.com/WolfSoftware/caretaker/releases/v0.2.0)
|
|
15
37
|
|
|
16
38
|
> Released on February, 10th 2020
|
|
17
39
|
|
|
18
|
-
- Had to bump to version 0.2.0 due to a broken push of 0.1.0 [`[c101fb8]`](https://github.com/WolfSoftware/caretaker/commit/c101fb85fa1831b8758bb27944a1693253b1b74f)
|
|
40
|
+
- Had to bump to version 0.2.0 due to a broken push of 0.1.0 [`[c101fb8]`](https://github.com/WolfSoftware/caretaker/commit/c101fb85fa1831b8758bb27944a1693253b1b74f) [`[TGWolf]`](https://github.com/TGWolf)
|
|
19
41
|
|
|
20
|
-
- Fix an issue with incorrect spinners in the generate config and repo init functions [`[a15b75b]`](https://github.com/WolfSoftware/caretaker/commit/a15b75bae917276c83536b1e7e385c1dfb55f55c)
|
|
42
|
+
- Fix an issue with incorrect spinners in the generate config and repo init functions [`[a15b75b]`](https://github.com/WolfSoftware/caretaker/commit/a15b75bae917276c83536b1e7e385c1dfb55f55c) [`[TGWolf]`](https://github.com/TGWolf)
|
|
21
43
|
|
|
22
|
-
- Initial push [`[f74a2c4]`](https://github.com/WolfSoftware/caretaker/commit/f74a2c411bf3339410d6a0f59a981abf6286107e)
|
|
44
|
+
- Initial push [`[f74a2c4]`](https://github.com/WolfSoftware/caretaker/commit/f74a2c411bf3339410d6a0f59a981abf6286107e) [`[TGWolf]`](https://github.com/TGWolf)
|
|
23
45
|
|
data/README.md
CHANGED
|
@@ -24,6 +24,7 @@ Caretaker also has an advanced category mode, which allows it to parse specially
|
|
|
24
24
|
* Automatically linking each pull request to the pull request number.
|
|
25
25
|
* Can run automatically as a post-commit hook.
|
|
26
26
|
* Ignore commits that are shorter than a specified number of words.
|
|
27
|
+
* Bump verions and tag releases automatically.
|
|
27
28
|
|
|
28
29
|
> For a full list of featues see the section on command line usage.
|
|
29
30
|
|
|
@@ -46,6 +47,9 @@ Caretaker also has an advanced category mode, which allows it to parse specially
|
|
|
46
47
|
* [Category example](#category-example)
|
|
47
48
|
* [Category list](#category-list)
|
|
48
49
|
* [Example category output](#example-category-output)
|
|
50
|
+
* [Tagging release versions](#tagging-release-versions)
|
|
51
|
+
* [Release handler snippet](#release-handler-snippet)
|
|
52
|
+
* [Bumping release versions](#bumping-release-versions)
|
|
49
53
|
* [Caretaker config file](#caretaker-config-file)
|
|
50
54
|
* [Example config file](#example-config-file)
|
|
51
55
|
* [Github usernames](#github-usernames)
|
|
@@ -67,6 +71,7 @@ Caretaker also has an advanced category mode, which allows it to parse specially
|
|
|
67
71
|
* [Contributing to caretaker](#contributing-to-caretaker)
|
|
68
72
|
* [Setup](#setup)
|
|
69
73
|
* [Testing](#testing)
|
|
74
|
+
* [To-Do List](#to-do-list)
|
|
70
75
|
<!--TOCBot-->
|
|
71
76
|
|
|
72
77
|
<a name="installation"></a>
|
|
@@ -91,6 +96,7 @@ Usage: caretaker [-h] [-a author] [-c] [-e] [-i] [-o filename] [-r] [-s] [-u] [-
|
|
|
91
96
|
| ------ | ------- |:-------------:|
|
|
92
97
|
| -h or --help | Show the help message | N/A |
|
|
93
98
|
| -a or --author [Github username] | Specify the author name | |
|
|
99
|
+
| -b or --bump [part] | Bump the VERSION.txt to next version. | |
|
|
94
100
|
| -c or --config | Generate a .caretaker.cfg config file. | false |
|
|
95
101
|
| -e or --enable-categories | Enable the splitting of commit messages into categories | false |
|
|
96
102
|
| -i or --init | Initialise the repo to use caretaker | |
|
|
@@ -126,8 +132,8 @@ caretaker
|
|
|
126
132
|
|
|
127
133
|
res=$(git status --porcelain | grep "${OUTPUT_FILE}" | wc -l)
|
|
128
134
|
if [[ "${res}" -gt 0 ]]; then
|
|
129
|
-
git add "${OUTPUT_FILE}"
|
|
130
|
-
git commit --amend --no-edit
|
|
135
|
+
git add "${OUTPUT_FILE}"
|
|
136
|
+
git commit --amend --no-edit
|
|
131
137
|
end
|
|
132
138
|
```
|
|
133
139
|
|
|
@@ -154,8 +160,8 @@ caretaker -i -e -o HISTORY.md
|
|
|
154
160
|
|
|
155
161
|
res=$(git status --porcelain | grep "${OUTPUT_FILE}" | wc -l)
|
|
156
162
|
if [[ "${res}" -gt 0 ]]; then
|
|
157
|
-
git add "${OUTPUT_FILE}"
|
|
158
|
-
git commit --amend --no-edit
|
|
163
|
+
git add "${OUTPUT_FILE}"
|
|
164
|
+
git commit --amend --no-edit
|
|
159
165
|
end
|
|
160
166
|
```
|
|
161
167
|
|
|
@@ -228,6 +234,47 @@ All notable changes to this project will be documented in this file.
|
|
|
228
234
|
- Created an example without a prefix.
|
|
229
235
|
```
|
|
230
236
|
|
|
237
|
+
<a name="tagging-release-versions"></a>
|
|
238
|
+
### Tagging release versions
|
|
239
|
+
|
|
240
|
+
Due to the way that post-commit hooks work, if you were tag a release that tag would either be ignored or worse lost, because the commit ID changes when a 'commit amend' is carried out. In order to get around this problem Caretaker can now tag releases
|
|
241
|
+
for you as part of its push process.
|
|
242
|
+
|
|
243
|
+
The current version is stored in 'VERSION.txt', and it is semantic version string (however it can include an optional v prefix eg v1.0.0). This version is used to 'tag' a release as part of the process. It works be comparing the current tag to the
|
|
244
|
+
one in the file and if they are different it will tag the release with the new version.
|
|
245
|
+
|
|
246
|
+
<a name="release-handler-snippet"></a>
|
|
247
|
+
#### Release handler snippet
|
|
248
|
+
|
|
249
|
+
The following code is a snippet of how the release mechanism works:
|
|
250
|
+
|
|
251
|
+
```
|
|
252
|
+
if [[ -n $RELEASE_VERSION ]]; then
|
|
253
|
+
git tag "${TAG_VERSION}"
|
|
254
|
+
fi
|
|
255
|
+
|
|
256
|
+
#{cmd}
|
|
257
|
+
|
|
258
|
+
res=$(git status --porcelain | grep "${OUTPUT_FILE}" | wc -l)
|
|
259
|
+
if [[ "${res}" -gt 0 ]]; then
|
|
260
|
+
git add "${OUTPUT_FILE}" >> /dev/null 2>&1
|
|
261
|
+
git commit --amend --no-edit >> /dev/null 2>&1
|
|
262
|
+
|
|
263
|
+
if [[ -n "${RELEASE_VERSION"} ]]; then
|
|
264
|
+
git tag -f "${TAG_VERSION}"
|
|
265
|
+
fi
|
|
266
|
+
fi
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
As you can see, it will tag the release, run caretaker and re-tag the release after the commit amend, ensuring that the tag persists. This is not a perfect solution, but it does work :)
|
|
270
|
+
|
|
271
|
+
<a name="bumping-release-versions"></a>
|
|
272
|
+
#### Bumping release versions
|
|
273
|
+
|
|
274
|
+
In order to make life as simple as possible the new version of Caretaker comes with a ```--bump``` option, this takes 1 argument of either ```major```, ```minor``` or ```patch``` and will update the version file accordingly.
|
|
275
|
+
|
|
276
|
+
> Note if the version file doesn't exist, it will be created with a default version of v0.1.0
|
|
277
|
+
|
|
231
278
|
<a name="caretaker-config-file"></a>
|
|
232
279
|
### Caretaker config file
|
|
233
280
|
|
|
@@ -387,6 +434,7 @@ For local testing make sure that you run `bundle exec rspec spec` and then `rake
|
|
|
387
434
|
|
|
388
435
|
For further information please refer to the [contributing](https://github.com/WolfSoftware/contributing) documentation.
|
|
389
436
|
|
|
437
|
+
<a name="to-do-list"></a>
|
|
390
438
|
# To-Do List
|
|
391
439
|
|
|
392
440
|
- [ ] CLI option to enable/disable linking to commit hashes
|
data/VERSION.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.5.0
|
data/caretaker.gemspec
CHANGED
|
@@ -23,8 +23,10 @@ Gem::Specification.new do |spec|
|
|
|
23
23
|
spec.add_development_dependency 'date', '~> 2.0.0'
|
|
24
24
|
spec.add_development_dependency 'rake', '~> 10.0'
|
|
25
25
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
26
|
+
spec.add_development_dependency 'sem_version', '~> 2.0.1'
|
|
26
27
|
spec.add_development_dependency 'tty-spinner', '~> 0.9.0'
|
|
27
28
|
|
|
28
29
|
spec.add_runtime_dependency 'date', '~> 2.0.0'
|
|
30
|
+
spec.add_runtime_dependency 'sem_version', '~> 2.0.1'
|
|
29
31
|
spec.add_runtime_dependency 'tty-spinner', '~> 0.9.0'
|
|
30
32
|
end
|
data/exe/caretaker
CHANGED
|
@@ -16,6 +16,7 @@ def send_message_to_caretaker(options)
|
|
|
16
16
|
caretaker.init_repo if options[:init]
|
|
17
17
|
caretaker.generate_config_file if options[:config]
|
|
18
18
|
caretaker.generate_changelog if options[:generate]
|
|
19
|
+
caretaker.bump_version if options[:bump]
|
|
19
20
|
rescue StandardError => e
|
|
20
21
|
puts "Error: #{e}"
|
|
21
22
|
puts e.backtrace
|
|
@@ -45,11 +46,26 @@ def process_arguments
|
|
|
45
46
|
exit(1)
|
|
46
47
|
end
|
|
47
48
|
|
|
48
|
-
opts.on('-a', '--author string', 'Specify a default author name to use for commits (author name should be your
|
|
49
|
+
opts.on('-a', '--author string', 'Specify a default author name to use for commits (author name should be your Github username)') do |author|
|
|
49
50
|
options[:author] = author
|
|
50
51
|
end
|
|
51
52
|
|
|
53
|
+
opts.on('-b', '--bump string', 'Which part of the version string to bump. (Options: major, minor, patch)') do |bump|
|
|
54
|
+
valid_bumps = ['major', 'minor', 'patch']
|
|
55
|
+
|
|
56
|
+
if valid_bumps.include? bump
|
|
57
|
+
options[:bump] = bump
|
|
58
|
+
options[:config] = false
|
|
59
|
+
options[:generate] = false
|
|
60
|
+
options[:init] = false
|
|
61
|
+
else
|
|
62
|
+
puts "Invalid bump option: #{bump}"
|
|
63
|
+
abort
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
52
67
|
opts.on('-c', '--config', 'Generate a .caretaker.cfg config file. [default: false]') do
|
|
68
|
+
options[:bump] = false
|
|
53
69
|
options[:config] = true
|
|
54
70
|
options[:generate] = false
|
|
55
71
|
options[:init] = false
|
|
@@ -61,6 +77,7 @@ def process_arguments
|
|
|
61
77
|
end
|
|
62
78
|
|
|
63
79
|
opts.on('-i', '--init', 'Initialise the repo to use Caretaker') do
|
|
80
|
+
options[:bump] = false
|
|
64
81
|
options[:config] = false
|
|
65
82
|
options[:generate] = false
|
|
66
83
|
options[:init] = true
|
data/lib/caretaker/version.rb
CHANGED
data/lib/caretaker.rb
CHANGED
|
@@ -7,6 +7,9 @@ require 'uri'
|
|
|
7
7
|
require 'yaml'
|
|
8
8
|
require 'net/http'
|
|
9
9
|
|
|
10
|
+
require 'sem_version'
|
|
11
|
+
require 'sem_version/core_ext'
|
|
12
|
+
|
|
10
13
|
#
|
|
11
14
|
# The main caretaker class
|
|
12
15
|
#
|
|
@@ -25,6 +28,13 @@ class Caretaker
|
|
|
25
28
|
@github_base_url = 'https://github.com'
|
|
26
29
|
@spinner_format = :classic
|
|
27
30
|
@header_file = 'HEADER.md'
|
|
31
|
+
@version_file = 'VERSION.txt'
|
|
32
|
+
@default_version = '0.1.0'
|
|
33
|
+
@default_tag_prefix = 'v'
|
|
34
|
+
|
|
35
|
+
@bump_major = false
|
|
36
|
+
@bump_minor = false
|
|
37
|
+
@bump_patch = false
|
|
28
38
|
|
|
29
39
|
#
|
|
30
40
|
# Check we are into a git repository - bail out if not
|
|
@@ -58,6 +68,9 @@ class Caretaker
|
|
|
58
68
|
@silent = options[:silent] unless options[:silent].nil?
|
|
59
69
|
@verify_urls = options[:verify_urls] unless options[:verify_urls].nil?
|
|
60
70
|
|
|
71
|
+
@bump_major = true unless options[:bump].nil? || options[:bump] != 'major'
|
|
72
|
+
@bump_minor = true unless options[:bump].nil? || options[:bump] != 'minor'
|
|
73
|
+
@bump_patch = true unless options[:bump].nil? || options[:bump] != 'patch'
|
|
61
74
|
#
|
|
62
75
|
# Work out the url for the git repository (unless for linking)
|
|
63
76
|
#
|
|
@@ -583,26 +596,45 @@ class Caretaker
|
|
|
583
596
|
contents = <<~END_OF_SCRIPT
|
|
584
597
|
#!/usr/bin/env bash
|
|
585
598
|
|
|
586
|
-
|
|
599
|
+
LOCK_FILE="#{@repo_base_dir}/.lock"
|
|
600
|
+
OUTPUT_FILE=#{@output_file}
|
|
601
|
+
VERSION_FILE=#{@version_file}
|
|
587
602
|
|
|
588
|
-
if [[ -f "${
|
|
603
|
+
if [[ -f "${LOCK_FILE}" ]]; then
|
|
589
604
|
exit
|
|
590
605
|
fi
|
|
591
606
|
|
|
592
|
-
touch "${
|
|
607
|
+
touch "${LOCK_FILE}"
|
|
593
608
|
|
|
594
|
-
|
|
609
|
+
if [[ -f "${VERSION_FILE}" ]]; then
|
|
610
|
+
RELEASE_VERSION=$(<"${VERSION_FILE}")
|
|
611
|
+
TAG_NAME="v${RELEASE_VERSION}"
|
|
612
|
+
|
|
613
|
+
if GIT_DIR="#{@repo_base_dir}/.git" git tag --list | grep -Eq "^${TAG_NAME}$"; then
|
|
614
|
+
unset RELEASE_VERSION
|
|
615
|
+
unset TAG_NAME
|
|
616
|
+
fi
|
|
617
|
+
fi
|
|
618
|
+
|
|
619
|
+
if [[ -n "${RELEASE_VERSION}" ]]; then
|
|
620
|
+
git tag "${TAG_NAME}"
|
|
621
|
+
fi
|
|
595
622
|
|
|
596
623
|
#{cmd}
|
|
597
624
|
|
|
598
|
-
res=$(git status --porcelain | grep "${OUTPUT_FILE}"
|
|
625
|
+
res=$(git status --porcelain | grep -c "${OUTPUT_FILE}")
|
|
599
626
|
if [[ "${res}" -gt 0 ]]; then
|
|
627
|
+
|
|
600
628
|
git add "${OUTPUT_FILE}" >> /dev/null 2>&1
|
|
601
629
|
git commit --amend --no-edit >> /dev/null 2>&1
|
|
602
|
-
fi
|
|
603
630
|
|
|
604
|
-
|
|
631
|
+
if [[ -n "${RELEASE_VERSION}" ]]; then
|
|
632
|
+
git tag -f "${TAG_NAME}"
|
|
633
|
+
fi
|
|
634
|
+
|
|
635
|
+
fi
|
|
605
636
|
|
|
637
|
+
rm -f "${LOCK_FILE}"
|
|
606
638
|
END_OF_SCRIPT
|
|
607
639
|
|
|
608
640
|
start_spinner('Writing Hook')
|
|
@@ -689,4 +721,60 @@ END_OF_SCRIPT
|
|
|
689
721
|
write_file("#{@repo_base_dir}/#{@config_file}", content, 0o0644)
|
|
690
722
|
stop_spinner
|
|
691
723
|
end
|
|
724
|
+
|
|
725
|
+
#
|
|
726
|
+
# Bump the version
|
|
727
|
+
#
|
|
728
|
+
def bump_version
|
|
729
|
+
first_version = false
|
|
730
|
+
|
|
731
|
+
begin
|
|
732
|
+
current = File.read(@version_file)
|
|
733
|
+
rescue SystemCallError
|
|
734
|
+
puts "failed to open #{@version_file} - Default to version #{@default_version} - will NOT bump version"
|
|
735
|
+
current = @default_version
|
|
736
|
+
first_version = true
|
|
737
|
+
end
|
|
738
|
+
|
|
739
|
+
puts "Current Version: #{current}"
|
|
740
|
+
|
|
741
|
+
if current.start_with?(@default_tag_prefix)
|
|
742
|
+
has_prefix = true
|
|
743
|
+
current.slice!(@default_tag_prefix)
|
|
744
|
+
end
|
|
745
|
+
|
|
746
|
+
begin
|
|
747
|
+
v = SemVersion.new(current)
|
|
748
|
+
rescue ArgumentError
|
|
749
|
+
puts "#{current} is not a valid Semantic Version string"
|
|
750
|
+
return
|
|
751
|
+
end
|
|
752
|
+
|
|
753
|
+
if @bump_major && !first_version
|
|
754
|
+
v.major += 1
|
|
755
|
+
v.minor = 0
|
|
756
|
+
v.patch = 0
|
|
757
|
+
end
|
|
758
|
+
|
|
759
|
+
if @bump_minor && !first_version
|
|
760
|
+
v.minor += 1
|
|
761
|
+
v.patch = 0
|
|
762
|
+
end
|
|
763
|
+
|
|
764
|
+
v.patch += 1 if @bump_patch && !first_version
|
|
765
|
+
|
|
766
|
+
version = if has_prefix
|
|
767
|
+
"#{@default_tag_prefix}#{v}"
|
|
768
|
+
else
|
|
769
|
+
v.to_s
|
|
770
|
+
end
|
|
771
|
+
|
|
772
|
+
puts "New Version: #{version}"
|
|
773
|
+
|
|
774
|
+
begin
|
|
775
|
+
File.write(@version_file, version)
|
|
776
|
+
rescue SystemCallError
|
|
777
|
+
puts "Count not write #{VERSION_FILE} - Aborting"
|
|
778
|
+
end
|
|
779
|
+
end
|
|
692
780
|
end
|
data/testing/caretaker
CHANGED
|
@@ -19,6 +19,7 @@ def send_message_to_caretaker(options)
|
|
|
19
19
|
caretaker.init_repo if options[:init]
|
|
20
20
|
caretaker.generate_config_file if options[:config]
|
|
21
21
|
caretaker.generate_changelog if options[:generate]
|
|
22
|
+
caretaker.bump_version if options[:bump]
|
|
22
23
|
rescue StandardError => e
|
|
23
24
|
puts "Error: #{e}"
|
|
24
25
|
puts e.backtrace
|
|
@@ -48,11 +49,26 @@ def process_arguments
|
|
|
48
49
|
exit(1)
|
|
49
50
|
end
|
|
50
51
|
|
|
51
|
-
opts.on('-a', '--author string', 'Specify a default author name to use for commits (author name should be your
|
|
52
|
+
opts.on('-a', '--author string', 'Specify a default author name to use for commits (author name should be your Github username)') do |author|
|
|
52
53
|
options[:author] = author
|
|
53
54
|
end
|
|
54
55
|
|
|
56
|
+
opts.on('-b', '--bump string', 'Which part of the version string to bump. (Options: major, minor, patch)') do |bump|
|
|
57
|
+
valid_bumps = ['major', 'minor', 'patch']
|
|
58
|
+
|
|
59
|
+
if valid_bumps.include? bump
|
|
60
|
+
options[:bump] = bump
|
|
61
|
+
options[:config] = false
|
|
62
|
+
options[:generate] = false
|
|
63
|
+
options[:init] = false
|
|
64
|
+
else
|
|
65
|
+
puts "Invalid bump option: #{bump}"
|
|
66
|
+
abort
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
55
70
|
opts.on('-c', '--config', 'Generate a .caretaker.cfg config file. [default: false]') do
|
|
71
|
+
options[:bump] = false
|
|
56
72
|
options[:config] = true
|
|
57
73
|
options[:generate] = false
|
|
58
74
|
options[:init] = false
|
|
@@ -64,6 +80,7 @@ def process_arguments
|
|
|
64
80
|
end
|
|
65
81
|
|
|
66
82
|
opts.on('-i', '--init', 'Initialise the repo to use Caretaker') do
|
|
83
|
+
options[:bump] = false
|
|
67
84
|
options[:config] = false
|
|
68
85
|
options[:generate] = false
|
|
69
86
|
options[:init] = true
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: caretaker
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tim Gurney aka Wolf
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-02-
|
|
11
|
+
date: 2020-02-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -72,6 +72,20 @@ dependencies:
|
|
|
72
72
|
- - "~>"
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
74
|
version: '3.0'
|
|
75
|
+
- !ruby/object:Gem::Dependency
|
|
76
|
+
name: sem_version
|
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - "~>"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 2.0.1
|
|
82
|
+
type: :development
|
|
83
|
+
prerelease: false
|
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - "~>"
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: 2.0.1
|
|
75
89
|
- !ruby/object:Gem::Dependency
|
|
76
90
|
name: tty-spinner
|
|
77
91
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -100,6 +114,20 @@ dependencies:
|
|
|
100
114
|
- - "~>"
|
|
101
115
|
- !ruby/object:Gem::Version
|
|
102
116
|
version: 2.0.0
|
|
117
|
+
- !ruby/object:Gem::Dependency
|
|
118
|
+
name: sem_version
|
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - "~>"
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: 2.0.1
|
|
124
|
+
type: :runtime
|
|
125
|
+
prerelease: false
|
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
127
|
+
requirements:
|
|
128
|
+
- - "~>"
|
|
129
|
+
- !ruby/object:Gem::Version
|
|
130
|
+
version: 2.0.1
|
|
103
131
|
- !ruby/object:Gem::Dependency
|
|
104
132
|
name: tty-spinner
|
|
105
133
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -134,6 +162,7 @@ files:
|
|
|
134
162
|
- LICENSE.md
|
|
135
163
|
- README.md
|
|
136
164
|
- Rakefile
|
|
165
|
+
- VERSION.txt
|
|
137
166
|
- bin/console
|
|
138
167
|
- bin/setup
|
|
139
168
|
- caretaker.gemspec
|