version_gem 1.1.3 → 1.1.9

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: c7542245fe84d4314202cd4ea1347fdaefce4cdc256fc7216705c90561e0a07f
4
- data.tar.gz: 8864b667e84866e2d4365b7e2105dbb4e6be10bf64b08547afc357bb1e9a7f96
3
+ metadata.gz: cd4a5c38f28eb3f9c215684dfeb3d7b8eed4e26a76e5a5fbab98937aa17a147c
4
+ data.tar.gz: 494810d3d25c269eb3867fa9c600df69354c45438c35bae8087912e3165e086c
5
5
  SHA512:
6
- metadata.gz: 12ece5174289be925d3401789beee24d3ecee4438595fa453d51b57af5d44ffa9edf80cb313fd5c96f1c3f969d0af00a360ce723394d80a33e02c5a6e1064538
7
- data.tar.gz: ddf738a490b738f42a89d060fa76c0c186a462f0edda7cc970b20e1e62cb918e7e8db06c18b805f31f9933c8c734b9ddebc863481c3ced59e8e4e99092e9d678
6
+ metadata.gz: e85bc0c821117c19ed6c08427b4dee64792b49453bad2885d03e195236ba863c2048eba779fab77c15efefcbba8eccff20eaca9f1465adba96736b3081e4cef8
7
+ data.tar.gz: d1e488c79e04c025dd1cb6fe33d6908513b3e15275d8f4e682a7f61ce258ec7d8b6d47e9f948f9bb1c10ad86cf63f0855ec9aa2c3605112b77470da3c91d6bca
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,16 +1,112 @@
1
1
  # Changelog
2
+
3
+ [![SemVer 2.0.0][📌semver-img]][📌semver] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog]
4
+
2
5
  All notable changes to this project will be documented in this file.
3
6
 
4
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+ The format is based on [Keep a Changelog][📗keep-changelog],
8
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
9
+ and [yes][📌major-versions-not-sacred], platform and engine support are part of the [public API][📌semver-breaking].
10
+ Please file a bug if you notice a violation of semantic versioning.
11
+
12
+ [📌semver]: https://semver.org/spec/v2.0.0.html
13
+ [📌semver-img]: https://img.shields.io/badge/semver-2.0.0-FFDD67.svg?style=flat
14
+ [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
15
+ [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
16
+ [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
17
+ [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
6
18
 
7
19
  ## [Unreleased]
8
20
  ### Added
9
21
  ### Changed
22
+ ### Deprecated
23
+ ### Removed
24
+ ### Fixed
25
+ ### Security
26
+
27
+ ## [1.1.9] - 2025-09-02
28
+ - TAG: [v1.1.9][1.1.9t]
29
+ - COVERAGE: 100.00% -- 118/118 lines in 8 files
30
+ - BRANCH COVERAGE: 100.00% -- 4/4 branches in 8 files
31
+ - 84.62% documented
32
+ ### Added
33
+ - re-templated gem using kettle-dev v1.1.2
34
+ - new binstubs for changelog, readme, commit message, & release management
35
+ - new CI workflows
36
+ - enhanced project documentation
37
+ - More RBS types
38
+ - docs site: https://version-gem.galtzo.com
10
39
  ### Fixed
40
+ - RBS types are more accurate
41
+
42
+ ## [1.1.8] 2025-05-06
43
+ - TAG: [1.1.8][1.1.8t]
44
+ - COVERAGE: 100.00% -- 118/118 lines in 8 files
45
+ - BRANCH COVERAGE: 100.00% -- 4/4 branches in 8 files
46
+ - 84.62% documented
47
+ ### Added
48
+ - CITATION.cff (@pboling)
49
+ - Cryptographically signed with new 20-year cert (@pboling)
50
+ - expires 2045-04-29
51
+ - Improved documentation (@pboling)
52
+ - Addressed entire REEK list (@pboling)
53
+ - GitLab CI, as an addition to existing GHA (@pboling)
54
+
55
+ ## [1.1.7] 2025-04-15
56
+ - TAG: [1.1.7][1.1.7t]
57
+ - Line Coverage: 100.0% (117 / 117)
58
+ - Branch Coverage: 100.0% (4 / 4)
59
+ - 76.92% documented
60
+ ### Added
61
+ - Support for Epoch Semantic Versioning (@pboling)
62
+ - `extend VersionGem::Epoch` in your library's `MyLib::Version` module
63
+ - Support for JRuby 10 (@pboling)
64
+ - More documentation (@pboling)
11
65
  ### Removed
66
+ - Ruby 2.2 removed from CI, though technically still supported
67
+ - can't run directly in GHA anymore
12
68
 
13
- ## [1.1.3] 2023-06-05 ([tag][1.1.3t])
69
+ ## [1.1.6] 2025-02-24
70
+ - TAG: [1.1.6][1.1.6t]
71
+ - Line Coverage: 100.0% (77 / 77)
72
+ - Branch Coverage: 100.0% (2 / 2)
73
+ - 77.78% documented
74
+ ### Added
75
+ - Support for JRuby 9.1, 9.2, 9.3, 9.4, and head (@pboling)
76
+ - Support for Truffle Ruby 22.3, 23.0, 23.1, 24.1, and head (@pboling)
77
+ - Evergreen current latest engine release workflow (@pboling)
78
+ - Runs ruby, truffleruby, and jruby, always latest release
79
+ - Improved developer experience for contributors (@pboling)
80
+ - More documentation (@pboling)
81
+ - Switch to stone_checksums for checksum generation (@pboling)
82
+ ### Changed
83
+ - Code of Conduct updated - Contributor Covenant v2.0 => v2.1 (@pboling)
84
+
85
+ ## [1.1.5] 2025-02-22
86
+ - TAG: [1.1.5][1.1.5t]
87
+ - Line Coverage: 100.0% (77 / 77)
88
+ - Branch Coverage: 100.0% (2 / 2)
89
+ - 77.78% documented
90
+ ### Added
91
+ - Document approach to get code coverage on your gem's version.rb file (@pboling)
92
+ - More documentation, and yard task for documentation (@pboling)
93
+ - Documentation of Ruby version and SemVer support (@pboling)
94
+ ### Fixed
95
+ - [#3](https://gitlab.com/ruby-oauth/version_gem/-/issues/3) - Allow packaging without signing (@pboling)
96
+ - to support secure linux distros which have alternate means of signing packages within their package managers
97
+ - Code coverage tracking (@pboling)
98
+ - Documentation of usage in gemspec via `Kernel.load` (@pboling)
99
+ - Improved gemspec config (@pboling)
100
+
101
+ ## [1.1.4] 2024-03-21
102
+ - TAG: [1.1.4][1.1.4t]
103
+ ### Added
104
+ - Ruby 3.3 to CI (@pboling)
105
+ ### Fixed
106
+ - Remove the executable bit from non-executable files (@Fryguy)
107
+
108
+ ## [1.1.3] 2023-06-05
109
+ - TAG: [1.1.3][1.1.3t]
14
110
  ### Added
15
111
  - More test coverage (now 100% 🎉) (@pboling)
16
112
  - Improved documentation (now 77% 🎉) (@pboling)
@@ -26,15 +122,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
26
122
  - (dev) Rake task for rubocop_gradual (@pboling)
27
123
  ### Fixed
28
124
  - (dev) `yard` documentation task (@pboling)
125
+ ### Removed
126
+ - Formally drop Ruby 2.2 support
127
+ - Ruby 2.2 was already de facto minimum version supported, which is why this wasn't a 2.0 release.
29
128
 
30
- ## [1.1.2] - 2023-03-17 ([tag][1.1.2t])
129
+ ## [1.1.2] - 2023-03-17
130
+ - TAG: [1.1.2][1.1.2t]
31
131
  ### Added
32
132
  - `VersionGem::Ruby` to help library CI integration against many different versions of Ruby (@pboling)
33
133
  - Experimental, optional, require (not loaded by default, which is why this can be in a patch)
34
134
  - Spec coverage is now 100%, lines and branches, including the fabled `version.rb` (@pboling)
35
135
  - Full RBS Signatures (@pboling)
36
136
 
37
- ## [1.1.1] - 2022-09-19 ([tag][1.1.1t])
137
+ ## [1.1.1] - 2022-09-19
138
+ - TAG: [1.1.1][1.1.1t]
38
139
  ### Added
39
140
  - Alternatives section to README.md (@pboling)
40
141
  - Signing cert for gem releases (@pboling)
@@ -45,39 +146,55 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
45
146
  - Version methods are now memoized (||=) on initial call for performance (@pboling)
46
147
  - Gem releases are now cryptographically signed (@pboling)
47
148
 
48
- ## [1.1.0] - 2022-06-24 ([tag][1.1.0t])
49
- ### Fixed
50
- - to_a uses same type casting as major, minor, patch, and pre (@pboling)
149
+ ## [1.1.0] - 2022-06-24
150
+ - TAG: [1.1.0][1.1.0t]
51
151
  ### Added
52
152
  - RSpec Matchers and Shared Example (@pboling)
153
+ ### Fixed
154
+ - `to_a` uses same type casting as major, minor, patch, and pre (@pboling)
53
155
 
54
- ## [1.0.2] - 2022-06-23 ([tag][1.0.2t])
156
+ ## [1.0.2] - 2022-06-23
157
+ - TAG: [1.0.2][1.0.2t]
55
158
  ### Added
56
159
  - Delay loading of library code until after code coverage tool is loaded (@pboling)
57
160
 
58
- ## [1.0.1] - 2022-06-23 ([tag][1.0.1t])
161
+ ## [1.0.1] - 2022-06-23
162
+ - TAG: [1.0.1][1.0.1t]
59
163
  ### Added
60
164
  - CI Build improvements (@pboling)
61
165
  - Code coverage reporting (@pboling)
62
166
  - Documentation improvements (@pboling)
63
167
  - Badges! (@pboling)
64
168
 
65
- ## [1.0.0] - 2022-06-21 ([tag][1.0.0t])
169
+ ## [1.0.0] - 2022-06-21
170
+ - TAG: [1.0.0][1.0.0t]
66
171
  ### Added
67
172
  - Initial release, with basic version parsing API (@pboling)
68
173
 
69
- [Unreleased]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.3...HEAD
70
- [1.1.3]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.2...v1.1.3
71
- [1.1.3t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.1.3
72
- [1.1.2]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.1...v1.1.2
73
- [1.1.2t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.1.2
74
- [1.1.1]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.1.0...v1.1.1
75
- [1.1.1t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.1.1
76
- [1.1.0]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.0.2...v1.1.0
77
- [1.1.0t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.1.0
78
- [1.0.2]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.0.1...v1.0.2
79
- [1.0.2t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.0.2
80
- [1.0.1]: https://gitlab.com/oauth-xx/version_gem/-/compare/v1.0.0...v1.0.1
81
- [1.0.1t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.0.1
82
- [1.0.0]: https://gitlab.com/oauth-xx/version_gem/-/compare/a3055964517c159bf214712940982034b75264be...v1.0.0
83
- [1.0.0t]: https://gitlab.com/oauth-xx/oauth2/-/tags/v1.0.0
174
+ [Unreleased]: https://github.com/ruby-oauth/version_gem/compare/v1.1.9...HEAD
175
+ [1.1.9]: https://github.com/ruby-oauth/version_gem/compare/v1.1.8...v1.1.9
176
+ [1.1.9t]: https://github.com/ruby-oauth/version_gem/releases/tag/v1.1.9
177
+ [1.1.8]: https://gitlab.com/ruby-oauth/version_gem/-/compare/v1.1.7...v1.1.8
178
+ [1.1.8t]: https://github.com/ruby-oauth/version_gem/releases/tag/v1.1.8
179
+ [1.1.7]: https://gitlab.com/ruby-oauth/version_gem/-/compare/v1.1.6...v1.1.7
180
+ [1.1.7t]: https://github.com/ruby-oauth/version_gem/releases/tag/v1.1.7
181
+ [1.1.6]: https://gitlab.com/ruby-oauth/version_gem/-/compare/v1.1.5...v1.1.6
182
+ [1.1.6t]: https://github.com/ruby-oauth/version_gem/releases/tag/v1.1.6
183
+ [1.1.5]: https://gitlab.com/ruby-oauth/version_gem/-/compare/v1.1.4...v1.1.5
184
+ [1.1.5t]: https://github.com/ruby-oauth/version_gem/releases/tag/v1.1.5
185
+ [1.1.4]: https://gitlab.com/ruby-oauth/version_gem/-/compare/v1.1.3...v1.1.4
186
+ [1.1.4t]: https://github.com/ruby-oauth/version_gem/releases/tag/v1.1.4
187
+ [1.1.3]: https://gitlab.com/ruby-oauth/version_gem/-/compare/v1.1.2...v1.1.3
188
+ [1.1.3t]: https://github.com/ruby-oauth/version_gem/releases/tag/v1.1.3
189
+ [1.1.2]: https://gitlab.com/ruby-oauth/version_gem/-/compare/v1.1.1...v1.1.2
190
+ [1.1.2t]: https://github.com/ruby-oauth/version_gem/releases/tag/v1.1.2
191
+ [1.1.1]: https://gitlab.com/ruby-oauth/version_gem/-/compare/v1.1.0...v1.1.1
192
+ [1.1.1t]: https://github.com/ruby-oauth/version_gem/releases/tag/v1.1.1
193
+ [1.1.0]: https://gitlab.com/ruby-oauth/version_gem/-/compare/v1.0.2...v1.1.0
194
+ [1.1.0t]: https://github.com/ruby-oauth/version_gem/releases/tag/v1.1.0
195
+ [1.0.2]: https://gitlab.com/ruby-oauth/version_gem/-/compare/v1.0.1...v1.0.2
196
+ [1.0.2t]: https://github.com/ruby-oauth/version_gem/releases/tag/v1.0.2
197
+ [1.0.1]: https://gitlab.com/ruby-oauth/version_gem/-/compare/v1.0.0...v1.0.1
198
+ [1.0.1t]: https://github.com/ruby-oauth/version_gem/releases/tag/v1.0.1
199
+ [1.0.0]: https://github.com/ruby-oauth/version_gem/compare/a3055964517c159bf214712940982034b75264be...v1.0.0
200
+ [1.0.0t]: https://github.com/ruby-oauth/version_gem/releases/tag/v1.0.0
data/CITATION.cff ADDED
@@ -0,0 +1,20 @@
1
+ cff-version: 1.2.0
2
+ title: version_gem
3
+ message: >-
4
+ If you use this work and you want to cite it,
5
+ then you can use the metadata from this file.
6
+ type: software
7
+ authors:
8
+ - given-names: Peter Hurn
9
+ family-names: Boling
10
+ email: peter@railsbling.com
11
+ affiliation: railsbling.com
12
+ orcid: 'https://orcid.org/0009-0008-8519-441X'
13
+ identifiers:
14
+ - type: url
15
+ value: 'https://github.com/ruby-oauth/version_gem'
16
+ description: version_gem
17
+ repository-code: 'https://github.com/ruby-oauth/version_gem'
18
+ abstract: >-
19
+ version_gem
20
+ license: See license file
data/CODE_OF_CONDUCT.md CHANGED
@@ -2,83 +2,133 @@
2
2
 
3
3
  ## Our Pledge
4
4
 
5
- We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, caste, color, religion, or sexual
10
+ identity and orientation.
6
11
 
7
- We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
8
14
 
9
15
  ## Our Standards
10
16
 
11
- Examples of behavior that contributes to a positive environment for our community include:
17
+ Examples of behavior that contributes to a positive environment for our
18
+ community include:
12
19
 
13
20
  * Demonstrating empathy and kindness toward other people
14
21
  * Being respectful of differing opinions, viewpoints, and experiences
15
22
  * Giving and gracefully accepting constructive feedback
16
- * Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
17
- * Focusing on what is best not just for us as individuals, but for the overall community
23
+ * Accepting responsibility and apologizing to those affected by our mistakes,
24
+ and learning from the experience
25
+ * Focusing on what is best not just for us as individuals, but for the overall
26
+ community
18
27
 
19
28
  Examples of unacceptable behavior include:
20
29
 
21
- * The use of sexualized language or imagery, and sexual attention or
22
- advances of any kind
30
+ * The use of sexualized language or imagery, and sexual attention or advances of
31
+ any kind
23
32
  * Trolling, insulting or derogatory comments, and personal or political attacks
24
33
  * Public or private harassment
25
- * Publishing others' private information, such as a physical or email
26
- address, without their explicit permission
34
+ * Publishing others' private information, such as a physical or email address,
35
+ without their explicit permission
27
36
  * Other conduct which could reasonably be considered inappropriate in a
28
37
  professional setting
29
38
 
30
39
  ## Enforcement Responsibilities
31
40
 
32
- Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
41
+ Community leaders are responsible for clarifying and enforcing our standards of
42
+ acceptable behavior and will take appropriate and fair corrective action in
43
+ response to any behavior that they deem inappropriate, threatening, offensive,
44
+ or harmful.
33
45
 
34
- Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
46
+ Community leaders have the right and responsibility to remove, edit, or reject
47
+ comments, commits, code, wiki edits, issues, and other contributions that are
48
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
49
+ decisions when appropriate.
35
50
 
36
51
  ## Scope
37
52
 
38
- This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
53
+ This Code of Conduct applies within all community spaces, and also applies when
54
+ an individual is officially representing the community in public spaces.
55
+ Examples of representing our community include using an official email address,
56
+ posting via an official social media account, or acting as an appointed
57
+ representative at an online or offline event.
39
58
 
40
59
  ## Enforcement
41
60
 
42
- Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at peter.boling@gmail.com. All complaints will be reviewed and investigated promptly and fairly.
61
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
62
+ reported to the community leaders responsible for enforcement at
63
+ [![Contact Maintainer][🚂maint-contact-img]][🚂maint-contact].
64
+ All complaints will be reviewed and investigated promptly and fairly.
43
65
 
44
- All community leaders are obligated to respect the privacy and security of the reporter of any incident.
66
+ All community leaders are obligated to respect the privacy and security of the
67
+ reporter of any incident.
45
68
 
46
69
  ## Enforcement Guidelines
47
70
 
48
- Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
71
+ Community leaders will follow these Community Impact Guidelines in determining
72
+ the consequences for any action they deem in violation of this Code of Conduct:
49
73
 
50
74
  ### 1. Correction
51
75
 
52
- **Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.
76
+ **Community Impact**: Use of inappropriate language or other behavior deemed
77
+ unprofessional or unwelcome in the community.
53
78
 
54
- **Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
79
+ **Consequence**: A private, written warning from community leaders, providing
80
+ clarity around the nature of the violation and an explanation of why the
81
+ behavior was inappropriate. A public apology may be requested.
55
82
 
56
83
  ### 2. Warning
57
84
 
58
- **Community Impact**: A violation through a single incident or series of actions.
85
+ **Community Impact**: A violation through a single incident or series of
86
+ actions.
59
87
 
60
- **Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.
88
+ **Consequence**: A warning with consequences for continued behavior. No
89
+ interaction with the people involved, including unsolicited interaction with
90
+ those enforcing the Code of Conduct, for a specified period of time. This
91
+ includes avoiding interactions in community spaces as well as external channels
92
+ like social media. Violating these terms may lead to a temporary or permanent
93
+ ban.
61
94
 
62
95
  ### 3. Temporary Ban
63
96
 
64
- **Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.
97
+ **Community Impact**: A serious violation of community standards, including
98
+ sustained inappropriate behavior.
65
99
 
66
- **Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
100
+ **Consequence**: A temporary ban from any sort of interaction or public
101
+ communication with the community for a specified period of time. No public or
102
+ private interaction with the people involved, including unsolicited interaction
103
+ with those enforcing the Code of Conduct, is allowed during this period.
104
+ Violating these terms may lead to a permanent ban.
67
105
 
68
106
  ### 4. Permanent Ban
69
107
 
70
- **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
108
+ **Community Impact**: Demonstrating a pattern of violation of community
109
+ standards, including sustained inappropriate behavior, harassment of an
110
+ individual, or aggression toward or disparagement of classes of individuals.
71
111
 
72
- **Consequence**: A permanent ban from any sort of public interaction within the community.
112
+ **Consequence**: A permanent ban from any sort of public interaction within the
113
+ community.
73
114
 
74
115
  ## Attribution
75
116
 
76
- This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0,
77
- available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
117
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118
+ version 2.1, available at
119
+ [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
78
120
 
79
- Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
80
-
81
- [homepage]: https://www.contributor-covenant.org
121
+ Community Impact Guidelines were inspired by
122
+ [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
82
123
 
83
124
  For answers to common questions about this code of conduct, see the FAQ at
84
- https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.
125
+ [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
126
+ [https://www.contributor-covenant.org/translations][translations].
127
+
128
+ [homepage]: https://www.contributor-covenant.org
129
+ [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
130
+ [Mozilla CoC]: https://github.com/mozilla/diversity
131
+ [FAQ]: https://www.contributor-covenant.org/faq
132
+ [translations]: https://www.contributor-covenant.org/translations
133
+ [🚂maint-contact]: http://www.railsbling.com/contact
134
+ [🚂maint-contact-img]: https://img.shields.io/badge/Contact-Maintainer-0093D0.svg?style=flat&logo=rubyonrails&logoColor=red
data/CONTRIBUTING.md CHANGED
@@ -1,40 +1,200 @@
1
- ## Contributing
1
+ # Contributing
2
2
 
3
- Bug reports and pull requests are welcome on GitLab at [https://gitlab.com/oauth-xx/version_gem][🚎src-main]
4
- . This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to
5
- the [code of conduct][conduct].
3
+ Bug reports and pull requests are welcome on [CodeBerg][📜src-cb], [GitLab][📜src-gl], or [GitHub][📜src-gh].
4
+ This project should be a safe, welcoming space for collaboration, so contributors agree to adhere to
5
+ the [code of conduct][🤝conduct].
6
6
 
7
- To submit a patch, please fork the project and create a patch with
8
- tests. Once you're happy with it send a pull request and post a message to the
9
- [google group][⛳mail-list] or on the [gitter chat][🏘chat].
7
+ To submit a patch, please fork the project, create a patch with tests, and send a pull request.
10
8
 
11
- ## Release
9
+ Remember to [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] if you make changes.
12
10
 
13
- To release a new version:
11
+ ## Help out!
14
12
 
15
- 1. Run `bin/setup && bin/rake` as a tests, coverage, & linting sanity check.
16
- 2. update the version number in `version.rb`
17
- 3. run `bundle exec rake build:checksum`
18
- 4. move the built gem to project root
19
- 5. run `bin/checksum` to create the missing SHA256 checksum
20
- 6. move the built gem back to `pkg/`
21
- 7. commit the changes
22
- 8. run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org][rubygems].
13
+ Take a look at the `reek` list which is the file called `REEK` and find something to improve.
23
14
 
24
- NOTE: You will need to have a public key in `certs/`, and list your cert in the
25
- `gemspec`, in order to sign the new release.
26
- See: [RubyGems Security Guide][rubygems-security-guide]
15
+ Follow these instructions:
16
+
17
+ 1. Fork the repository
18
+ 2. Create a feature branch (`git checkout -b my-new-feature`)
19
+ 3. Make some fixes.
20
+ 4. Commit changes (`git commit -am 'Added some feature'`)
21
+ 5. Push to the branch (`git push origin my-new-feature`)
22
+ 6. Make sure to add tests for it. This is important, so it doesn't break in a future release.
23
+ 7. Create new Pull Request.
24
+
25
+ ## Environment Variables for Local Development
26
+
27
+ Below are the primary environment variables recognized by stone_checksums (and its integrated tools). Unless otherwise noted, set boolean values to the string "true" to enable.
28
+
29
+ General/runtime
30
+ - DEBUG: Enable extra internal logging for this library (default: false)
31
+ - REQUIRE_BENCH: Enable `require_bench` to profile requires (default: false)
32
+ - CI: When set to true, adjusts default rake tasks toward CI behavior
33
+
34
+ Coverage (kettle-soup-cover / SimpleCov)
35
+ - K_SOUP_COV_DO: Enable coverage collection (default: true in .envrc)
36
+ - K_SOUP_COV_FORMATTERS: Comma-separated list of formatters (html, xml, rcov, lcov, json, tty)
37
+ - K_SOUP_COV_MIN_LINE: Minimum line coverage threshold (integer, e.g., 100)
38
+ - K_SOUP_COV_MIN_BRANCH: Minimum branch coverage threshold (integer, e.g., 100)
39
+ - K_SOUP_COV_MIN_HARD: Fail the run if thresholds are not met (true/false)
40
+ - K_SOUP_COV_MULTI_FORMATTERS: Enable multiple formatters at once (true/false)
41
+ - K_SOUP_COV_OPEN_BIN: Path to browser opener for HTML (empty disables auto-open)
42
+ - MAX_ROWS: Limit console output rows for simplecov-console (e.g., 1)
43
+ Tip: When running a single spec file locally, you may want `K_SOUP_COV_MIN_HARD=false` to avoid failing thresholds for a partial run.
44
+
45
+ GitHub API and CI helpers
46
+ - GITHUB_TOKEN or GH_TOKEN: Token used by `ci:act` and release workflow checks to query GitHub Actions status at higher rate limits
47
+
48
+ Releasing and signing
49
+ - SKIP_GEM_SIGNING: If set, skip gem signing during build/release
50
+ - GEM_CERT_USER: Username for selecting your public cert in `certs/<USER>.pem` (defaults to $USER)
51
+ - SOURCE_DATE_EPOCH: Reproducible build timestamp. `kettle-release` will set this automatically for the session.
52
+
53
+ Git hooks and commit message helpers (exe/kettle-commit-msg)
54
+ - GIT_HOOK_BRANCH_VALIDATE: Branch name validation mode (e.g., `jira`) or `false` to disable
55
+ - GIT_HOOK_FOOTER_APPEND: Append a footer to commit messages when goalie allows (true/false)
56
+ - GIT_HOOK_FOOTER_SENTINEL: Required when footer append is enabled — a unique first-line sentinel to prevent duplicates
57
+ - GIT_HOOK_FOOTER_APPEND_DEBUG: Extra debug output in the footer template (true/false)
58
+
59
+ For a quick starting point, this repository’s `.envrc` shows sane defaults, and `.env.local` can override them locally.
60
+
61
+ ## Appraisals
62
+
63
+ From time to time the [appraisal2][🚎appraisal2] gemfiles in `gemfiles/` will need to be updated.
64
+ They are created and updated with the commands:
65
+
66
+ ```console
67
+ bin/rake appraisal:update
68
+ ```
69
+
70
+ When adding an appraisal to CI, check the [runner tool cache][🏃‍♂️runner-tool-cache] to see which runner to use.
71
+
72
+ ## The Reek List
73
+
74
+ Take a look at the `reek` list which is the file called `REEK` and find something to improve.
75
+
76
+ To refresh the `reek` list:
77
+
78
+ ```console
79
+ bundle exec reek > REEK
80
+ ```
81
+
82
+ ## Run Tests
83
+
84
+ To run all tests
85
+
86
+ ```console
87
+ bundle exec rake test
88
+ ```
89
+
90
+ ### Spec organization (required)
91
+
92
+ - One spec file per class/module. For each class or module under `lib/`, keep all of its unit tests in a single spec file under `spec/` that mirrors the path and file name exactly: `lib/version_gem/release_cli.rb` -> `spec/version_gem/release_cli_spec.rb`.
93
+ - Never add a second spec file for the same class/module. Examples of disallowed names: `*_more_spec.rb`, `*_extra_spec.rb`, `*_status_spec.rb`, or any other suffix that still targets the same class. If you find yourself wanting a second file, merge those examples into the canonical spec file for that class/module.
94
+ - Exception: Integration specs that intentionally span multiple classes. Place these under `spec/integration/` (or a clearly named integration folder), and do not directly mirror a single class. Name them after the scenario, not a class.
95
+ - Migration note: If a duplicate spec file exists, move all examples into the canonical file and delete the duplicate. Do not leave stubs or empty files behind.
96
+
97
+ ## Lint It
98
+
99
+ Run all the default tasks, which includes running the gradually autocorrecting linter, `rubocop-gradual`.
100
+
101
+ ```console
102
+ bundle exec rake
103
+ ```
104
+
105
+ Or just run the linter.
106
+
107
+ ```console
108
+ bundle exec rake rubocop_gradual:autocorrect
109
+ ```
110
+
111
+ For more detailed information about using RuboCop in this project, please see the [RUBOCOP.md](RUBOCOP.md) guide. This project uses `rubocop_gradual` instead of vanilla RuboCop, which requires specific commands for checking violations.
112
+
113
+ ### Important: Do not add inline RuboCop disables
114
+
115
+ Never add `# rubocop:disable ...` / `# rubocop:enable ...` comments to code or specs (except when following the few existing `rubocop:disable` patterns for a rule already being disabled elsewhere in the code). Instead:
116
+
117
+ - Prefer configuration-based exclusions when a rule should not apply to certain paths or files (e.g., via `.rubocop.yml`).
118
+ - When a violation is temporary and you plan to fix it later, record it in `.rubocop_gradual.lock` using the gradual workflow:
119
+ - `bundle exec rake rubocop_gradual:autocorrect` (preferred)
120
+ - `bundle exec rake rubocop_gradual:force_update` (only when you cannot fix the violations immediately)
121
+
122
+ As a general rule, fix style issues rather than ignoring them. For example, our specs should follow RSpec conventions like using `described_class` for the class under test.
27
123
 
28
124
  ## Contributors
29
125
 
30
- See: [https://gitlab.com/oauth-xx/version_gem/-/graphs/main][🚎contributors]
126
+ Your picture could be here!
127
+
128
+ [![Contributors][🖐contributors-img]][🖐contributors]
129
+
130
+ Made with [contributors-img][🖐contrib-rocks].
131
+
132
+ Also see GitLab Contributors: [https://gitlab.com/ruby-oauth/version_gem/-/graphs/main][🚎contributors-gl]
133
+
134
+ ## For Maintainers
135
+
136
+ ### One-time, Per-maintainer, Setup
137
+
138
+ **IMPORTANT**: To sign a build,
139
+ a public key for signing gems will need to be picked up by the line in the
140
+ `gemspec` defining the `spec.cert_chain` (check the relevant ENV variables there).
141
+ All releases to RubyGems.org are signed releases.
142
+ See: [RubyGems Security Guide][🔒️rubygems-security-guide]
143
+
144
+ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in the environment.
145
+
146
+ ### To release a new version:
147
+
148
+ #### Automated process
149
+
150
+ 1. Update version.rb to contian the correct version-to-be-released.
151
+ 2. Run `bundle exec kettle-changelog`.
152
+ 3. Run `bundle exec kettle-release`.
153
+
154
+ #### Manual process
31
155
 
32
- [comment]: <> (Following links are used by README, CONTRIBUTING)
156
+ 1. Run `bin/setup && bin/rake` as a "test, coverage, & linting" sanity check
157
+ 2. Update the version number in `version.rb`, and ensure `CHANGELOG.md` reflects changes
158
+ 3. Run `bin/setup && bin/rake` again as a secondary check, and to update `Gemfile.lock`
159
+ 4. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
160
+ 5. Run `git push` to trigger the final CI pipeline before release, and merge PRs
161
+ - NOTE: Remember to [check the build][🧪build].
162
+ 6. Run `export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME`
163
+ 7. Run `git checkout $GIT_TRUNK_BRANCH_NAME`
164
+ 8. Run `git pull origin $GIT_TRUNK_BRANCH_NAME` to ensure latest trunk code
165
+ 9. Optional for older Bundler (< 2.7.0): Set `SOURCE_DATE_EPOCH` so `rake build` and `rake release` use the same timestamp and generate the same checksums
166
+ - If your Bundler is >= 2.7.0, you can skip this; builds are reproducible by default.
167
+ - Run `export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH`
168
+ - If the echo above has no output, then it didn't work.
169
+ - Note: `zsh/datetime` module is needed, if running `zsh`.
170
+ - In older versions of `bash` you can use `date +%s` instead, i.e. `export SOURCE_DATE_EPOCH=$(date +%s) && echo $SOURCE_DATE_EPOCH`
171
+ 10. Run `bundle exec rake build`
172
+ 11. Run `bin/gem_checksums` (more context [1][🔒️rubygems-checksums-pr], [2][🔒️rubygems-guides-pr])
173
+ to create SHA-256 and SHA-512 checksums. This functionality is provided by the `stone_checksums`
174
+ [gem][💎stone_checksums].
175
+ - The script automatically commits but does not push the checksums
176
+ 12. Sanity check the SHA256, comparing with the output from the `bin/gem_checksums` command:
177
+ - `sha256sum pkg/<gem name>-<version>.gem`
178
+ 13. Run `bundle exec rake release` which will create a git tag for the version,
179
+ push git commits and tags, and push the `.gem` file to [rubygems.org][💎rubygems]
33
180
 
34
- [conduct]: https://gitlab.com/oauth-xx/version_gem/-/blob/main/CODE_OF_CONDUCT.md
35
- [🚎contributors]: https://gitlab.com/oauth-xx/version_gem/-/graphs/main
36
- [⛳mail-list]: http://groups.google.com/group/oauth-ruby
37
- [🚎src-main]: https://gitlab.com/oauth-xx/version_gem
38
- [🏘chat]: https://gitter.im/oauth-xx/version_gem
39
- [rubygems-security-guide]: https://guides.rubygems.org/security/#building-gems
40
- [rubygems]: https://rubygems.org
181
+ [📜src-gl]: https://gitlab.com/ruby-oauth/version_gem/
182
+ [📜src-cb]: https://codeberg.org/ruby-oauth/version_gem
183
+ [📜src-gh]: https://github.com/ruby-oauth/version_gem
184
+ [🧪build]: https://github.com/ruby-oauth/version_gem/actions
185
+ [🤝conduct]: https://gitlab.com/ruby-oauth/version_gem/-/blob/main/CODE_OF_CONDUCT.md
186
+ [🖐contrib-rocks]: https://contrib.rocks
187
+ [🖐contributors]: https://github.com/ruby-oauth/version_gem/graphs/contributors
188
+ [🚎contributors-gl]: https://gitlab.com/ruby-oauth/version_gem/-/graphs/main
189
+ [🖐contributors-img]: https://contrib.rocks/image?repo=ruby-oauth/version_gem
190
+ [💎rubygems]: https://rubygems.org
191
+ [🔒️rubygems-security-guide]: https://guides.rubygems.org/security/#building-gems
192
+ [🔒️rubygems-checksums-pr]: https://github.com/rubygems/rubygems/pull/6022
193
+ [🔒️rubygems-guides-pr]: https://github.com/rubygems/guides/pull/325
194
+ [💎stone_checksums]: https://github.com/galtzo-floss/stone_checksums
195
+ [📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
196
+ [📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
197
+ [📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
198
+ [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
199
+ [🚎appraisal2]: https://github.com/appraisal-rb/appraisal2
200
+ [🏃‍♂️runner-tool-cache]: https://github.com/ruby/ruby-builder/releases/tag/toolcache