create_github_release 1.5.0 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 312da511d779225d398925e66001d292366c70883f24c739b0e6288e0082891f
4
- data.tar.gz: d5dc70f33050b9b1cbd0d8d228782c294bca9c73143e0b4724869224c802f59d
3
+ metadata.gz: 12600b953af47f02425eb0245d33bc425144f135e1395359028a49c220ab47eb
4
+ data.tar.gz: ef8404f682fbfb505446d4dd2f2283894f5a52315d92db28bdbece29238668e7
5
5
  SHA512:
6
- metadata.gz: e3bd21e337933bb66b61f8eda03f7b9e932b547427161a2970d61d6d7f6009a395dc5db64cf3ac56b44480bac4bc5b6c9903b2702fc606803533373b6691db3c
7
- data.tar.gz: 6302667c91366596ca30aacfa2114e7c62bbfbfdaa5ff5f6c0b7b05af4e52da82e4e4dd9d43d17172474ea5146bdfeadb6c6b45c8fbc24564e0d5763a6c7a6b5
6
+ metadata.gz: e72d594e44e41b5c2be11228e1fb5024db9308697326052b0c570486b73f0f955af1760225c0fa92223a34f1cb2c065d04a983bced094dbdb76556bb92280c9b
7
+ data.tar.gz: 8a0f3b4e48211fbe3f57c985c6e55c68154914b21c6ff43ebc48eb67214f1cb00a4585f5db32ea58c27dd1d9453ab33311c82f9cdf81ae2143b181b01b946ff8
data/.markdownlint.yml CHANGED
@@ -9,7 +9,7 @@ MD013: { line_length: 90, tables: false, code_blocks: false }
9
9
  # Heading duplication is allowed for non-sibling headings
10
10
  MD024: { siblings_only: true }
11
11
 
12
- # Do not allow the specified trailig punctuation in a header
12
+ # Do not allow the specified trailing punctuation in a header
13
13
  MD026: { punctuation: '.,;:' }
14
14
 
15
15
  # Order list items must have a prefix that increases in numerical order
data/.rubocop.yml CHANGED
@@ -1,23 +1,7 @@
1
- AllCops:
2
- NewCops: enable
3
- # Output extra information for each offense to make it easier to diagnose:
4
- DisplayCopNames: true
5
- DisplayStyleGuide: true
6
- ExtraDetails: true
7
- SuggestExtensions: false
8
- # RuboCop enforces rules depending on the oldest version of Ruby which
9
- # your project supports:
10
- TargetRubyVersion: 3.0
11
-
12
- # The default max line length is 80 characters
13
- Layout/LineLength:
14
- Max: 120
1
+ inherit_gem:
2
+ main_branch_shared_rubocop_config: config/rubocop.yml
15
3
 
16
- # The DSL for RSpec and the gemspec file make it very hard to limit block length:
17
- Metrics/BlockLength:
18
- Exclude:
19
- - "spec/**/*_spec.rb"
20
- - "*.gemspec"
21
-
22
- Gemspec/DevelopmentDependencies:
23
- EnforcedStyle: gemspec
4
+ AllCops:
5
+ # Pin this project to Ruby 3.1 in case the shared config above is upgraded to 3.2
6
+ # or later.
7
+ TargetRubyVersion: 3.1
data/.yardopts CHANGED
@@ -3,4 +3,6 @@
3
3
  --markup-provider=redcarpet
4
4
  --markup markdown
5
5
  - CHANGELOG.md
6
+ - CONTRIBUTING.md
7
+ - RELEASING.md
6
8
  - LICENSE.txt
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
+ ## v2.0.0 (2024-09-18)
9
+
10
+ [Full Changelog](https://github.com/main-branch/create_github_release/compare/v1.5.0..v2.0.0)
11
+
12
+ Changes since v1.5.0:
13
+
14
+ * 639dc5c Use the command_line_boss gem for CLI parsing
15
+ * 81b10ac Use shared Rubocop config
16
+ * 7f2576a Update copyright notice in this project
17
+ * 29c7b6e Update links in gemspec
18
+ * 610f216 Add Slack badge for this project in README
19
+ * 2fb5005 Use standard badges at the top of the README
20
+ * 9386029 Update yardopts with new standard options
21
+ * 35af127 Standardize YARD and Markdown Lint configurations
22
+ * 5b0cc7b Set JRuby —debug option when running tests in GitHub Actions workflows
23
+ * ec2a239 Update continuous integration and experimental ruby builds
24
+ * f4d0e93 Depend on v1 of semver_pr_label_check
25
+
8
26
  ## v1.5.0 (2024-09-10)
9
27
 
10
28
  [Full Changelog](https://github.com/main-branch/create_github_release/compare/v1.4.0..v1.5.0)
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2023 James Couball
3
+ Copyright (c) 2024 James Couball
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,9 +1,12 @@
1
1
  # The create_github_release Gem
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/create_github_release.svg)](https://badge.fury.io/rb/create_github_release)
4
- [![Build Status](https://github.com/main-branch/create_github_release/workflows/Ruby/badge.svg?branch=main)](https://github.com/main-branch/create_github_release/actions?query=workflow%3ARuby)
5
- [![Maintainability](https://api.codeclimate.com/v1/badges/b8c0af10b15a0ffeb1a1/maintainability)](https://codeclimate.com/github/main-branch/create_github_release/maintainability)
6
- [![Test Coverage](https://api.codeclimate.com/v1/badges/b8c0af10b15a0ffeb1a1/test_coverage)](https://codeclimate.com/github/main-branch/create_github_release/test_coverage)
4
+ [![Documentation](https://img.shields.io/badge/Documentation-Latest-green)](https://rubydoc.info/gems/create_github_release/)
5
+ [![Change Log](https://img.shields.io/badge/CHANGELOG-Latest-green)](https://rubydoc.info/gems/create_github_release/file/CHANGELOG.md)
6
+ [![Build Status](https://github.com/main-branch/create_github_release/actions/workflows/continuous_integration.yml/badge.svg)](https://github.com/main-branch/create_github_release/actions/workflows/continuous_integration.yml)
7
+ [![Maintainability](https://api.codeclimate.com/v1/badges/b8c0af10b15a0ffeb1a1/maintainability)](https://codeclimate.com/github/main-branch/create_github_release/maintainability)
8
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/b8c0af10b15a0ffeb1a1/test_coverage)](https://codeclimate.com/github/main-branch/create_github_release/test_coverage)
9
+ [![Slack](https://img.shields.io/badge/slack-main--branch/create__github__release-yellow.svg?logo=slack)](https://main-branch.slack.com/archives/C07NG282N80)
7
10
 
8
11
  When run in your gem's git worktree, the `create-github-release` script does the
9
12
  following:
data/Rakefile CHANGED
@@ -3,7 +3,11 @@
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
+ if RUBY_PLATFORM == 'java'
7
+ task default: %w[spec rubocop bundle:audit build]
8
+ else
9
+ task default: %w[spec rubocop yard bundle:audit build]
10
+ end
7
11
 
8
12
  # Bundler Audit
9
13
 
@@ -30,6 +34,11 @@ CLOBBER << 'Gemfile.lock'
30
34
 
31
35
  require 'rspec/core/rake_task'
32
36
 
37
+ if RUBY_PLATFORM == 'java'
38
+ ENV['JAVA_OPTS'] = '-Djdk.io.File.enableADS=true'
39
+ ENV['JRUBY_OPTS'] = '--debug'
40
+ end
41
+
33
42
  RSpec::Core::RakeTask.new
34
43
 
35
44
  CLEAN << 'coverage'
@@ -40,47 +49,44 @@ CLEAN << 'rspec-report.xml'
40
49
 
41
50
  require 'rubocop/rake_task'
42
51
 
43
- RuboCop::RakeTask.new do |t|
44
- t.options = %w[
45
- --format progress
46
- --format json --out rubocop-report.json
47
- ]
48
- end
49
-
50
- CLEAN << 'rubocop-report.json'
52
+ RuboCop::RakeTask.new
51
53
 
52
54
  # YARD
53
55
 
54
- require 'yard'
55
- YARD::Rake::YardocTask.new do |t|
56
- t.files = %w[lib/**/*.rb examples/**/*]
57
- t.stats_options = ['--list-undoc']
58
- end
56
+ unless RUBY_PLATFORM == 'java'
57
+ # yard:build
59
58
 
60
- CLEAN << '.yardoc'
61
- CLEAN << 'doc'
59
+ require 'yard'
62
60
 
63
- # Yardstick
61
+ YARD::Rake::YardocTask.new('yard:build') do |t|
62
+ t.files = %w[lib/**/*.rb examples/**/*]
63
+ t.options = %w[--no-private]
64
+ t.stats_options = %w[--list-undoc]
65
+ end
64
66
 
65
- desc 'Run yardstick to show missing YARD doc elements'
66
- task :'yard:audit' do
67
- sh "yardstick 'lib/**/*.rb'"
68
- end
67
+ CLEAN << '.yardoc'
68
+ CLEAN << 'doc'
69
69
 
70
- # Yardstick coverage
70
+ # yard:audit
71
71
 
72
- require 'yardstick/rake/verify'
72
+ desc 'Run yardstick to show missing YARD doc elements'
73
+ task :'yard:audit' do
74
+ sh "yardstick 'lib/**/*.rb'"
75
+ end
73
76
 
74
- Yardstick::Rake::Verify.new(:'yard:coverage') do |verify|
75
- verify.threshold = 100
76
- end
77
+ # yard:coverage
78
+
79
+ require 'yardstick/rake/verify'
77
80
 
78
- # # Solargraph typecheck
81
+ Yardstick::Rake::Verify.new(:'yard:coverage') do |verify|
82
+ verify.threshold = 100
83
+ end
79
84
 
80
- # desc 'Run the solargraph type checker'
81
- # task :'solargraph:typecheck' do
82
- # sh 'bundle exec solargraph typecheck --level=typed'
83
- # end
85
+ # yard
86
+
87
+ desc 'Run all YARD tasks'
88
+ task yard: %i[yard:build yard:audit yard:coverage]
89
+ end
84
90
 
85
91
  # Additional cleanup
86
92
 
@@ -13,16 +13,17 @@ Gem::Specification.new do |spec|
13
13
  A script that manages your gem version and creates a GitHub branch, PR, and
14
14
  release for a new gem version.
15
15
  DESCRIPTION
16
- spec.homepage = 'https://github.com/main-branch/create_github_release'
17
16
  spec.license = 'MIT'
18
- spec.required_ruby_version = '>= 3.0.0'
17
+ spec.required_ruby_version = '>= 3.1.0'
19
18
 
20
19
  spec.metadata['allowed_push_host'] = 'https://rubygems.org'
21
20
 
21
+ # Project links
22
+ spec.homepage = "https://github.com/main-branch/#{spec.name}"
22
23
  spec.metadata['homepage_uri'] = spec.homepage
23
24
  spec.metadata['source_code_uri'] = spec.homepage
24
- spec.metadata['changelog_uri'] = "https://rubydoc.info/gems/#{spec.name}/#{spec.version}/file/CHANGELOG.md"
25
25
  spec.metadata['documentation_uri'] = "https://rubydoc.info/gems/#{spec.name}/#{spec.version}"
26
+ spec.metadata['changelog_uri'] = "https://rubydoc.info/gems/#{spec.name}/#{spec.version}/file/CHANGELOG.md"
26
27
 
27
28
  # Specify which files should be added to the gem when it is released.
28
29
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -34,23 +35,31 @@ Gem::Specification.new do |spec|
34
35
  spec.bindir = 'exe'
35
36
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
36
37
  spec.require_paths = ['lib']
38
+ spec.requirements = [
39
+ 'Platform: Mac, Linux, or Windows',
40
+ 'Ruby: MRI 3.1 or later, TruffleRuby 24 or later, or JRuby 9.4 or later'
41
+ ]
37
42
 
38
43
  spec.add_dependency 'version_boss', '~> 0.1'
39
44
 
40
45
  spec.add_development_dependency 'bundler-audit', '~> 0.9'
41
- spec.add_development_dependency 'debug', '~> 1.9'
46
+ spec.add_development_dependency 'command_line_boss', '~> 0.1'
47
+ # spec.add_development_dependency 'debug', '~> 1.9'
48
+ spec.add_development_dependency 'logger', '~> 1.6'
49
+ spec.add_development_dependency 'main_branch_shared_rubocop_config', '~> 0.1'
42
50
  spec.add_development_dependency 'rake', '~> 13.2'
43
- spec.add_development_dependency 'redcarpet', '~> 3.6'
44
51
  spec.add_development_dependency 'rspec', '~> 3.13'
45
- spec.add_development_dependency 'rubocop', '~> 1.63'
52
+ spec.add_development_dependency 'rubocop', '~> 1.66'
46
53
  spec.add_development_dependency 'simplecov', '~> 0.22'
47
54
  spec.add_development_dependency 'simplecov-lcov', '~> 0.8'
55
+ spec.add_development_dependency 'simplecov-rspec', '~> 0.2'
48
56
  spec.add_development_dependency 'timecop', '~> 0.9'
49
- spec.add_development_dependency 'yard', '~> 0.9'
50
- spec.add_development_dependency 'yardstick', '~> 0.9'
51
57
 
52
- # For more information and examples about making a new gem, check out our
53
- # guide at: https://bundler.io/guides/creating_gem.html
58
+ unless RUBY_PLATFORM == 'java'
59
+ spec.add_development_dependency 'redcarpet', '~> 3.6'
60
+ spec.add_development_dependency 'yard', '~> 0.9', '>= 0.9.28'
61
+ spec.add_development_dependency 'yardstick', '~> 0.9'
62
+ end
54
63
 
55
64
  spec.metadata['rubygems_mfa_required'] = 'true'
56
65
  end
@@ -25,7 +25,7 @@ def wait_for_non_nil(method, max_attempts: 10, sleep_time: 0.5)
25
25
  result
26
26
  end
27
27
 
28
- options = CreateGithubRelease::CommandLine::Parser.new.parse(*ARGV)
28
+ options = CreateGithubRelease::CommandLine::Parser.new.parse!(ARGV).options
29
29
  pp options if options.verbose
30
30
 
31
31
  project = CreateGithubRelease::Project.new(options)
@@ -1,14 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'English'
4
- require 'optparse'
4
+ require 'command_line_boss'
5
5
  require 'create_github_release/command_line/options'
6
6
  require 'create_github_release/version'
7
7
 
8
8
  module CreateGithubRelease
9
9
  module CommandLine
10
- # rubocop:disable Metrics/ClassLength
11
-
12
10
  # Parses the options for this script
13
11
  #
14
12
  # @example Specify the release type
@@ -30,43 +28,8 @@ module CreateGithubRelease
30
28
  #
31
29
  # @api public
32
30
  #
33
- class Parser
34
- # Create a new command line parser
35
- #
36
- # @example
37
- # parser = CommandLineParser.new
38
- #
39
- def initialize
40
- @option_parser = OptionParser.new
41
- define_options
42
- @options = CreateGithubRelease::CommandLine::Options.new
43
- end
44
-
45
- # Parse the command line arguements returning the options
46
- #
47
- # @example
48
- # parser = CommandLineParser.new
49
- # options = parser.parse(['major'])
50
- #
51
- # @param args [Array<String>] the command line arguments
52
- #
53
- # @return [CreateGithubRelease::CommandLine::Options] the options
54
- #
55
- def parse(*args)
56
- begin
57
- option_parser.parse!(remaining_args = args.dup)
58
- rescue OptionParser::InvalidOption, OptionParser::MissingArgument => e
59
- report_errors(e.message)
60
- end
61
- parse_remaining_args(remaining_args)
62
- # puts options unless options.quiet
63
- report_errors(*options.errors) unless options.valid?
64
- options
65
- end
66
-
67
- private
68
-
69
- # @!attribute [rw] options
31
+ class Parser < CommandLineBoss
32
+ # @!attribute [r] options
70
33
  #
71
34
  # The options to used for the create-github-release script
72
35
  #
@@ -82,45 +45,26 @@ module CreateGithubRelease
82
45
  #
83
46
  attr_reader :options
84
47
 
85
- # @!attribute [rw] option_parser
86
- #
87
- # The option parser
88
- #
89
- # @return [OptionParser] the option parser
90
- #
91
- # @api private
92
- #
93
- attr_reader :option_parser
94
-
95
- # Parse non-option arguments (the release type)
96
- # @return [void]
97
- # @api private
98
- def parse_remaining_args(remaining_args)
99
- options.release_type = remaining_args.shift || nil
100
- report_errors('Too many args') unless remaining_args.empty?
101
- end
48
+ private
102
49
 
103
- # An error message constructed from the given errors array
104
- # @return [String]
50
+ # Set the default options
51
+ # @return [Void]
105
52
  # @api private
106
- def error_message(errors)
107
- <<~MESSAGE
108
- #{errors.map { |e| "ERROR: #{e}" }.join("\n")}
109
-
110
- Use --help for usage
111
- MESSAGE
53
+ def set_defaults
54
+ @options = CreateGithubRelease::CommandLine::Options.new
112
55
  end
113
56
 
114
- # Output an error message and useage to stderr and exit
57
+ # Parse non-option arguments (the release type)
115
58
  # @return [void]
116
59
  # @api private
117
- def report_errors(*errors)
118
- warn error_message(errors)
119
- exit 1
60
+ def parse_arguments
61
+ options.release_type = args.shift
120
62
  end
121
63
 
122
64
  # The banner for the option parser
123
- BANNER = <<~BANNER.freeze
65
+ # @return [String] the banner
66
+ # @api private
67
+ def banner = <<~BANNER.freeze
124
68
  Usage:
125
69
  #{File.basename($PROGRAM_NAME)} --help | RELEASE_TYPE [options]
126
70
 
@@ -131,25 +75,11 @@ module CreateGithubRelease
131
75
  Options:
132
76
  BANNER
133
77
 
134
- # Define the options for OptionParser
135
- # @return [void]
136
- # @api private
137
- def define_options
138
- # @sg-ignore
139
- option_parser.banner = BANNER
140
- %i[
141
- define_help_option define_default_branch_option define_release_branch_option define_pre_option
142
- define_pre_type_option define_remote_option define_last_release_version_option define_version_option
143
- define_next_release_version_option define_release_pr_label_option define_changelog_path_option
144
- define_quiet_option define_verbose_option
145
- ].each { |m| send(m) }
146
- end
147
-
148
78
  # Define the release_pr_label option which requires a value
149
79
  # @return [void]
150
80
  # @api private
151
81
  def define_release_pr_label_option
152
- option_parser.on('--release-pr-label=LABEL', 'The label to apply to the release pull request') do |label|
82
+ parser.on('--release-pr-label=LABEL', 'The label to apply to the release pull request') do |label|
153
83
  options.release_pr_label = label
154
84
  end
155
85
  end
@@ -158,7 +88,7 @@ module CreateGithubRelease
158
88
  # @return [void]
159
89
  # @api private
160
90
  def define_pre_option
161
- option_parser.on('-p', '--pre', 'Create a pre-release') do |pre|
91
+ parser.on('-p', '--pre', 'Create a pre-release') do |pre|
162
92
  options.pre = pre
163
93
  end
164
94
  end
@@ -168,7 +98,7 @@ module CreateGithubRelease
168
98
  # @api private
169
99
  def define_pre_type_option
170
100
  description = 'Type of pre-release to create (e.g. alpha, beta, etc.)'
171
- option_parser.on('-t', '--pre-type=TYPE', description) do |pre_type|
101
+ parser.on('-t', '--pre-type=TYPE', description) do |pre_type|
172
102
  options.pre_type = pre_type
173
103
  end
174
104
  end
@@ -177,7 +107,7 @@ module CreateGithubRelease
177
107
  # @return [void]
178
108
  # @api private
179
109
  def define_quiet_option
180
- option_parser.on('-q', '--[no-]quiet', 'Do not show output') do |quiet|
110
+ parser.on('-q', '--[no-]quiet', 'Do not show output') do |quiet|
181
111
  options.quiet = quiet
182
112
  end
183
113
  end
@@ -186,7 +116,7 @@ module CreateGithubRelease
186
116
  # @return [void]
187
117
  # @api private
188
118
  def define_verbose_option
189
- option_parser.on('-V', '--[no-]verbose', 'Show extra output') do |verbose|
119
+ parser.on('-V', '--[no-]verbose', 'Show extra output') do |verbose|
190
120
  options.verbose = verbose
191
121
  end
192
122
  end
@@ -195,8 +125,8 @@ module CreateGithubRelease
195
125
  # @return [void]
196
126
  # @api private
197
127
  def define_help_option
198
- option_parser.on_tail('-h', '--help', 'Show this message') do
199
- puts option_parser
128
+ parser.on_tail('-h', '--help', 'Show this message') do
129
+ puts parser
200
130
  exit 0
201
131
  end
202
132
  end
@@ -205,7 +135,7 @@ module CreateGithubRelease
205
135
  # @return [void]
206
136
  # @api private
207
137
  def define_default_branch_option
208
- option_parser.on('--default-branch=BRANCH_NAME', 'Override the default branch') do |name|
138
+ parser.on('--default-branch=BRANCH_NAME', 'Override the default branch') do |name|
209
139
  options.default_branch = name
210
140
  end
211
141
  end
@@ -214,7 +144,7 @@ module CreateGithubRelease
214
144
  # @return [void]
215
145
  # @api private
216
146
  def define_release_branch_option
217
- option_parser.on('--release-branch=BRANCH_NAME', 'Override the release branch to create') do |name|
147
+ parser.on('--release-branch=BRANCH_NAME', 'Override the release branch to create') do |name|
218
148
  options.release_branch = name
219
149
  end
220
150
  end
@@ -223,7 +153,7 @@ module CreateGithubRelease
223
153
  # @return [void]
224
154
  # @api private
225
155
  def define_remote_option
226
- option_parser.on('--remote=REMOTE_NAME', "Use this remote name instead of 'origin'") do |name|
156
+ parser.on('--remote=REMOTE_NAME', "Use this remote name instead of 'origin'") do |name|
227
157
  options.remote = name
228
158
  end
229
159
  end
@@ -232,8 +162,10 @@ module CreateGithubRelease
232
162
  # @return [void]
233
163
  # @api private
234
164
  def define_last_release_version_option
235
- option_parser.on('--last-release-version=VERSION',
236
- 'Use this version instead `gem-version-boss current`') do |version|
165
+ parser.on(
166
+ '--last-release-version=VERSION',
167
+ 'Use this version instead `gem-version-boss current`'
168
+ ) do |version|
237
169
  options.last_release_version = version
238
170
  end
239
171
  end
@@ -242,7 +174,7 @@ module CreateGithubRelease
242
174
  # @return [void]
243
175
  # @api private
244
176
  def define_next_release_version_option
245
- option_parser.on(
177
+ parser.on(
246
178
  '--next-release-version=VERSION',
247
179
  'Use this version instead `gem-version-boss next-RELEASE_TYPE`'
248
180
  ) do |version|
@@ -254,7 +186,7 @@ module CreateGithubRelease
254
186
  # @return [void]
255
187
  # @api private
256
188
  def define_changelog_path_option
257
- option_parser.on('--changelog-path=PATH', 'Use this file instead of CHANGELOG.md') do |name|
189
+ parser.on('--changelog-path=PATH', 'Use this file instead of CHANGELOG.md') do |name|
258
190
  options.changelog_path = name
259
191
  end
260
192
  end
@@ -263,12 +195,19 @@ module CreateGithubRelease
263
195
  # @return [void]
264
196
  # @api private
265
197
  def define_version_option
266
- option_parser.on_tail('-v', '--version', 'Output the version of this script') do
198
+ parser.on_tail('-v', '--version', 'Output the version of this script') do
267
199
  puts CreateGithubRelease::VERSION
268
200
  exit 0
269
201
  end
270
202
  end
203
+
204
+ # Validate the options once they have been parsed
205
+ # @return [Void]
206
+ # @raise [SystemExit] if the options are invalid
207
+ # @api private
208
+ def validate_options
209
+ options.errors.each { |error_message| add_error_message(error_message) }
210
+ end
271
211
  end
272
- # rubocop:enable Metrics/ClassLength
273
212
  end
274
213
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module CreateGithubRelease
4
4
  # The version of this gem
5
- VERSION = '1.5.0'
5
+ VERSION = '2.0.0'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: create_github_release
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 2.0.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-09-10 00:00:00.000000000 Z
11
+ date: 2024-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: version_boss
@@ -39,47 +39,61 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.9'
41
41
  - !ruby/object:Gem::Dependency
42
- name: debug
42
+ name: command_line_boss
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.9'
47
+ version: '0.1'
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.9'
54
+ version: '0.1'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rake
56
+ name: logger
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '13.2'
61
+ version: '1.6'
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.2'
68
+ version: '1.6'
69
69
  - !ruby/object:Gem::Dependency
70
- name: redcarpet
70
+ name: main_branch_shared_rubocop_config
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '3.6'
75
+ version: '0.1'
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.6'
82
+ version: '0.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '13.2'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '13.2'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rspec
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +114,14 @@ dependencies:
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '1.63'
117
+ version: '1.66'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '1.63'
124
+ version: '1.66'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: simplecov
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +150,20 @@ dependencies:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0.8'
153
+ - !ruby/object:Gem::Dependency
154
+ name: simplecov-rspec
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '0.2'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '0.2'
139
167
  - !ruby/object:Gem::Dependency
140
168
  name: timecop
141
169
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +178,20 @@ dependencies:
150
178
  - - "~>"
151
179
  - !ruby/object:Gem::Version
152
180
  version: '0.9'
181
+ - !ruby/object:Gem::Dependency
182
+ name: redcarpet
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '3.6'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '3.6'
153
195
  - !ruby/object:Gem::Dependency
154
196
  name: yard
155
197
  requirement: !ruby/object:Gem::Requirement
@@ -157,6 +199,9 @@ dependencies:
157
199
  - - "~>"
158
200
  - !ruby/object:Gem::Version
159
201
  version: '0.9'
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: 0.9.28
160
205
  type: :development
161
206
  prerelease: false
162
207
  version_requirements: !ruby/object:Gem::Requirement
@@ -164,6 +209,9 @@ dependencies:
164
209
  - - "~>"
165
210
  - !ruby/object:Gem::Version
166
211
  version: '0.9'
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: 0.9.28
167
215
  - !ruby/object:Gem::Dependency
168
216
  name: yardstick
169
217
  requirement: !ruby/object:Gem::Requirement
@@ -192,7 +240,6 @@ files:
192
240
  - ".markdownlint.yml"
193
241
  - ".rspec"
194
242
  - ".rubocop.yml"
195
- - ".solargraph.yml"
196
243
  - ".vscode/launch.json"
197
244
  - ".yardopts"
198
245
  - CHANGELOG.md
@@ -251,8 +298,8 @@ metadata:
251
298
  allowed_push_host: https://rubygems.org
252
299
  homepage_uri: https://github.com/main-branch/create_github_release
253
300
  source_code_uri: https://github.com/main-branch/create_github_release
254
- changelog_uri: https://rubydoc.info/gems/create_github_release/1.5.0/file/CHANGELOG.md
255
- documentation_uri: https://rubydoc.info/gems/create_github_release/1.5.0
301
+ documentation_uri: https://rubydoc.info/gems/create_github_release/2.0.0
302
+ changelog_uri: https://rubydoc.info/gems/create_github_release/2.0.0/file/CHANGELOG.md
256
303
  rubygems_mfa_required: 'true'
257
304
  post_install_message:
258
305
  rdoc_options: []
@@ -262,13 +309,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
262
309
  requirements:
263
310
  - - ">="
264
311
  - !ruby/object:Gem::Version
265
- version: 3.0.0
312
+ version: 3.1.0
266
313
  required_rubygems_version: !ruby/object:Gem::Requirement
267
314
  requirements:
268
315
  - - ">="
269
316
  - !ruby/object:Gem::Version
270
317
  version: '0'
271
- requirements: []
318
+ requirements:
319
+ - 'Platform: Mac, Linux, or Windows'
320
+ - 'Ruby: MRI 3.1 or later, TruffleRuby 24 or later, or JRuby 9.4 or later'
272
321
  rubygems_version: 3.5.16
273
322
  signing_key:
274
323
  specification_version: 4
data/.solargraph.yml DELETED
@@ -1,23 +0,0 @@
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