create_github_release 1.3.4 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +10 -10
- data/create_github_release.gemspec +7 -8
- data/exe/revert-github-release +1 -1
- data/lib/create_github_release/command_line/parser.rb +3 -2
- data/lib/create_github_release/project.rb +14 -14
- data/lib/create_github_release/tasks/update_version.rb +8 -8
- data/lib/create_github_release/version.rb +1 -1
- metadata +20 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 992d339f1f9a903ed6ad37567e05e66008d3a47c5af83f34c9b14e68cfb64b53
|
4
|
+
data.tar.gz: 5549566d6d953cff76fd554b8e90fb5b3229f939127d8d7b887bd1c39878d8b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3ef1922049a7f3901f5d8ab88475ec33e49e290cc3a29ac3744bf40a2e9cc5850ce35eb3ca386642c0936270b5815018d5ad56fe874257aebe97991fd859147
|
7
|
+
data.tar.gz: 711efa3fb69ddd9d4b746752ec5a5229ec30717d17b93b81b4be9af95cc2560dfa82615452044621ddfa9799d986abaa630abf04f1e6fc0387016118b4d5acc9
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file.
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
7
7
|
|
8
|
+
## v1.4.0 (2024-05-10)
|
9
|
+
|
10
|
+
[Full Changelog](https://jcouball@github.com/main-branch/create_github_release/compare/v1.3.4..v1.4.0)
|
11
|
+
|
12
|
+
Changes since v1.3.4:
|
13
|
+
|
14
|
+
* a2e2500 Increment version with version_boss instead of semverify
|
15
|
+
* 44f8d15 Release v1.3.4 (#60)
|
16
|
+
|
8
17
|
## v1.3.4 (2024-01-09)
|
9
18
|
|
10
19
|
[Full Changelog](https://github.com/main-branch/create_github_release/compare/v1.3.3..v1.3.4)
|
data/README.md
CHANGED
@@ -66,9 +66,9 @@ Options:
|
|
66
66
|
-t, --pre-type=TYPE Type of pre-release to create (e.g. alpha, beta, etc.)
|
67
67
|
--remote=REMOTE_NAME Use this remote name instead of 'origin'
|
68
68
|
--last-release-version=VERSION
|
69
|
-
Use this version instead `
|
69
|
+
Use this version instead `gem-version-boss current`
|
70
70
|
--next-release-version=VERSION
|
71
|
-
Use this version instead `
|
71
|
+
Use this version instead `gem-version-boss next-RELEASE_TYPE`
|
72
72
|
--changelog-path=PATH Use this file instead of CHANGELOG.md
|
73
73
|
-q, --[no-]quiet Do not show output
|
74
74
|
-v, --[no-]verbose Show extra output
|
@@ -90,10 +90,10 @@ If this is to be the first release of this gem follow these instructions.
|
|
90
90
|
For this use case, let's assume the following:
|
91
91
|
|
92
92
|
* the default branch is `main` (this is the HEAD branch returned by `git remote show origin`)
|
93
|
-
* the current version of the gem is `0.1.0` (as returned by `
|
93
|
+
* the current version of the gem is `0.1.0` (as returned by `gem-version-boss current`)
|
94
94
|
|
95
95
|
If a different first version number is desired, update the version number in the
|
96
|
-
source code making sure that `
|
96
|
+
source code making sure that `gem-version-boss current` returns the desired version number.
|
97
97
|
Then commit the change to the default branch on the remote before running this
|
98
98
|
script.
|
99
99
|
|
@@ -131,7 +131,7 @@ create-github-release first
|
|
131
131
|
|
132
132
|
The `create-github-release` script will do the following:
|
133
133
|
|
134
|
-
* Determine the next-release version (`v0.1.0`) using `
|
134
|
+
* Determine the next-release version (`v0.1.0`) using `gem-version-boss current`
|
135
135
|
* Update the project's changelog file `CHANGELOG.md`
|
136
136
|
* Create a release branch `release-v0.1.0`
|
137
137
|
* Commit the changes to the changelog and create a release tag (`v0.1.0`) pointing
|
@@ -148,7 +148,7 @@ In order to start using `create-github-release` after you have used some other
|
|
148
148
|
method for managing the gem version and creating releases, you need to ensure the
|
149
149
|
following prerequisites are met:
|
150
150
|
|
151
|
-
1. that `
|
151
|
+
1. that `gem-version-boss current` is the version of the last release (let's use `1.3.1` as an
|
152
152
|
example).
|
153
153
|
2. that there is a corresponding release tag that points to the last commit on the
|
154
154
|
default branch of the previous release. If the last version was `1.3.1`, then
|
@@ -173,7 +173,7 @@ For this use case, let's assume the following:
|
|
173
173
|
|
174
174
|
* you want to create a `major` release
|
175
175
|
* the default branch is `main` (this is the HEAD branch returned by `git remote show origin`)
|
176
|
-
* the current version of the gem is `0.1.0` (as returned by `
|
176
|
+
* the current version of the gem is `0.1.0` (as returned by `gem-version-boss current`)
|
177
177
|
|
178
178
|
The following prerequisites must be met:
|
179
179
|
|
@@ -196,9 +196,9 @@ create-github-release major
|
|
196
196
|
|
197
197
|
The `create-github-release` script will do the following:
|
198
198
|
|
199
|
-
* Determine the last-release version using `
|
200
|
-
* Determine the next-release version using `
|
201
|
-
* Increment the project's version using `
|
199
|
+
* Determine the last-release version using `gem-version-boss current`
|
200
|
+
* Determine the next-release version using `gem-version-boss RELEASE_TYPE --dry-run`
|
201
|
+
* Increment the project's version using `gem-version-boss RELEASE_TYPE`
|
202
202
|
* Update the project's changelog file `CHANGELOG.md`
|
203
203
|
* Create a release branch `release-v1.0.0`
|
204
204
|
* Commit the changes to the version and changelog AND create a release tag (`v1.0.0`) pointing
|
@@ -35,17 +35,16 @@ Gem::Specification.new do |spec|
|
|
35
35
|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
36
36
|
spec.require_paths = ['lib']
|
37
37
|
|
38
|
-
spec.add_runtime_dependency '
|
38
|
+
spec.add_runtime_dependency 'version_boss', '~> 0.1'
|
39
39
|
|
40
40
|
spec.add_development_dependency 'bundler-audit', '~> 0.9'
|
41
|
-
spec.add_development_dependency 'debug', '~> 1.
|
42
|
-
spec.add_development_dependency 'rake', '~> 13.
|
43
|
-
spec.add_development_dependency 'redcarpet', '~> 3.
|
44
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
45
|
-
spec.add_development_dependency 'rubocop', '~> 1.
|
46
|
-
spec.add_development_dependency 'simplecov', '~> 0.
|
41
|
+
spec.add_development_dependency 'debug', '~> 1.9'
|
42
|
+
spec.add_development_dependency 'rake', '~> 13.2'
|
43
|
+
spec.add_development_dependency 'redcarpet', '~> 3.6'
|
44
|
+
spec.add_development_dependency 'rspec', '~> 3.13'
|
45
|
+
spec.add_development_dependency 'rubocop', '~> 1.63'
|
46
|
+
spec.add_development_dependency 'simplecov', '~> 0.22'
|
47
47
|
spec.add_development_dependency 'simplecov-lcov', '~> 0.8'
|
48
|
-
# spec.add_development_dependency 'solargraph', '~> 0.49'
|
49
48
|
spec.add_development_dependency 'timecop', '~> 0.9'
|
50
49
|
spec.add_development_dependency 'yard', '~> 0.9'
|
51
50
|
spec.add_development_dependency 'yardstick', '~> 0.9'
|
data/exe/revert-github-release
CHANGED
@@ -15,7 +15,7 @@ class Options
|
|
15
15
|
attr_writer :default_branch, :release_version, :release_tag, :release_branch, :current_branch, :remote
|
16
16
|
|
17
17
|
def default_branch = @default_branch ||= 'main'
|
18
|
-
def release_version = @release_version ||= `
|
18
|
+
def release_version = @release_version ||= `gem-version-boss current`.chomp
|
19
19
|
def release_tag = @release_tag ||= "v#{release_version}"
|
20
20
|
def release_branch = @release_branch ||= "release-#{release_tag}"
|
21
21
|
def current_branch = @current_branch ||= `git rev-parse --abbrev-ref HEAD`.chomp
|
@@ -222,7 +222,8 @@ module CreateGithubRelease
|
|
222
222
|
# @return [void]
|
223
223
|
# @api private
|
224
224
|
def define_last_release_version_option
|
225
|
-
option_parser.on('--last-release-version=VERSION',
|
225
|
+
option_parser.on('--last-release-version=VERSION',
|
226
|
+
'Use this version instead `gem-version-boss current`') do |version|
|
226
227
|
options.last_release_version = version
|
227
228
|
end
|
228
229
|
end
|
@@ -233,7 +234,7 @@ module CreateGithubRelease
|
|
233
234
|
def define_next_release_version_option
|
234
235
|
option_parser.on(
|
235
236
|
'--next-release-version=VERSION',
|
236
|
-
'Use this version instead `
|
237
|
+
'Use this version instead `gem-version-boss next-RELEASE_TYPE`'
|
237
238
|
) do |version|
|
238
239
|
options.next_release_version = version
|
239
240
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'version_boss'
|
4
4
|
require 'uri'
|
5
5
|
|
6
6
|
module CreateGithubRelease
|
@@ -194,7 +194,7 @@ module CreateGithubRelease
|
|
194
194
|
#
|
195
195
|
# The version of the next release
|
196
196
|
#
|
197
|
-
# @example By default, `next_release_version` is based on
|
197
|
+
# @example By default, `next_release_version` is based on `gem-version-boss <release_type> --dry-run`
|
198
198
|
# options = CreateGithubRelease::CommandLine::Options.new(release_type: 'major')
|
199
199
|
# project = CreateGithubRelease::Project.new(options)
|
200
200
|
# project.next_release_version #=> '1.0.0'
|
@@ -207,7 +207,7 @@ module CreateGithubRelease
|
|
207
207
|
#
|
208
208
|
# @return [String]
|
209
209
|
#
|
210
|
-
# @raise [RuntimeError] if the
|
210
|
+
# @raise [RuntimeError] if the gem-version-boss command fails
|
211
211
|
#
|
212
212
|
# @api public
|
213
213
|
#
|
@@ -245,7 +245,7 @@ module CreateGithubRelease
|
|
245
245
|
#
|
246
246
|
# The version of the last release
|
247
247
|
#
|
248
|
-
# @example By default, `last_release_version` is based on the value returned by `
|
248
|
+
# @example By default, `last_release_version` is based on the value returned by `gem-version-boss current`
|
249
249
|
# options = CreateGithubRelease::CommandLine::Options.new(release_type: 'major')
|
250
250
|
# project = CreateGithubRelease::Project.new(options)
|
251
251
|
# project.last_release_version #=> '0.0.1'
|
@@ -258,7 +258,7 @@ module CreateGithubRelease
|
|
258
258
|
#
|
259
259
|
# @return [String]
|
260
260
|
#
|
261
|
-
# @raise [RuntimeError] if the
|
261
|
+
# @raise [RuntimeError] if the gem-version-boss command fails
|
262
262
|
#
|
263
263
|
# @api public
|
264
264
|
#
|
@@ -284,7 +284,7 @@ module CreateGithubRelease
|
|
284
284
|
#
|
285
285
|
# @return [String]
|
286
286
|
#
|
287
|
-
# @raise [RuntimeError] if the
|
287
|
+
# @raise [RuntimeError] if the gem-version-boss command fails
|
288
288
|
#
|
289
289
|
# @api public
|
290
290
|
#
|
@@ -312,7 +312,7 @@ module CreateGithubRelease
|
|
312
312
|
#
|
313
313
|
# @return [URI]
|
314
314
|
#
|
315
|
-
# @raise [RuntimeError] if the
|
315
|
+
# @raise [RuntimeError] if the gem-version-boss command fails
|
316
316
|
#
|
317
317
|
# @api public
|
318
318
|
#
|
@@ -369,7 +369,7 @@ module CreateGithubRelease
|
|
369
369
|
#
|
370
370
|
# The type of the release being created (e.g. 'major', 'minor', 'patch')
|
371
371
|
#
|
372
|
-
# @note this must be one of the values accepted by the `
|
372
|
+
# @note this must be one of the values accepted by the `gem-version-boss` command
|
373
373
|
#
|
374
374
|
# @example By default, this value comes from the options object
|
375
375
|
# options = CreateGithubRelease::CommandLine::Options.new(release_type: 'major')
|
@@ -913,22 +913,22 @@ module CreateGithubRelease
|
|
913
913
|
|
914
914
|
private
|
915
915
|
|
916
|
-
# The current version of the project as determined by
|
916
|
+
# The current version of the project as determined by gem-version-boss
|
917
917
|
# @return [String] The current version of the project
|
918
918
|
# @api private
|
919
919
|
def current_version
|
920
|
-
output = `
|
921
|
-
raise 'Could not determine current version using
|
920
|
+
output = `gem-version-boss current`
|
921
|
+
raise 'Could not determine current version using gem-version-boss' unless $CHILD_STATUS.success?
|
922
922
|
|
923
923
|
output.lines.last.chomp
|
924
924
|
end
|
925
925
|
|
926
|
-
# The next version
|
926
|
+
# The next version as determined by gem-version-boss and release_type
|
927
927
|
# @return [String] The next version of the project
|
928
928
|
# @api private
|
929
929
|
def next_version
|
930
930
|
output = `#{next_version_cmd}`
|
931
|
-
raise 'Could not determine next version using
|
931
|
+
raise 'Could not determine next version using gem-version-boss' unless $CHILD_STATUS.success?
|
932
932
|
|
933
933
|
output.lines.last.chomp
|
934
934
|
end
|
@@ -937,7 +937,7 @@ module CreateGithubRelease
|
|
937
937
|
# @return [String]
|
938
938
|
# @api private
|
939
939
|
def next_version_cmd
|
940
|
-
cmd = "
|
940
|
+
cmd = "gem-version-boss next-#{release_type}"
|
941
941
|
cmd << ' --pre' if pre
|
942
942
|
cmd << " --pre-type=#{pre_type}" if pre_type
|
943
943
|
cmd << ' --dry-run'
|
@@ -5,12 +5,12 @@ require 'create_github_release/task_base'
|
|
5
5
|
|
6
6
|
module CreateGithubRelease
|
7
7
|
module Tasks
|
8
|
-
# Update the gem version using
|
8
|
+
# Update the gem version using gem-version-boss
|
9
9
|
#
|
10
10
|
# @api public
|
11
11
|
#
|
12
12
|
class UpdateVersion < TaskBase
|
13
|
-
# Update the gem version using
|
13
|
+
# Update the gem version using gem-version-boss
|
14
14
|
#
|
15
15
|
# @example
|
16
16
|
# require 'create_github_release'
|
@@ -39,28 +39,28 @@ module CreateGithubRelease
|
|
39
39
|
|
40
40
|
private
|
41
41
|
|
42
|
-
# Increment the version using
|
42
|
+
# Increment the version using gem-version-boss
|
43
43
|
# @return [void]
|
44
44
|
# @api private
|
45
45
|
def increment_version
|
46
|
-
command = "
|
46
|
+
command = "gem-version-boss next-#{project.release_type}"
|
47
47
|
command += ' --pre' if project.pre
|
48
48
|
command += " --pre-type=#{project.pre_type}" if project.pre_type
|
49
49
|
`#{command}`
|
50
50
|
error 'Could not increment version' unless $CHILD_STATUS.success?
|
51
51
|
end
|
52
52
|
|
53
|
-
# Return the path the the version file using
|
53
|
+
# Return the path the the version file using gem-version-boss
|
54
54
|
# @return [String]
|
55
55
|
# @api private
|
56
56
|
def version_file
|
57
|
-
output = `
|
58
|
-
error '
|
57
|
+
output = `gem-version-boss file`
|
58
|
+
error 'Could determine the version file' unless $CHILD_STATUS.success?
|
59
59
|
|
60
60
|
output.lines.last.chomp
|
61
61
|
end
|
62
62
|
|
63
|
-
# Identify the version file using
|
63
|
+
# Identify the version file using gem-version-boss and stage the change to it
|
64
64
|
# @return [void]
|
65
65
|
# @api private
|
66
66
|
def stage_version_file
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: create_github_release
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: version_boss
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
26
|
+
version: '0.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler-audit
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,84 +44,84 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '1.
|
47
|
+
version: '1.9'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '1.
|
54
|
+
version: '1.9'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '13.
|
61
|
+
version: '13.2'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '13.
|
68
|
+
version: '13.2'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: redcarpet
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '3.
|
75
|
+
version: '3.6'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '3.
|
82
|
+
version: '3.6'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rspec
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '3.
|
89
|
+
version: '3.13'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '3.
|
96
|
+
version: '3.13'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rubocop
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '1.
|
103
|
+
version: '1.63'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '1.
|
110
|
+
version: '1.63'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: simplecov
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '0.
|
117
|
+
version: '0.22'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '0.
|
124
|
+
version: '0.22'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: simplecov-lcov
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -250,8 +250,8 @@ metadata:
|
|
250
250
|
allowed_push_host: https://rubygems.org
|
251
251
|
homepage_uri: https://github.com/main-branch/create_github_release
|
252
252
|
source_code_uri: https://github.com/main-branch/create_github_release
|
253
|
-
changelog_uri: https://rubydoc.info/gems/create_github_release/1.
|
254
|
-
documentation_uri: https://rubydoc.info/gems/create_github_release/1.
|
253
|
+
changelog_uri: https://rubydoc.info/gems/create_github_release/1.4.0/file/CHANGELOG.md
|
254
|
+
documentation_uri: https://rubydoc.info/gems/create_github_release/1.4.0
|
255
255
|
rubygems_mfa_required: 'true'
|
256
256
|
post_install_message:
|
257
257
|
rdoc_options: []
|
@@ -268,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
268
268
|
- !ruby/object:Gem::Version
|
269
269
|
version: '0'
|
270
270
|
requirements: []
|
271
|
-
rubygems_version: 3.5.
|
271
|
+
rubygems_version: 3.5.9
|
272
272
|
signing_key:
|
273
273
|
specification_version: 4
|
274
274
|
summary: A script to create a GitHub release for a Ruby Gem
|