version_boss 0.1.0 → 0.2.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: afacba1102b1a2c3121168da6d563fe07fa20bf819d816dc6c5a6ad5ed6a9e76
4
- data.tar.gz: 2dec6257f24013a38fcc27d13cc9e9b41d5149c5f4dbf0a5df095a38dfb3682b
3
+ metadata.gz: bda4a02daf6005410c25d26127ba7478ae553a527fdcf60c9164397cecb7a1e5
4
+ data.tar.gz: 422e51b862c44544ce94610786bfe34762c7cac055f8d8dd6df095917fb3f22d
5
5
  SHA512:
6
- metadata.gz: ecca5ca9fa2f05359ce747ec54fbba9d1b6e89fa9803593628e9fbf26fa2d61ee7a06bfaefc56dd3995c2df6966eb2417111a00e555910f55e78d4c420c4eefc
7
- data.tar.gz: 0ad28ede7cb492243f39413d4b9e373315604d37ecbaeb221f5f3df308670c24355450dcb74f26c500bad354b32919cbb0dfd87dec1cf717eb91ef285fa55fb9
6
+ metadata.gz: 474e0d1c7202b7f733f62648804c680671cba3f243e6dc65376ab0465aa2dae234b0404737268a3ff52cb4553e038c595c07fca451c5c5d04059ffd54f0a51b3
7
+ data.tar.gz: 532205c1d5f33e1cfe7b7ed0e76a1eeb24c53745444a62fd3649ff86510da448a528021ae6b667b16c08711bd7013e894d26c094bbd3da8ac16037bcdc758212
data/.commitlintrc.yml ADDED
@@ -0,0 +1,16 @@
1
+ ---
2
+ extends: '@commitlint/config-conventional'
3
+
4
+ rules:
5
+ # See: https://commitlint.js.org/reference/rules.html
6
+ #
7
+ # Rules are made up by a name and a configuration array. The configuration array contains:
8
+ #
9
+ # * Severity [0..2]: 0 disable rule, 1 warning if violated, or 2 error if violated
10
+ # * Applicability [always|never]: never inverts the rule
11
+ # * Value: value to use for this rule
12
+ #
13
+ # Run `npx commitlint --print-config` to see the current setting for all rules.
14
+ #
15
+ body-leading-blank: [2, 'always']
16
+ footer-leading-blank: [2, 'always']
data/.husky/commit-msg ADDED
@@ -0,0 +1 @@
1
+ npx --no-install commitlint --edit "$1"
data/.markdownlint.yml ADDED
@@ -0,0 +1,25 @@
1
+ default: true
2
+
3
+ # Unordered list indentation
4
+ MD007: { indent: 2 }
5
+
6
+ # Line length
7
+ MD013: { line_length: 90, tables: false, code_blocks: false }
8
+
9
+ # Heading duplication is allowed for non-sibling headings
10
+ MD024: { siblings_only: true }
11
+
12
+ # Do not allow the specified trailing punctuation in a header
13
+ MD026: { punctuation: '.,;:' }
14
+
15
+ # Order list items must have a prefix that increases in numerical order
16
+ MD029: { style: 'ordered' }
17
+
18
+ # Lists do not need to be surrounded by blank lines
19
+ MD032: false
20
+
21
+ # Allow raw HTML in Markdown
22
+ MD033: false
23
+
24
+ # Allow emphasis to be used instead of a heading
25
+ MD036: false
data/.rubocop.yml CHANGED
@@ -1,36 +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
- Gemspec/DevelopmentDependencies:
13
- EnforcedStyle: gemspec
14
-
15
- # The default max line length is 80 characters
16
- Layout/LineLength:
17
- Max: 120
18
-
19
- # The DSL for RSpec and the gemspec file make it very hard to limit block length:
20
- Metrics/BlockLength:
21
- Exclude:
22
- - "spec/spec_helper.rb"
23
- - "spec/**/*_spec.rb"
24
- - "*.gemspec"
1
+ inherit_gem:
2
+ main_branch_shared_rubocop_config: config/rubocop.yml
25
3
 
26
- Metrics/ModuleLength:
27
- CountAsOne: ['hash']
28
-
29
- # When writing minitest tests, it is very hard to limit test class length:
30
- Metrics/ClassLength:
31
- CountAsOne: ['hash']
32
- Exclude:
33
- - "test/**/*_test.rb"
34
-
35
- Style/AsciiComments:
36
- Enabled: false
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,4 @@
3
3
  --markup-provider=redcarpet
4
4
  --markup markdown
5
5
  - CHANGELOG.md
6
- - LICENSE.txt
6
+ - LICENSE.txt
data/CHANGELOG.md CHANGED
@@ -1,3 +1,28 @@
1
+ ## v0.2.0 (2024-10-10)
2
+
3
+ [Full Changelog](https://github.com/main-branch/version_boss/compare/v0.1.0..v0.2.0)
4
+
5
+ Changes since v0.1.0:
6
+
7
+ * 777871d chore: update create_github_release dependency
8
+ * 8225040 build: remove semver pr label check
9
+ * 3853ff7 build: enforce conventional commit message formatting
10
+ * 3c08516 Clarify gem description and installation instructions
11
+ * 012f717 Add TargetRubyVersion in .rubocop.yml
12
+ * 4065647 Use shared Rubocop config
13
+ * 1dc115f Update copyright notice in this project
14
+ * 4a3f092 Update links in gemspec
15
+ * a4475f2 Add Slack badge for this project in README
16
+ * 28234d4 Update “Build Status” link the README
17
+ * e5b59d7 Standardize YARD and Markdown Lint configurations
18
+ * aa5851a Set JRuby —debug option when running tests in GitHub Actions workflows
19
+ * 3869e9c Integrate SimpleCov::RSpec into the project
20
+ * 4fe44a8 Use latest version of create_github_release
21
+ * a6ae0af Update continuous integration and experimental ruby builds
22
+ * 44ea99f Enforce the use of semver tags on PRs
23
+ * baabc32 Auto correct new rubocop offenses
24
+ * 8f74384 Release v0.1.0
25
+
1
26
  ## v0.1.0 (2024-05-07)
2
27
 
3
28
  [Full Changelog](https://github.com/main-branch/version_boss/compare/26b5491..v0.1.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,16 +1,19 @@
1
- # Version Boss
1
+ # The `version_boss` gem
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/version_boss.svg)](https://badge.fury.io/rb/version_boss)
4
4
  [![Documentation](https://img.shields.io/badge/Documentation-Latest-green)](https://rubydoc.info/gems/version_boss/)
5
5
  [![Change Log](https://img.shields.io/badge/CHANGELOG-Latest-green)](https://rubydoc.info/gems/version_boss/file/CHANGELOG.md)
6
- [![Build Status](https://github.com/main-branch/version_boss/workflows/CI%20Build/badge.svg?branch=main)](https://github.com/main-branch/version_boss/actions?query=workflow%3ACI%20Build)
6
+ [![Build Status](https://github.com/main-branch/version_boss/actions/workflows/continuous-integration.yml/badge.svg)](https://github.com/main-branch/version_boss/actions/workflows/continuous-integration.yml)
7
7
  [![Maintainability](https://api.codeclimate.com/v1/badges/44a42ed085fe162e5dff/maintainability)](https://codeclimate.com/github/main-branch/version_boss/maintainability)
8
8
  [![Test Coverage](https://api.codeclimate.com/v1/badges/44a42ed085fe162e5dff/test_coverage)](https://codeclimate.com/github/main-branch/version_boss/test_coverage)
9
+ [![Conventional
10
+ Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org)
11
+ [![Slack](https://img.shields.io/badge/slack-main--branch/version__boss-yellow.svg?logo=slack)](https://main-branch.slack.com/archives/C07MCMDBJLX)
9
12
 
10
- Parse, compare, and increment Gem and Semver versions.
13
+ Parse, compare, and increment Gem and [SemVer](https://semver.org) versions.
11
14
 
12
- This gem installs the `gem-version-boss` CLI tool to display and increment a gem's version
13
- based on SemVer rules.
15
+ This gem installs the `gem-version-boss` command-line tool to display and increment a
16
+ gem's version based on [Semantic Versioning](https://semver.org) rules.
14
17
 
15
18
  `gem-version-boss` can replace the `bump` command from the [bump
16
19
  gem](https://rubygems.org/gems/bump/) for incrementing gem version strings.
@@ -18,10 +21,8 @@ gem](https://rubygems.org/gems/bump/) for incrementing gem version strings.
18
21
  How `gem-version-boss` differs from `bump`:
19
22
 
20
23
  * `gem-version-boss` can manage pre-release versions
21
- * `bump` can commit and tag the version file changes it makes. There is no plan to
22
- add this functionality to `gem-version-boss`.
23
- * `bump` can update the version in extra files you to specify extra files to
24
- increment the version in
24
+ * `gem-version-boss` can not commit or tag the version file changes it makes
25
+ * `gem-version-boss` can not update multiple files at a time
25
26
 
26
27
  Example CLI commands:
27
28
 
@@ -37,7 +38,7 @@ gem-version-boss current
37
38
  # Display the gem version file
38
39
  gem-version-boss file
39
40
 
40
- # Validate that a version conforms to SemVer 2.0.0
41
+ # Validate that a version is valid
41
42
  gem-version-boss validate VERSION
42
43
 
43
44
  # Get more detailed help for each command listed above
@@ -53,20 +54,33 @@ gem-version-boss help [COMMAND]
53
54
  * [VersionBoss::Semver classes](#versionbosssemver-classes)
54
55
  * [Development](#development)
55
56
  * [Contributing](#contributing)
57
+ * [Commit message guidelines](#commit-message-guidelines)
58
+ * [Pull request guidelines](#pull-request-guidelines)
56
59
  * [License](#license)
57
60
 
58
61
  ## Installation
59
62
 
60
- Install the gem and add to the application's Gemfile by executing:
63
+ To install the gem, add to the following line to your application's gemspec OR
64
+ Gemfile:
61
65
 
62
- ```shell
63
- bundle add version_boss
66
+ gemspec:
67
+
68
+ ```ruby
69
+ spec.add_development_dependency "version_boss", '~> 0.1'
70
+ ```
71
+
72
+ Gemfile:
73
+
74
+ ```ruby
75
+ gem "version_boss", "~> 0.1", groups: [:development, :test]
64
76
  ```
65
77
 
78
+ and then run `bundle install`.
79
+
66
80
  If bundler is not being used to manage dependencies, install the gem by executing:
67
81
 
68
82
  ```shell
69
- gem install version_boss --group=development
83
+ gem install version_boss
70
84
  ```
71
85
 
72
86
  ## Command Line
@@ -121,34 +135,38 @@ Description:
121
135
 
122
136
  ### Examples
123
137
 
138
+ Assuming the gem version starts at 1.2.3:
139
+
124
140
  ```shell
125
- gem-version-boss current # 0.1.0
141
+ $ gem-version-boss current
142
+ 1.2.3
126
143
 
127
- gem-version-boss validate 1.0.0 # exitcode=0
128
- gem-version-boss validate bad_version # exitcode=1
144
+ $ gem-version-boss next-patch
145
+ 1.2.4
129
146
 
130
- gem-version-boss next-patch # 0.1.0 -> 0.1.1
131
- gem-version-boss next-minor # 0.1.1 -> 0.2.0
132
- gem-version-boss next-major # 0.2.0 -> 1.0.0
147
+ $ gem-version-boss next-minor
148
+ 1.3.0
133
149
 
134
- # Pre-release with default pre-release type
135
- gem-version-boss next-major --pre # 0.1.1 -> 1.0.0.pre1
150
+ $ gem-version-boss next-major
151
+ 2.0.0
136
152
 
137
- # Pre-release with non-default pre-release type
138
- gem-version-boss next-major --pre --pre-type=alpha # 0.1.1 -> 2.0.0-alpha1
153
+ # Create a pre-release version for the next major version
154
+ $ gem-version-boss next-major --pre --pre-type=alpha
155
+ 3.0.0.alpha1
139
156
 
140
- # Increment pre-release
141
- gem-version-boss next-pre # 1.0.0-alpha1 -> 1.0.0-alpha2
157
+ # Increment the pre-release version
158
+ $ gem-version-boss next-pre
159
+ 3.0.0.alpha2
142
160
 
143
- # Change the pre-release type
144
- gem-version-boss pre --pre-type=beta # 1.0.0-alpha2 -> 1.0.0-beta1
161
+ # Change the pre-release type to "beta"
162
+ $ gem-version-boss next-pre --pre-type=beta
163
+ 3.0.0.beta1
145
164
 
146
- # Create release from pre-release
147
- gem-version-boss release # 1.0.0-beta1 -> 1.0.0
165
+ # Create a release version from the pre-release version
166
+ $ gem-version-boss next-release
167
+ 3.0.0
148
168
  ```
149
169
 
150
- This gem also provides the following classes:
151
-
152
170
  ## Library Usage
153
171
 
154
172
  [Detailed API documenation](https://rubydoc.info/gems/version_boss/) is hosted on
@@ -159,7 +177,9 @@ The main classes are:
159
177
  ### VersionBoss::Gem classes
160
178
 
161
179
  * **VersionBoss::Gem::Version** knows how to parse, validate, and compare [Ruby Gem
162
- version strings](https://guides.rubygems.org/patterns/#semantic-versioning).
180
+ version strings](https://guides.rubygems.org/patterns/#semantic-versioning) which
181
+ may include [prerelease
182
+ versions](https://guides.rubygems.org/patterns/#prerelease-gems).
163
183
 
164
184
  * **VersionBoss::Gem::IncrementableVersion** knows how to increment Ruby Gem version
165
185
  strings according to SemVer rules.
@@ -193,6 +213,31 @@ commits and the created tag, and push the `.gem` file to
193
213
  Bug reports and pull requests are welcome on GitHub at
194
214
  https://github.com/main-branch/version_boss.
195
215
 
216
+ ### Commit message guidelines
217
+
218
+ All commit messages must follow the [Conventional Commits
219
+ standard](https://www.conventionalcommits.org/en/v1.0.0/). This helps us maintain a
220
+ clear and structured commit history, automate versioning, and generate changelogs
221
+ effectively.
222
+
223
+ To ensure compliance, this project includes:
224
+
225
+ * A git commit-msg hook that validates your commit messages before they are accepted.
226
+
227
+ To activate the hook, you must have node installed and run `npm install`.
228
+
229
+ * A GitHub Actions workflow that will enforce the Conventional Commit standard as
230
+ part of the continuous integration pipeline.
231
+
232
+ Any commit message that does not conform to the Conventional Commits standard will
233
+ cause the workflow to fail and not allow the PR to be merged.
234
+
235
+ ### Pull request guidelines
236
+
237
+ All pull requests must be merged using rebase merges. This ensures that commit
238
+ messages from the feature branch are preserved in the release branch, keeping the
239
+ history clean and meaningful.
240
+
196
241
  ## License
197
242
 
198
243
  The gem is available as open source under the terms of the [MIT
data/Rakefile CHANGED
@@ -49,14 +49,9 @@ CLEAN << 'rspec-report.xml'
49
49
 
50
50
  require 'rubocop/rake_task'
51
51
 
52
- RuboCop::RakeTask.new do |t|
53
- t.options = %w[
54
- --format progress
55
- --format json --out rubocop-report.json
56
- ]
57
- end
52
+ RuboCop::RakeTask.new
58
53
 
59
- CLEAN << 'rubocop-report.json'
54
+ # YARD
60
55
 
61
56
  unless RUBY_PLATFORM == 'java'
62
57
  # yard:build
@@ -31,14 +31,7 @@ module VersionBoss
31
31
  # @return [Boolean] true if the version string is a valid semver and meets the conditions above
32
32
  #
33
33
  def valid?
34
- super && (
35
- pre_release.empty? ||
36
- (
37
- pre_release_identifiers.size == 2 &&
38
- pre_type.is_a?(String) &&
39
- pre_number.is_a?(Integer)
40
- )
41
- )
34
+ super && (pre_release.empty? || (pre_release_identifiers.size == 2 && pre_number.is_a?(Integer)))
42
35
  end
43
36
 
44
37
  # The default pre-release identifier
@@ -194,9 +187,11 @@ module VersionBoss
194
187
  def assert_pre_type_is_valid(pre_type)
195
188
  return if self.pre_type <= pre_type
196
189
 
190
+ # :nocov: JRuby coverage does not report this line correctly
197
191
  message = 'Cannot increment the pre-release identifier ' \
198
192
  "from '#{self.pre_type}' to '#{pre_type}' " \
199
193
  "because '#{self.pre_type}' is lexically less than '#{pre_type}'"
194
+ # :nocov:
200
195
 
201
196
  raise VersionBoss::Error, message
202
197
  end
@@ -26,8 +26,9 @@ module VersionBoss
26
26
  # @api private
27
27
  #
28
28
  def initialize(path, content_before, version, content_after)
29
- raise VersionBoss::Error, 'version must be an IncrementableVersion' unless
30
- version.is_a?(VersionBoss::Gem::IncrementableVersion)
29
+ unless version.is_a?(VersionBoss::Gem::IncrementableVersion)
30
+ raise VersionBoss::Error, 'version must be an IncrementableVersion'
31
+ end
31
32
 
32
33
  @path = path
33
34
  @content_before = content_before
@@ -92,8 +93,9 @@ module VersionBoss
92
93
  # @api public
93
94
  #
94
95
  def version=(new_version)
95
- raise VersionBoss::Error, 'new_version must be an IncrementableVersion' unless
96
- new_version.is_a?(VersionBoss::Gem::IncrementableVersion)
96
+ unless new_version.is_a?(VersionBoss::Gem::IncrementableVersion)
97
+ raise VersionBoss::Error, 'new_version must be an IncrementableVersion'
98
+ end
97
99
 
98
100
  @version = version
99
101
  File.write(path, content_before + new_version.to_s + content_after)
@@ -18,7 +18,9 @@ module VersionBoss
18
18
  # @return [VersionBoss::Gem::VersionFile, nil] the version file or nil if no version file was found
19
19
  #
20
20
  def self.find
21
+ # :nocov: JRuby does not mark the following line as covered
21
22
  Dir[glob].filter_map do |path|
23
+ # :nocov:
22
24
  if (match = File.read(path).match(content_regexp))
23
25
  version = VersionBoss::Gem::IncrementableVersion.new(match[:version])
24
26
  VersionBoss::Gem::VersionFile.new(path, match[:content_before], version, match[:content_after])
@@ -11,6 +11,8 @@ module VersionBoss
11
11
  # @api public
12
12
  #
13
13
  class Gemspec < Base
14
+ # :nocov: JRuby does not mark the line with VersionBoss::Gem::REGEXP.source as covered
15
+
14
16
  # The regexp to find the version and surrounding content within the gemspec
15
17
  VERSION_REGEXP = /
16
18
  \A
@@ -18,11 +20,13 @@ module VersionBoss
18
20
  .*
19
21
  \.version\s*=\s*(?<quote>['"])
20
22
  )
21
- (?<version>#{REGEXP.source})
23
+ (?<version>#{VersionBoss::Gem::REGEXP.source})
22
24
  (?<content_after>\k<quote>.*)
23
25
  \z
24
26
  /xm
25
27
 
28
+ # :nocov:
29
+
26
30
  private
27
31
 
28
32
  # The version file regexp
@@ -10,6 +10,8 @@ module VersionBoss
10
10
  # @api public
11
11
  #
12
12
  class Version < Base
13
+ # :nocov: JRuby does not mark the line with VersionBoss::Gem::REGEXP.source as covered
14
+
13
15
  # The regexp to find the version and surrounding content within the version file
14
16
  VERSION_REGEXP = /
15
17
  \A
@@ -19,6 +21,8 @@ module VersionBoss
19
21
  \z
20
22
  /x
21
23
 
24
+ # :nocov:
25
+
22
26
  private
23
27
 
24
28
  # The version file regexp
@@ -10,6 +10,8 @@ module VersionBoss
10
10
  # @api public
11
11
  #
12
12
  class VersionRb < Base
13
+ # :nocov: JRuby does not mark the line with VersionBoss::Gem::REGEXP.source as covered
14
+
13
15
  # The regexp to find the version and surrounding content within the version.rb file
14
16
  VERSION_REGEXP = /
15
17
  \A
@@ -22,6 +24,8 @@ module VersionBoss
22
24
  \z
23
25
  /xm
24
26
 
27
+ # :nocov:
28
+
25
29
  private
26
30
 
27
31
  # The version file regexp
@@ -27,18 +27,12 @@ module VersionBoss
27
27
  # IncrementableVersion.new('1.2.3-alpha').valid? # => raise VersionBoss::Error
28
28
  # IncrementableVersion.new('1.2.3-alpha.1.2').valid? # => raise VersionBoss::Error
29
29
  # IncrementableVersion.new('1.2.3-alpha.one').valid? # => raise VersionBoss::Error
30
+ # IncrementableVersion.new('').valid? # => raise VersionBoss::Error
30
31
  #
31
32
  # @return [Boolean] true if the version string is a valid semver and meets the conditions above
32
33
  #
33
34
  def valid?
34
- super && (
35
- pre_release.empty? ||
36
- (
37
- pre_release_identifiers.size == 2 &&
38
- pre_type.is_a?(String) &&
39
- pre_number.is_a?(Integer)
40
- )
41
- )
35
+ super && (pre_release.empty? || (pre_release_identifiers.size == 2 && pre_number.is_a?(Integer)))
42
36
  end
43
37
 
44
38
  # The default pre-release identifier
@@ -170,9 +164,11 @@ module VersionBoss
170
164
  def assert_pre_type_is_valid(pre_type)
171
165
  return if self.pre_type <= pre_type
172
166
 
167
+ # :nocov: JRuby coverage does not report this line correctly
173
168
  message = 'Cannot increment the pre-release identifier ' \
174
169
  "from '#{self.pre_type}' to '#{pre_type}' " \
175
170
  "because '#{self.pre_type}' is lexically less than '#{pre_type}'"
171
+ # :nocov:
176
172
 
177
173
  raise VersionBoss::Error, message
178
174
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module VersionBoss
4
4
  # The current version of this gem
5
- VERSION = '0.1.0'
5
+ VERSION = '0.2.0'
6
6
  end
data/package.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "devDependencies": {
3
+ "@commitlint/cli": "^19.5.0",
4
+ "@commitlint/config-conventional": "^19.5.0",
5
+ "husky": "^9.1.0"
6
+ },
7
+ "scripts": {
8
+ "postinstall": "husky",
9
+ "prepare": "husky"
10
+ }
11
+ }
data/version_boss.gemspec CHANGED
@@ -14,16 +14,17 @@ Gem::Specification.new do |spec|
14
14
  command or the 'VersionBoss::Gem::Version' class.
15
15
  DESC
16
16
 
17
- spec.homepage = 'http://github.com/main-branch/version_boss'
18
17
  spec.license = 'MIT'
19
- spec.required_ruby_version = '>= 3.0.0'
18
+ spec.required_ruby_version = '>= 3.1.0'
20
19
 
21
20
  spec.metadata['allowed_push_host'] = 'https://rubygems.org'
22
21
 
22
+ # Project links
23
+ spec.homepage = "https://github.com/main-branch/#{spec.name}"
23
24
  spec.metadata['homepage_uri'] = spec.homepage
24
25
  spec.metadata['source_code_uri'] = spec.homepage
25
- spec.metadata['changelog_uri'] = "https://rubydoc.info/gems/#{spec.name}/#{spec.version}/file/CHANGELOG.md"
26
26
  spec.metadata['documentation_uri'] = "https://rubydoc.info/gems/#{spec.name}/#{spec.version}"
27
+ spec.metadata['changelog_uri'] = "https://rubydoc.info/gems/#{spec.name}/#{spec.version}/file/CHANGELOG.md"
27
28
 
28
29
  # Specify which files should be added to the gem when it is released.
29
30
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -35,16 +36,22 @@ Gem::Specification.new do |spec|
35
36
  spec.bindir = 'exe'
36
37
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
37
38
  spec.require_paths = ['lib']
39
+ spec.requirements = [
40
+ 'Platform: Mac, Linux, or Windows',
41
+ 'Ruby: MRI 3.1 or later, TruffleRuby 24 or later, or JRuby 9.4 or later'
42
+ ]
38
43
 
39
- spec.add_runtime_dependency 'thor', '~> 1.3'
44
+ spec.add_dependency 'thor', '~> 1.3'
40
45
 
41
46
  spec.add_development_dependency 'bundler-audit', '~> 0.9'
42
- spec.add_development_dependency 'create_github_release', '~> 1.3'
47
+ spec.add_development_dependency 'create_github_release', '~> 2.1'
48
+ spec.add_development_dependency 'main_branch_shared_rubocop_config', '~> 0.1'
43
49
  spec.add_development_dependency 'rake', '~> 13.1'
44
50
  spec.add_development_dependency 'rspec', '~> 3.12'
45
51
  spec.add_development_dependency 'rubocop', '~> 1.59'
46
52
  spec.add_development_dependency 'simplecov', '~> 0.22'
47
53
  spec.add_development_dependency 'simplecov-lcov', '~> 0.8'
54
+ spec.add_development_dependency 'simplecov-rspec', '~> 0.2'
48
55
 
49
56
  unless RUBY_PLATFORM == 'java'
50
57
  spec.add_development_dependency 'redcarpet', '~> 3.6'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: version_boss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Couball
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-05-07 00:00:00.000000000 Z
11
+ date: 2024-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -44,14 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.3'
47
+ version: '2.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.3'
54
+ version: '2.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: main_branch_shared_rubocop_config
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.1'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.1'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rake
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +136,20 @@ dependencies:
122
136
  - - "~>"
123
137
  - !ruby/object:Gem::Version
124
138
  version: '0.8'
139
+ - !ruby/object:Gem::Dependency
140
+ name: simplecov-rspec
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '0.2'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '0.2'
125
153
  - !ruby/object:Gem::Dependency
126
154
  name: redcarpet
127
155
  requirement: !ruby/object:Gem::Requirement
@@ -180,6 +208,9 @@ executables:
180
208
  extensions: []
181
209
  extra_rdoc_files: []
182
210
  files:
211
+ - ".commitlintrc.yml"
212
+ - ".husky/commit-msg"
213
+ - ".markdownlint.yml"
183
214
  - ".rspec"
184
215
  - ".rubocop.yml"
185
216
  - ".yardopts"
@@ -209,16 +240,17 @@ files:
209
240
  - lib/version_boss/semver/regexp.rb
210
241
  - lib/version_boss/semver/version.rb
211
242
  - lib/version_boss/version.rb
243
+ - package.json
212
244
  - version_boss.gemspec
213
- homepage: http://github.com/main-branch/version_boss
245
+ homepage: https://github.com/main-branch/version_boss
214
246
  licenses:
215
247
  - MIT
216
248
  metadata:
217
249
  allowed_push_host: https://rubygems.org
218
- homepage_uri: http://github.com/main-branch/version_boss
219
- source_code_uri: http://github.com/main-branch/version_boss
220
- changelog_uri: https://rubydoc.info/gems/version_boss/0.1.0/file/CHANGELOG.md
221
- documentation_uri: https://rubydoc.info/gems/version_boss/0.1.0
250
+ homepage_uri: https://github.com/main-branch/version_boss
251
+ source_code_uri: https://github.com/main-branch/version_boss
252
+ documentation_uri: https://rubydoc.info/gems/version_boss/0.2.0
253
+ changelog_uri: https://rubydoc.info/gems/version_boss/0.2.0/file/CHANGELOG.md
222
254
  rubygems_mfa_required: 'true'
223
255
  post_install_message:
224
256
  rdoc_options: []
@@ -228,14 +260,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
228
260
  requirements:
229
261
  - - ">="
230
262
  - !ruby/object:Gem::Version
231
- version: 3.0.0
263
+ version: 3.1.0
232
264
  required_rubygems_version: !ruby/object:Gem::Requirement
233
265
  requirements:
234
266
  - - ">="
235
267
  - !ruby/object:Gem::Version
236
268
  version: '0'
237
- requirements: []
238
- rubygems_version: 3.5.9
269
+ requirements:
270
+ - 'Platform: Mac, Linux, or Windows'
271
+ - 'Ruby: MRI 3.1 or later, TruffleRuby 24 or later, or JRuby 9.4 or later'
272
+ rubygems_version: 3.5.16
239
273
  signing_key:
240
274
  specification_version: 4
241
275
  summary: A Gem to parse and compare SemVer versions AND increment versions for Ruby