create_github_release 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b7feefb0f3ef554c8aea3c693cdbbed30aab587be5dc44631101898caadfa658
4
- data.tar.gz: d342cd8c38e03ca012d5b70daf832642a7434c647d4466d9cd0969e9f4278926
3
+ metadata.gz: 4c7135b3a301cc4504b3eb3b5bbb68f8f22d095e7f3edcf95044aa24ce0810b3
4
+ data.tar.gz: 4a59c7be79e6b571b3bafa683213c03b283468dc36e4e5766e0d9264ea70aa6e
5
5
  SHA512:
6
- metadata.gz: 122c8e2198ceb28fa9e429f851e7c6d821cadc71fb5a3ade6749c520d1ae7d427159f7059e1455a3a2b15294d8e1125e75451d4d1996fceef63f07e7b88b4ffb
7
- data.tar.gz: e6d1a7abe65328fc51161458934709b9ae3e747573398f4ef71bcdfad4023f865b76ebd6836fe7622183a90909da9498ca6ec30b29deac89d9608b0a225e8d7d
6
+ metadata.gz: f40d6c1141f6e3ff94b5fc2532dd1c73149b2ae5f2c4fba6a7ea2a79597a592080327ae749f9373c45ae0c9c82ef286455b4265b1949575e95f640f47e64dd53
7
+ data.tar.gz: 124bf8d9ed03b6d82d902e63acae142298000062bfb4ff9409e3e31f98f4d83f8c24de85263de788478213c567c6cbf08308003b5d6d846ac044884ef7188dd2
data/.rubocop.yml CHANGED
@@ -7,7 +7,7 @@ AllCops:
7
7
  SuggestExtensions: false
8
8
  # RuboCop enforces rules depending on the oldest version of Ruby which
9
9
  # your project supports:
10
- TargetRubyVersion: 2.7
10
+ TargetRubyVersion: 3.0
11
11
 
12
12
  # The default max line length is 80 characters
13
13
  Layout/LineLength:
@@ -18,3 +18,6 @@ Metrics/BlockLength:
18
18
  Exclude:
19
19
  - "spec/**/*_spec.rb"
20
20
  - "*.gemspec"
21
+
22
+ Gemspec/DevelopmentDependencies:
23
+ EnforcedStyle: gemspec
data/.solargraph.yml ADDED
@@ -0,0 +1,23 @@
1
+ ---
2
+ include:
3
+ - "**/*.rb"
4
+ exclude:
5
+ - spec/**/*
6
+ - test/**/*
7
+ - vendor/**/*
8
+ - ".bundle/**/*"
9
+ require: []
10
+ domains: []
11
+ reporters:
12
+ - rubocop
13
+ - require_not_found
14
+ - typecheck:strict
15
+ formatter:
16
+ rubocop:
17
+ cops: safe
18
+ except: []
19
+ only: []
20
+ extra_args: []
21
+ require_paths: []
22
+ plugins: []
23
+ max_files: 5000
@@ -0,0 +1,19 @@
1
+ {
2
+ // Test
3
+ "version": "0.2.0",
4
+ "configurations": [
5
+ {
6
+ "type": "rdbg",
7
+ "name": "Debug current file with rdbg",
8
+ "request": "launch",
9
+ "script": "${file}",
10
+ "args": [],
11
+ "askParameters": false
12
+ },
13
+ {
14
+ "type": "rdbg",
15
+ "name": "Attach with rdbg",
16
+ "request": "attach"
17
+ }
18
+ ]
19
+ }
data/CHANGELOG.md CHANGED
@@ -5,6 +5,24 @@ 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.1.0 (2023-10-15)
9
+
10
+ [Full Changelog](https://github.com/main-branch/create_github_release/compare/v1.0.0..v1.1.0)
11
+
12
+ Changes since v1.0.0:
13
+
14
+ * 5088cd0 Add instruction for publishing the resulting gem (#41)
15
+ * 60553b0 Integrate solargraph:typecheck into Rake and fix any problems (#40)
16
+ * c0dd2d8 Improve reporting of code not covered by tests (#38)
17
+ * 5dff0b5 Tell rubocop development dependencies go in the gemspec (#39)
18
+ * d55f2f4 Merge pull request #37 from main-branch/debugging_support
19
+ * 4a28c4c Allow the build to continue if the Ruby head build fails
20
+ * 2814761 Add launch.json to run the ruby debugger in VS Code
21
+ * c3de36d Require 'debug' in spec_helper so `binding.break` can be used
22
+ * 3f3276d Add gems needed for debugging
23
+ * e299d97 Replace 'bump' with 'semverify' (#35)
24
+ * 68fa672 Drop support for Ruby 2.7 and require at least Ruby 3.0 (#36)
25
+
8
26
  ## v1.0.0 (2023-02-05)
9
27
 
10
28
  [Full Changelog](https://github.com/main-branch/create_github_release/compare/v0.3.0..v1.0.0)
data/README.md CHANGED
@@ -52,9 +52,9 @@ Options:
52
52
  --release-branch=BRANCH_NAME Override the release branch to create
53
53
  --remote=REMOTE_NAME Use this remote name instead of 'origin'
54
54
  --last-release-version=VERSION
55
- Use this version instead `bump current`
55
+ Use this version instead `semverify current`
56
56
  --next-release-version=VERSION
57
- Use this version instead `bump RELEASE_TYPE`
57
+ Use this version instead `semverify RELEASE_TYPE`
58
58
  --changelog-path=PATH Use this file instead of CHANGELOG.md
59
59
  -q, --[no-]quiet Do not show output
60
60
  -v, --[no-]verbose Show extra output
@@ -76,10 +76,10 @@ If this is to be the first release of this gem follow these instructions.
76
76
  For this use case, let's assume the following:
77
77
 
78
78
  * the default branch is `main` (this is the HEAD branch returned by `git remote show origin`)
79
- * the current version of the gem is `0.1.0` (as returned by `bump current`)
79
+ * the current version of the gem is `0.1.0` (as returned by `semverify current`)
80
80
 
81
81
  If a different first version number is desired, update the version number in the
82
- source code making sure that `bump current` returns the desired version number.
82
+ source code making sure that `semverify current` returns the desired version number.
83
83
  Then commit the change to the default branch on the remote before running this
84
84
  script.
85
85
 
@@ -117,7 +117,7 @@ create-github-release first
117
117
 
118
118
  The `create-github-release` script will do the following:
119
119
 
120
- * Determine the next-release version (`v0.1.0`) using `bump current`
120
+ * Determine the next-release version (`v0.1.0`) using `semverify current`
121
121
  * Update the project's changelog file `CHANGELOG.md`
122
122
  * Create a release branch `release-v0.1.0`
123
123
  * Commit the changes to the changelog and create a release tag (`v0.1.0`) pointing
@@ -134,7 +134,7 @@ In order to start using `create-github-release` after you have used some other
134
134
  method for managing the gem version and creating releases, you need to ensure the
135
135
  following prerequisites are met:
136
136
 
137
- 1. that `bump current` is the version of the last release (let's use `1.3.1` as an
137
+ 1. that `semverify current` is the version of the last release (let's use `1.3.1` as an
138
138
  example).
139
139
  2. that there is a corresponding release tag that points to the last commit on the
140
140
  default branch of the previous release. If the last version was `1.3.1`, then
@@ -159,7 +159,7 @@ For this use case, let's assume the following:
159
159
 
160
160
  * you want to create a `major` release
161
161
  * the default branch is `main` (this is the HEAD branch returned by `git remote show origin`)
162
- * the current version of the gem is `0.1.0` (as returned by `bump current`)
162
+ * the current version of the gem is `0.1.0` (as returned by `semverify current`)
163
163
 
164
164
  The following prerequisites must be met:
165
165
 
@@ -182,9 +182,9 @@ create-github-release major
182
182
 
183
183
  The `create-github-release` script will do the following:
184
184
 
185
- * Determine the last-release version using `bump current`
186
- * Determine the next-release version using `bump show-next RELEASE_TYPE`
187
- * Bump the project's version using `bump RELEASE_TYPE`
185
+ * Determine the last-release version using `semverify current`
186
+ * Determine the next-release version using `semverify RELEASE_TYPE --dry-run`
187
+ * Increment the project's version using `semverify RELEASE_TYPE`
188
188
  * Update the project's changelog file `CHANGELOG.md`
189
189
  * Create a release branch `release-v1.0.0`
190
190
  * Commit the changes to the version and changelog AND create a release tag (`v1.0.0`) pointing
data/Rakefile CHANGED
@@ -3,7 +3,7 @@
3
3
  # The default task
4
4
 
5
5
  desc 'Run the same tasks that the CI build will run'
6
- task default: %w[spec rubocop yard yard:audit yard:coverage bundle:audit build]
6
+ task default: %w[spec rubocop yard yard:audit yard:coverage solargraph:typecheck bundle:audit build]
7
7
 
8
8
  # Bundler Audit
9
9
 
@@ -26,10 +26,6 @@ end
26
26
  CLEAN << 'pkg'
27
27
  CLOBBER << 'Gemfile.lock'
28
28
 
29
- # Bump
30
-
31
- require 'bump/tasks'
32
-
33
29
  # RSpec
34
30
 
35
31
  require 'rspec/core/rake_task'
@@ -79,6 +75,13 @@ Yardstick::Rake::Verify.new(:'yard:coverage') do |verify|
79
75
  verify.threshold = 100
80
76
  end
81
77
 
78
+ # Solargraph typecheck
79
+
80
+ desc 'Run the solargraph type checker'
81
+ task :'solargraph:typecheck' do
82
+ sh 'bundle exec solargraph typecheck --level=typed'
83
+ end
84
+
82
85
  # Additional cleanup
83
86
 
84
87
  CLEAN << 'tmp'
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
15
15
  DESCRIPTION
16
16
  spec.homepage = 'https://github.com/main-branch/create_github_release'
17
17
  spec.license = 'MIT'
18
- spec.required_ruby_version = '>= 2.7.0'
18
+ spec.required_ruby_version = '>= 3.0.0'
19
19
 
20
20
  spec.metadata['allowed_push_host'] = 'https://rubygems.org'
21
21
 
@@ -34,15 +34,18 @@ Gem::Specification.new do |spec|
34
34
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
35
35
  spec.require_paths = ['lib']
36
36
 
37
- spec.add_development_dependency 'bump', '~> 0.10'
37
+ spec.add_runtime_dependency 'semverify', '~> 0.3'
38
+
38
39
  spec.add_development_dependency 'bundler-audit', '~> 0.9'
40
+ spec.add_development_dependency 'debug', '~> 1.7'
39
41
  spec.add_development_dependency 'rake', '~> 13.0'
40
42
  spec.add_development_dependency 'redcarpet', '~> 3.5'
41
43
  spec.add_development_dependency 'rspec', '~> 3.10'
42
44
  spec.add_development_dependency 'rubocop', '~> 1.36'
45
+ spec.add_development_dependency 'ruby-debug-ide', '~> 0.7'
43
46
  spec.add_development_dependency 'simplecov', '~> 0.21'
44
47
  spec.add_development_dependency 'simplecov-lcov', '~> 0.8'
45
- spec.add_development_dependency 'solargraph', '~> 0.47'
48
+ spec.add_development_dependency 'solargraph', '~> 0.49'
46
49
  spec.add_development_dependency 'timecop', '~> 0.9'
47
50
  spec.add_development_dependency 'yard', '~> 0.9'
48
51
  spec.add_development_dependency 'yardstick', '~> 0.9'
@@ -23,4 +23,8 @@ puts <<~MESSAGE unless project.quiet
23
23
  git checkout #{project.default_branch}
24
24
  git merge --ff-only #{project.release_branch}
25
25
  git push
26
+
27
+ Wait for the CI build to pass and then release the gem with the following command:
28
+
29
+ rake release:rubygem_push
26
30
  MESSAGE
@@ -30,8 +30,6 @@ module CreateGithubRelease
30
30
  raise NotImplementedError
31
31
  end
32
32
 
33
- # @!attribute [r] options
34
- #
35
33
  # The project passed to the assertion object
36
34
  # @return [CreateGithubRelease::Project] the project to create a release for
37
35
  # @api private
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'uri'
4
4
 
5
- # rubocop:disable Metrics/ModuleLength
6
-
7
5
  module CreateGithubRelease
8
6
  # An array of the valid release types
9
7
  # @return [Array<String>]
@@ -13,7 +11,14 @@ module CreateGithubRelease
13
11
  # Regex pattern for a [valid git reference](https://git-scm.com/docs/git-check-ref-format)
14
12
  # @return [Regexp]
15
13
  # @api private
16
- VALID_REF_PATTERN = /^(?:(?:[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*)|(?:[a-zA-Z0-9-]+))$/.freeze
14
+ VALID_REF_PATTERN = /^(?:(?:[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*)|(?:[a-zA-Z0-9-]+))$/
15
+
16
+ # An array of the allowed options that can be passed to `.new`
17
+ # @return [Array<Symbol>]
18
+ ALLOWED_OPTIONS = %i[
19
+ release_type default_branch release_branch remote last_release_version
20
+ next_release_version changelog_path quiet verbose
21
+ ].freeze
17
22
 
18
23
  # rubocop:disable Metrics/ClassLength
19
24
 
@@ -27,11 +32,9 @@ module CreateGithubRelease
27
32
  #
28
33
  # @api public
29
34
  #
30
- CommandLineOptions = Struct.new(
31
- :release_type, :default_branch, :release_branch, :remote, :last_release_version,
32
- :next_release_version, :changelog_path, :quiet, :verbose,
33
- keyword_init: true
34
- ) do
35
+ class CommandLineOptions
36
+ ALLOWED_OPTIONS.each { |option| attr_accessor option }
37
+
35
38
  # @attribute release_type [rw] the type of release to create
36
39
  #
37
40
  # Must be one of the VALID_RELEASE_TYPES
@@ -129,11 +132,14 @@ module CreateGithubRelease
129
132
  # @yieldparam self [CreateGithubRelease::CommandLineOptions] the instance being initialized
130
133
  # @yieldreturn [void] the return value is ignored
131
134
  #
132
- def initialize(*)
133
- super
135
+ def initialize(**options)
136
+ assert_no_unknown_options(options)
137
+ options.each { |k, v| instance_variable_set("@#{k}", v) }
138
+
134
139
  self.quiet ||= false
135
140
  self.verbose ||= false
136
141
  @errors = []
142
+
137
143
  yield(self) if block_given?
138
144
  end
139
145
 
@@ -192,6 +198,17 @@ module CreateGithubRelease
192
198
 
193
199
  private
194
200
 
201
+ # Raise ArgumentError if options has a key not in ALLOWED_OPTIONS
202
+ # @return [void]
203
+ # @api private
204
+ def assert_no_unknown_options(options)
205
+ unknown_options = options.keys - ALLOWED_OPTIONS
206
+ return if unknown_options.empty?
207
+
208
+ message = "Unknown keywords: #{unknown_options.join(', ')}"
209
+ raise ArgumentError, message
210
+ end
211
+
195
212
  # Returns `true` if the given name is a valid git reference
196
213
  # @return [Boolean]
197
214
  # @api private
@@ -229,19 +246,13 @@ module CreateGithubRelease
229
246
  false
230
247
  end
231
248
 
232
- # Returns a string representation of the valid release types
233
- # @return [String]
234
- # @api private
235
- def valid_release_types
236
- "'#{VALID_RELEASE_TYPES.join("', '")}'"
237
- end
238
-
239
249
  # Returns `true` if the `#release_type` is not nil
240
250
  # @return [Boolean]
241
251
  # @api private
242
252
  def validate_release_type_given
243
253
  return true unless release_type.nil?
244
254
 
255
+ valid_release_types = "'#{VALID_RELEASE_TYPES.join("', '")}'"
245
256
  @errors << "RELEASE_TYPE must be given and be one of #{valid_release_types}"
246
257
  false
247
258
  end
@@ -252,6 +263,7 @@ module CreateGithubRelease
252
263
  def validate_release_type
253
264
  return true if release_type.nil? || VALID_RELEASE_TYPES.include?(release_type)
254
265
 
266
+ valid_release_types = "'#{VALID_RELEASE_TYPES.join("', '")}'"
255
267
  @errors << "RELEASE_TYPE '#{release_type}' is not valid. Must be one of #{valid_release_types}"
256
268
  false
257
269
  end
@@ -364,4 +376,3 @@ module CreateGithubRelease
364
376
  end
365
377
  # rubocop:enable Metrics/ClassLength
366
378
  end
367
- # rubocop:enable Metrics/ModuleLength
@@ -46,7 +46,7 @@ module CreateGithubRelease
46
46
  #
47
47
  # @param args [Array<String>] the command line arguments
48
48
  #
49
- # @return [CreateGithubRelease::Options] the options
49
+ # @return [CreateGithubRelease::CommandLineOptions] the options
50
50
  #
51
51
  def parse(*args)
52
52
  begin
@@ -72,7 +72,7 @@ module CreateGithubRelease
72
72
  # options = parser.options
73
73
  # options.release_type # => 'major'
74
74
  #
75
- # @return [CreateGithubRelease::Options] the options
75
+ # @return [CreateGithubRelease::CommandLineOptions] the options
76
76
  #
77
77
  # @api private
78
78
  #
@@ -128,6 +128,7 @@ module CreateGithubRelease
128
128
  # @return [void]
129
129
  # @api private
130
130
  def define_options
131
+ # @sg-ignore
131
132
  option_parser.banner = "Usage:\n#{command_template}"
132
133
  option_parser.separator ''
133
134
  option_parser.separator "RELEASE_TYPE must be 'major', 'minor', or 'patch'"
@@ -199,7 +200,7 @@ module CreateGithubRelease
199
200
  # @return [void]
200
201
  # @api private
201
202
  def define_last_release_version_option
202
- option_parser.on('--last-release-version=VERSION', 'Use this version instead `bump current`') do |version|
203
+ option_parser.on('--last-release-version=VERSION', 'Use this version instead `semverify current`') do |version|
203
204
  options.last_release_version = version
204
205
  end
205
206
  end
@@ -208,7 +209,10 @@ module CreateGithubRelease
208
209
  # @return [void]
209
210
  # @api private
210
211
  def define_next_release_version_option
211
- option_parser.on('--next-release-version=VERSION', 'Use this version instead `bump RELEASE_TYPE`') do |version|
212
+ option_parser.on(
213
+ '--next-release-version=VERSION',
214
+ 'Use this version instead `semverify next-RELEASE_TYPE`'
215
+ ) do |version|
212
216
  options.next_release_version = version
213
217
  end
214
218
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'bump'
3
+ require 'semverify'
4
4
  require 'uri'
5
5
 
6
6
  module CreateGithubRelease
@@ -193,7 +193,7 @@ module CreateGithubRelease
193
193
  #
194
194
  # The version of the next release
195
195
  #
196
- # @example By default, `next_release_version` is based on the value returned by `bump show-next <release_type>`
196
+ # @example By default, `next_release_version` is based on the value returned by `semverify <release_type> --dry-run`
197
197
  # options = CreateGithubRelease::CommandLineOptions.new(release_type: 'major')
198
198
  # project = CreateGithubRelease::Project.new(options)
199
199
  # project.next_release_version #=> '1.0.0'
@@ -206,12 +206,12 @@ module CreateGithubRelease
206
206
  #
207
207
  # @return [String]
208
208
  #
209
- # @raise [RuntimeError] if the bump command fails
209
+ # @raise [RuntimeError] if the semverify command fails
210
210
  #
211
211
  # @api public
212
212
  #
213
213
  def next_release_version
214
- @next_release_version ||= options.next_release_version || bump_show_next_version
214
+ @next_release_version ||= options.next_release_version || next_version
215
215
  end
216
216
 
217
217
  # @!attribute [rw] last_release_tag
@@ -244,7 +244,7 @@ module CreateGithubRelease
244
244
  #
245
245
  # The version of the last release
246
246
  #
247
- # @example By default, `last_release_version` is based on the value returned by `bump current`
247
+ # @example By default, `last_release_version` is based on the value returned by `semverify current`
248
248
  # options = CreateGithubRelease::CommandLineOptions.new(release_type: 'major')
249
249
  # project = CreateGithubRelease::Project.new(options)
250
250
  # project.last_release_version #=> '0.0.1'
@@ -257,12 +257,12 @@ module CreateGithubRelease
257
257
  #
258
258
  # @return [String]
259
259
  #
260
- # @raise [RuntimeError] if the bump command fails
260
+ # @raise [RuntimeError] if the semverify command fails
261
261
  #
262
262
  # @api public
263
263
  #
264
264
  def last_release_version
265
- @last_release_version ||= options.last_release_version || bump_current_version
265
+ @last_release_version ||= options.last_release_version || current_version
266
266
  end
267
267
 
268
268
  # @!attribute [rw] release_branch
@@ -283,7 +283,7 @@ module CreateGithubRelease
283
283
  #
284
284
  # @return [String]
285
285
  #
286
- # @raise [RuntimeError] if the bump command fails
286
+ # @raise [RuntimeError] if the semverify command fails
287
287
  #
288
288
  # @api public
289
289
  #
@@ -311,7 +311,7 @@ module CreateGithubRelease
311
311
  #
312
312
  # @return [URI]
313
313
  #
314
- # @raise [RuntimeError] if the bump command fails
314
+ # @raise [RuntimeError] if the semverify command fails
315
315
  #
316
316
  # @api public
317
317
  #
@@ -327,7 +327,7 @@ module CreateGithubRelease
327
327
  #
328
328
  # The type of the release being created (e.g. 'major', 'minor', 'patch')
329
329
  #
330
- # @note this must be one of the values accepted by the `bump` command
330
+ # @note this must be one of the values accepted by the `semverify` command
331
331
  #
332
332
  # @example By default, this value comes from the options object
333
333
  # options = CreateGithubRelease::CommandLineOptions.new(release_type: 'major')
@@ -367,7 +367,7 @@ module CreateGithubRelease
367
367
  # project.release_url = URI.parse('https://github.com/org/repo/releases/tag/v1.0.0')
368
368
  # project.release_url #=> #<URI::HTTPS https://github.com/org/repo/releases/tag/v1.0.0>
369
369
  #
370
- # @return [URI]
370
+ # @return [URI::Generic]
371
371
  #
372
372
  # @api public
373
373
  #
@@ -419,7 +419,7 @@ module CreateGithubRelease
419
419
  # project.remote_base_url = URI.parse('https://github.com/')
420
420
  # project.remote_base_url #=> #<URI::HTTPS https://github.com/>
421
421
  #
422
- # @return [URI]
422
+ # @return [URI::Generic]
423
423
  #
424
424
  # @api public
425
425
  #
@@ -812,31 +812,31 @@ module CreateGithubRelease
812
812
 
813
813
  private
814
814
 
815
- # The current version of the project as determined by bump
815
+ # The current version of the project as determined by semverify
816
816
  # @return [String] The current version of the project
817
817
  # @api private
818
- def bump_current_version
819
- output = `bump current`
820
- raise 'Could not determine current version using bump' unless $CHILD_STATUS.success?
818
+ def current_version
819
+ output = `semverify current`
820
+ raise 'Could not determine current version using semverify' unless $CHILD_STATUS.success?
821
821
 
822
822
  output.lines.last.chomp
823
823
  end
824
824
 
825
- # The next version of the project as determined by bump and release_type
825
+ # The next version of the project as determined by semverify and release_type
826
826
  # @return [String] The next version of the project
827
827
  # @api private
828
- def bump_show_next_version
829
- output = `bump show-next #{release_type}`
830
- raise 'Could not determine next version using bump' unless $CHILD_STATUS.success?
828
+ def next_version
829
+ output = `semverify next-#{release_type} --dry-run`
830
+ raise 'Could not determine next version using semverify' unless $CHILD_STATUS.success?
831
831
 
832
832
  output.lines.last.chomp
833
833
  end
834
834
 
835
835
  # Setup versions and tags for a first release
836
- # @return [Void]
836
+ # @return [void]
837
837
  # @api private
838
838
  def setup_first_release
839
- self.next_release_version = @next_release_version || bump_current_version
839
+ self.next_release_version = @next_release_version || current_version
840
840
  self.last_release_version = ''
841
841
  self.last_release_tag = ''
842
842
  end
@@ -24,7 +24,7 @@ module CreateGithubRelease
24
24
  # assertions = CreateGithubRelease::ReleaseAssertions.new(options)
25
25
  # assertions.options # => #<CreateGithubRelease::Options:0x00007f9b0a0b0a00>
26
26
  #
27
- # @return [CreateGithubRelease::Options]
27
+ # @return [CreateGithubRelease::CommandLineOptions]
28
28
  attr_reader :options
29
29
 
30
30
  # Create a new instance of ReleaseAssertions
@@ -79,6 +79,7 @@ module CreateGithubRelease
79
79
  #
80
80
  def make_assertions
81
81
  ASSERTIONS.each do |assertion_class|
82
+ # @sg-ignore
82
83
  assertion_class.new(options).assert
83
84
  end
84
85
  end
@@ -24,7 +24,7 @@ module CreateGithubRelease
24
24
  # tasks = CreateGithubRelease::ReleaseTasks.new(options)
25
25
  # tasks.options # => #<CreateGithubRelease::Options:0x00007f9b0a0b0a00>
26
26
  #
27
- # @return [CreateGithubRelease::Options]
27
+ # @return [CreateGithubRelease::CommandLineOptions]
28
28
  attr_reader :options
29
29
 
30
30
  # Create a new instance of ReleaseTasks
@@ -71,6 +71,7 @@ module CreateGithubRelease
71
71
  #
72
72
  def run
73
73
  TASKS.each do |task_class|
74
+ # @sg-ignore
74
75
  task_class.new(options).run
75
76
  end
76
77
  end
@@ -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 Bump
8
+ # Update the gem version using semverify
9
9
  #
10
10
  # @api public
11
11
  #
12
12
  class UpdateVersion < TaskBase
13
- # Update the gem version using Bump
13
+ # Update the gem version using semverify
14
14
  #
15
15
  # @example
16
16
  # require 'create_github_release'
@@ -33,35 +33,34 @@ module CreateGithubRelease
33
33
  return if project.first_release?
34
34
 
35
35
  print 'Updating version...'
36
- bump_version
36
+ increment_version
37
37
  stage_version_file
38
38
  end
39
39
 
40
40
  private
41
41
 
42
- # Update the version using bump
42
+ # Increment the version using semverify
43
43
  # @return [void]
44
44
  # @api private
45
- def bump_version
46
- `bump #{project.release_type} --no-commit`
47
- error 'Could not bump version' unless $CHILD_STATUS.success?
45
+ def increment_version
46
+ `semverify next-#{project.release_type}`
47
+ error 'Could not increment version' unless $CHILD_STATUS.success?
48
48
  end
49
49
 
50
- # Return the path the the version file using bump
50
+ # Return the path the the version file using semverify
51
51
  # @return [String]
52
52
  # @api private
53
- def bump_version_file
54
- output = `bump file`
55
- error 'Bump could determine the version file' unless $CHILD_STATUS.success?
53
+ def version_file
54
+ output = `semverify file`
55
+ error 'Semverify could determine the version file' unless $CHILD_STATUS.success?
56
56
 
57
57
  output.lines.last.chomp
58
58
  end
59
59
 
60
- # Identify the version file using bump and stage the change to it
60
+ # Identify the version file using semverify and stage the change to it
61
61
  # @return [void]
62
62
  # @api private
63
63
  def stage_version_file
64
- version_file = bump_version_file
65
64
  `git add "#{version_file}"`
66
65
  if $CHILD_STATUS.success?
67
66
  puts 'OK'
@@ -2,5 +2,5 @@
2
2
 
3
3
  module CreateGithubRelease
4
4
  # The version of this gem
5
- VERSION = '1.0.0'
5
+ VERSION = '1.1.0'
6
6
  end
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.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-05 00:00:00.000000000 Z
11
+ date: 2023-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bump
14
+ name: semverify
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.10'
20
- type: :development
19
+ version: '0.3'
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.10'
26
+ version: '0.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler-audit
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.9'
41
+ - !ruby/object:Gem::Dependency
42
+ name: debug
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.7'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.7'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +108,20 @@ dependencies:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
110
  version: '1.36'
111
+ - !ruby/object:Gem::Dependency
112
+ name: ruby-debug-ide
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.7'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.7'
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: simplecov
99
127
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +156,14 @@ dependencies:
128
156
  requirements:
129
157
  - - "~>"
130
158
  - !ruby/object:Gem::Version
131
- version: '0.47'
159
+ version: '0.49'
132
160
  type: :development
133
161
  prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
164
  - - "~>"
137
165
  - !ruby/object:Gem::Version
138
- version: '0.47'
166
+ version: '0.49'
139
167
  - !ruby/object:Gem::Dependency
140
168
  name: timecop
141
169
  requirement: !ruby/object:Gem::Requirement
@@ -191,6 +219,8 @@ files:
191
219
  - ".markdownlint.yml"
192
220
  - ".rspec"
193
221
  - ".rubocop.yml"
222
+ - ".solargraph.yml"
223
+ - ".vscode/launch.json"
194
224
  - ".yardopts"
195
225
  - CHANGELOG.md
196
226
  - Gemfile
@@ -253,14 +283,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
253
283
  requirements:
254
284
  - - ">="
255
285
  - !ruby/object:Gem::Version
256
- version: 2.7.0
286
+ version: 3.0.0
257
287
  required_rubygems_version: !ruby/object:Gem::Requirement
258
288
  requirements:
259
289
  - - ">="
260
290
  - !ruby/object:Gem::Version
261
291
  version: '0'
262
292
  requirements: []
263
- rubygems_version: 3.4.1
293
+ rubygems_version: 3.4.14
264
294
  signing_key:
265
295
  specification_version: 4
266
296
  summary: A script to create a GitHub release for a Ruby Gem