kettle-dev 1.1.35 → 1.1.37
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/.envrc +2 -2
- data/.gitignore +1 -0
- data/Appraisals +2 -2
- data/Appraisals.example +1 -1
- data/CHANGELOG.md +43 -1
- data/README.md +51 -27
- data/README.md.example +17 -9
- data/README.md.no-osc.example +17 -9
- data/Rakefile.example +1 -1
- data/exe/kettle-release +38 -19
- data/kettle-dev.gemspec.example +3 -2
- data/lib/kettle/dev/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +6 -6
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c9fad405b0585e4d0a4f5651683dca26a005520d41b8a17ffa36cc9ab41cdd45
|
|
4
|
+
data.tar.gz: c02e4989597f4b2635daf24215d608b3855c7223799acc2049fe26de47f5ab37
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b7d4aad2935288d5e4a5c79613453c075c1b1896fc45b7a02db73f50c6fa7016f90a7d821720ec051962644d0b5b6a86dd85ed3c7b66541e5779ccfbbcd45766
|
|
7
|
+
data.tar.gz: 0de641cbe2fdf22fb4441dc7e92cf6deba7be4ac7fa31e35a3592afdcef6df76780ecd10c8ed0796de6a446c05bf15ca96ca4332ea0050dc2038c56b6b6d090e
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/.envrc
CHANGED
|
@@ -21,8 +21,8 @@ export K_SOUP_COV_DO=true # Means you want code coverage
|
|
|
21
21
|
export K_SOUP_COV_COMMAND_NAME="Test Coverage"
|
|
22
22
|
# Available formats are html, xml, rcov, lcov, json, tty
|
|
23
23
|
export K_SOUP_COV_FORMATTERS="html,xml,rcov,lcov,json,tty"
|
|
24
|
-
export K_SOUP_COV_MIN_BRANCH=
|
|
25
|
-
export K_SOUP_COV_MIN_LINE=
|
|
24
|
+
export K_SOUP_COV_MIN_BRANCH=79 # Means you want to enforce X% branch coverage
|
|
25
|
+
export K_SOUP_COV_MIN_LINE=95 # Means you want to enforce X% line coverage
|
|
26
26
|
export K_SOUP_COV_MIN_HARD=true # Means you want the build to fail if the coverage thresholds are not met
|
|
27
27
|
export K_SOUP_COV_MULTI_FORMATTERS=true
|
|
28
28
|
export K_SOUP_COV_OPEN_BIN= # Means don't try to open coverage results in browser
|
data/.gitignore
CHANGED
data/Appraisals
CHANGED
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
appraise "unlocked_deps" do
|
|
23
23
|
eval_gemfile "modular/coverage.gemfile"
|
|
24
24
|
eval_gemfile "modular/documentation.gemfile"
|
|
25
|
-
eval_gemfile "modular/style.gemfile"
|
|
26
25
|
eval_gemfile "modular/optional.gemfile"
|
|
27
26
|
eval_gemfile "modular/recording/r3/recording.gemfile"
|
|
27
|
+
eval_gemfile "modular/style.gemfile"
|
|
28
28
|
eval_gemfile "modular/x_std_libs.gemfile"
|
|
29
29
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
|
30
30
|
# eval_gemfile "modular/injected.gemfile"
|
|
@@ -33,9 +33,9 @@ end
|
|
|
33
33
|
# Used for head (nightly) releases of ruby, truffleruby, and jruby.
|
|
34
34
|
# Split into discrete appraisals if one of them needs a dependency locked discretely.
|
|
35
35
|
appraise "head" do
|
|
36
|
+
gem "benchmark", "~> 0.4", ">= 0.4.1"
|
|
36
37
|
# Why is cgi gem here? See: https://github.com/vcr/vcr/issues/1057
|
|
37
38
|
gem "cgi", ">= 0.5"
|
|
38
|
-
gem "benchmark", "~> 0.4", ">= 0.4.1"
|
|
39
39
|
eval_gemfile "modular/recording/r3/recording.gemfile"
|
|
40
40
|
eval_gemfile "modular/x_std_libs.gemfile"
|
|
41
41
|
# Dependencies injected by the kettle-dev-setup script & kettle:dev:install rake task
|
data/Appraisals.example
CHANGED
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
appraise "unlocked_deps" do
|
|
23
23
|
eval_gemfile "modular/coverage.gemfile"
|
|
24
24
|
eval_gemfile "modular/documentation.gemfile"
|
|
25
|
-
eval_gemfile "modular/style.gemfile"
|
|
26
25
|
eval_gemfile "modular/optional.gemfile"
|
|
26
|
+
eval_gemfile "modular/style.gemfile"
|
|
27
27
|
eval_gemfile "modular/x_std_libs.gemfile"
|
|
28
28
|
end
|
|
29
29
|
|
data/CHANGELOG.md
CHANGED
|
@@ -20,8 +20,14 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
20
20
|
|
|
21
21
|
### Added
|
|
22
22
|
|
|
23
|
+
- kettle-release: improved --help
|
|
24
|
+
- improved documentation of kettle-release
|
|
25
|
+
- improved documentation of spec setup with kettle-test
|
|
26
|
+
|
|
23
27
|
### Changed
|
|
24
28
|
|
|
29
|
+
- upgrade to kettle-test v1.0.6
|
|
30
|
+
|
|
25
31
|
### Deprecated
|
|
26
32
|
|
|
27
33
|
### Removed
|
|
@@ -30,6 +36,38 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
36
|
|
|
31
37
|
### Security
|
|
32
38
|
|
|
39
|
+
## [1.1.37] - 2025-10-21
|
|
40
|
+
|
|
41
|
+
- TAG: [v1.1.37][1.1.37t]
|
|
42
|
+
- COVERAGE: 96.04% -- 3949/4112 lines in 26 files
|
|
43
|
+
- BRANCH COVERAGE: 80.80% -- 1633/2021 branches in 26 files
|
|
44
|
+
- 79.68% documented
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
|
|
48
|
+
- kettle-release: improved --help
|
|
49
|
+
- improved documentation of kettle-release
|
|
50
|
+
- improved documentation of spec setup with kettle-test
|
|
51
|
+
|
|
52
|
+
### Changed
|
|
53
|
+
|
|
54
|
+
- upgrade to kettle-test v1.0.6
|
|
55
|
+
|
|
56
|
+
## [1.1.36] - 2025-10-20
|
|
57
|
+
|
|
58
|
+
- TAG: [v1.1.36][1.1.36t]
|
|
59
|
+
- COVERAGE: 96.04% -- 3949/4112 lines in 26 files
|
|
60
|
+
- BRANCH COVERAGE: 80.85% -- 1634/2021 branches in 26 files
|
|
61
|
+
- 79.68% documented
|
|
62
|
+
|
|
63
|
+
### Added
|
|
64
|
+
|
|
65
|
+
- More documentation of RC situation
|
|
66
|
+
|
|
67
|
+
### Fixed
|
|
68
|
+
|
|
69
|
+
- alphabetize dependencies
|
|
70
|
+
|
|
33
71
|
## [1.1.35] - 2025-10-20
|
|
34
72
|
|
|
35
73
|
- TAG: [v1.1.35][1.1.35t]
|
|
@@ -1119,7 +1157,11 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
1119
1157
|
- Selecting will run the selected workflow via `act`
|
|
1120
1158
|
- This may move to its own gem in the future.
|
|
1121
1159
|
|
|
1122
|
-
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.
|
|
1160
|
+
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.37...HEAD
|
|
1161
|
+
[1.1.37]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.36...v1.1.37
|
|
1162
|
+
[1.1.37t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.37
|
|
1163
|
+
[1.1.36]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.35...v1.1.36
|
|
1164
|
+
[1.1.36t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.36
|
|
1123
1165
|
[1.1.35]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.34...v1.1.35
|
|
1124
1166
|
[1.1.35t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.35
|
|
1125
1167
|
[1.1.34]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.33...v1.1.34
|
data/README.md
CHANGED
|
@@ -1,17 +1,25 @@
|
|
|
1
|
-
| 📍 NOTE
|
|
2
|
-
|
|
3
|
-
| RubyGems
|
|
4
|
-
|
|
|
5
|
-
|
|
|
6
|
-
|
|
|
7
|
-
|
|
|
8
|
-
|
|
|
9
|
-
|
|
1
|
+
| 📍 NOTE |
|
|
2
|
+
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
3
|
+
| RubyGems (the [GitHub org][rubygems-org], not the website) [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025. |
|
|
4
|
+
| Ultimately [4 maintainers][simi-removed] were [hard removed][martin-removed] and a reason has been given for only 1 of those, while 2 others resigned in protest. |
|
|
5
|
+
| It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies]. |
|
|
6
|
+
| I'm adding notes like this to gems because I [don't condone theft][draper-theft] of repositories or gems from their rightful owners. |
|
|
7
|
+
| If a similar theft happened with my repos/gems, I'd hope some would stand up for me. |
|
|
8
|
+
| Disenfranchised former-maintainers have started [gem.coop][gem-coop]. |
|
|
9
|
+
| Once available I will publish there exclusively; unless RubyCentral makes amends with the community. |
|
|
10
|
+
| The ["Technology for Humans: Joel Draper"][reinteractive-podcast] podcast episode by [reinteractive][reinteractive] is the most cogent summary I'm aware of. |
|
|
11
|
+
| See [here][gem-naming], [here][gem-coop] and [here][martin-ann] for more info on what comes next. |
|
|
12
|
+
| What I'm doing: A (WIP) proposal for [bundler/gem scopes][gem-scopes], and a (WIP) proposal for a federated [gem server][gem-server]. |
|
|
13
|
+
|
|
14
|
+
[rubygems-org]: https://github.com/rubygems/
|
|
10
15
|
[draper-security]: https://joel.drapper.me/p/ruby-central-security-measures/
|
|
11
16
|
[draper-takeover]: https://joel.drapper.me/p/ruby-central-takeover/
|
|
12
17
|
[ellen-takeover]: https://pup-e.com/blog/goodbye-rubygems/
|
|
18
|
+
[simi-removed]: https://www.reddit.com/r/ruby/s/gOk42POCaV
|
|
19
|
+
[martin-removed]: https://bsky.app/profile/martinemde.com/post/3m3occezxxs2q
|
|
13
20
|
[draper-lies]: https://joel.drapper.me/p/ruby-central-fact-check/
|
|
14
21
|
[draper-theft]: https://joel.drapper.me/p/ruby-central/
|
|
22
|
+
[reinteractive]: https://reinteractive.com/ruby-on-rails
|
|
15
23
|
[gem-coop]: https://gem.coop
|
|
16
24
|
[gem-naming]: https://github.com/gem-coop/gem.coop/issues/12
|
|
17
25
|
[martin-ann]: https://martinemde.com/2025/10/05/announcing-gem-coop.html
|
|
@@ -205,6 +213,21 @@ This gem integrates tightly with [kettle-test](https://github.com/kettle-rb/kett
|
|
|
205
213
|
|
|
206
214
|
```ruby
|
|
207
215
|
require "kettle/test/rspec"
|
|
216
|
+
|
|
217
|
+
# ... any other config you need to do.
|
|
218
|
+
|
|
219
|
+
# NOTE: Gemfiles for older rubies (< 2.7) won't have kettle-soup-cover.
|
|
220
|
+
# The rescue LoadError handles that scenario.
|
|
221
|
+
begin
|
|
222
|
+
require "kettle-soup-cover"
|
|
223
|
+
require "simplecov" if Kettle::Soup::Cover::DO_COV # `.simplecov` is run here!
|
|
224
|
+
rescue LoadError => error
|
|
225
|
+
# check the error message, and re-raise if not what is expected
|
|
226
|
+
raise error unless error.message.include?("kettle")
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
# This gem (or app)
|
|
230
|
+
require "gem-under-test"
|
|
208
231
|
```
|
|
209
232
|
|
|
210
233
|
### Rakefile
|
|
@@ -449,24 +472,25 @@ What it does:
|
|
|
449
472
|
- Exports `SOURCE_DATE_EPOCH`, builds (optionally signed), creates gem checksums, and runs `bundle exec rake release` (prompts for signing key + RubyGems MFA OTP as needed).
|
|
450
473
|
- Options:
|
|
451
474
|
- start_step map (skip directly to a phase):
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
475
|
+
1. Verify Bundler >= 2.7 (always runs; start at 1 to do everything)
|
|
476
|
+
2. Detect version; RubyGems sanity check; confirm CHANGELOG/version; sync copyright years; update badges/headers
|
|
477
|
+
3. Run bin/setup
|
|
478
|
+
4. Run bin/rake (default task)
|
|
479
|
+
5. Run bin/rake appraisal:update if Appraisals present
|
|
480
|
+
6. Ensure git user configured; commit release prep
|
|
481
|
+
7. Optional local CI with `act` (controlled by K_RELEASE_LOCAL_CI)
|
|
482
|
+
8. Ensure trunk in sync across remotes; rebase feature as needed
|
|
483
|
+
9. Push current branch to remotes (or 'all' remote)
|
|
484
|
+
10. Monitor CI after push; abort on failures
|
|
485
|
+
11. Merge feature into trunk and push
|
|
486
|
+
12. Checkout trunk and pull latest
|
|
487
|
+
13. Gem signing checks/guidance (skip with SKIP_GEM_SIGNING=true)
|
|
488
|
+
14. Build gem (bundle exec rake build)
|
|
489
|
+
15. Release gem (bundle exec rake release)
|
|
490
|
+
16. Generate and validate checksums (bin/gem_checksums)
|
|
491
|
+
17. Push checksum commit
|
|
492
|
+
18. Create GitHub Release (requires GITHUB_TOKEN)
|
|
493
|
+
19. Push tags to remotes (final)
|
|
470
494
|
- Examples:
|
|
471
495
|
- After intermittent CI failure, restart from monitoring: `bundle exec kettle-release start_step=10`
|
|
472
496
|
- Tips:
|
data/README.md.example
CHANGED
|
@@ -1,17 +1,25 @@
|
|
|
1
|
-
| 📍 NOTE
|
|
2
|
-
|
|
3
|
-
| RubyGems
|
|
4
|
-
|
|
|
5
|
-
|
|
|
6
|
-
|
|
|
7
|
-
|
|
|
8
|
-
|
|
|
9
|
-
|
|
1
|
+
| 📍 NOTE |
|
|
2
|
+
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
3
|
+
| RubyGems (the [GitHub org][rubygems-org], not the website) [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025. |
|
|
4
|
+
| Ultimately [4 maintainers][simi-removed] were [hard removed][martin-removed] and a reason has been given for only 1 of those, while 2 others resigned in protest. |
|
|
5
|
+
| It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies]. |
|
|
6
|
+
| I'm adding notes like this to gems because I [don't condone theft][draper-theft] of repositories or gems from their rightful owners. |
|
|
7
|
+
| If a similar theft happened with my repos/gems, I'd hope some would stand up for me. |
|
|
8
|
+
| Disenfranchised former-maintainers have started [gem.coop][gem-coop]. |
|
|
9
|
+
| Once available I will publish there exclusively; unless RubyCentral makes amends with the community. |
|
|
10
|
+
| The ["Technology for Humans: Joel Draper"][reinteractive-podcast] podcast episode by [reinteractive][reinteractive] is the most cogent summary I'm aware of. |
|
|
11
|
+
| See [here][gem-naming], [here][gem-coop] and [here][martin-ann] for more info on what comes next. |
|
|
12
|
+
| What I'm doing: A (WIP) proposal for [bundler/gem scopes][gem-scopes], and a (WIP) proposal for a federated [gem server][gem-server]. |
|
|
13
|
+
|
|
14
|
+
[rubygems-org]: https://github.com/rubygems/
|
|
10
15
|
[draper-security]: https://joel.drapper.me/p/ruby-central-security-measures/
|
|
11
16
|
[draper-takeover]: https://joel.drapper.me/p/ruby-central-takeover/
|
|
12
17
|
[ellen-takeover]: https://pup-e.com/blog/goodbye-rubygems/
|
|
18
|
+
[simi-removed]: https://www.reddit.com/r/ruby/s/gOk42POCaV
|
|
19
|
+
[martin-removed]: https://bsky.app/profile/martinemde.com/post/3m3occezxxs2q
|
|
13
20
|
[draper-lies]: https://joel.drapper.me/p/ruby-central-fact-check/
|
|
14
21
|
[draper-theft]: https://joel.drapper.me/p/ruby-central/
|
|
22
|
+
[reinteractive]: https://reinteractive.com/ruby-on-rails
|
|
15
23
|
[gem-coop]: https://gem.coop
|
|
16
24
|
[gem-naming]: https://github.com/gem-coop/gem.coop/issues/12
|
|
17
25
|
[martin-ann]: https://martinemde.com/2025/10/05/announcing-gem-coop.html
|
data/README.md.no-osc.example
CHANGED
|
@@ -1,17 +1,25 @@
|
|
|
1
|
-
| 📍 NOTE
|
|
2
|
-
|
|
3
|
-
| RubyGems
|
|
4
|
-
|
|
|
5
|
-
|
|
|
6
|
-
|
|
|
7
|
-
|
|
|
8
|
-
|
|
|
9
|
-
|
|
1
|
+
| 📍 NOTE |
|
|
2
|
+
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
3
|
+
| RubyGems (the [GitHub org][rubygems-org], not the website) [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025. |
|
|
4
|
+
| Ultimately [4 maintainers][simi-removed] were [hard removed][martin-removed] and a reason has been given for only 1 of those, while 2 others resigned in protest. |
|
|
5
|
+
| It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies]. |
|
|
6
|
+
| I'm adding notes like this to gems because I [don't condone theft][draper-theft] of repositories or gems from their rightful owners. |
|
|
7
|
+
| If a similar theft happened with my repos/gems, I'd hope some would stand up for me. |
|
|
8
|
+
| Disenfranchised former-maintainers have started [gem.coop][gem-coop]. |
|
|
9
|
+
| Once available I will publish there exclusively; unless RubyCentral makes amends with the community. |
|
|
10
|
+
| The ["Technology for Humans: Joel Draper"][reinteractive-podcast] podcast episode by [reinteractive][reinteractive] is the most cogent summary I'm aware of. |
|
|
11
|
+
| See [here][gem-naming], [here][gem-coop] and [here][martin-ann] for more info on what comes next. |
|
|
12
|
+
| What I'm doing: A (WIP) proposal for [bundler/gem scopes][gem-scopes], and a (WIP) proposal for a federated [gem server][gem-server]. |
|
|
13
|
+
|
|
14
|
+
[rubygems-org]: https://github.com/rubygems/
|
|
10
15
|
[draper-security]: https://joel.drapper.me/p/ruby-central-security-measures/
|
|
11
16
|
[draper-takeover]: https://joel.drapper.me/p/ruby-central-takeover/
|
|
12
17
|
[ellen-takeover]: https://pup-e.com/blog/goodbye-rubygems/
|
|
18
|
+
[simi-removed]: https://www.reddit.com/r/ruby/s/gOk42POCaV
|
|
19
|
+
[martin-removed]: https://bsky.app/profile/martinemde.com/post/3m3occezxxs2q
|
|
13
20
|
[draper-lies]: https://joel.drapper.me/p/ruby-central-fact-check/
|
|
14
21
|
[draper-theft]: https://joel.drapper.me/p/ruby-central/
|
|
22
|
+
[reinteractive]: https://reinteractive.com/ruby-on-rails
|
|
15
23
|
[gem-coop]: https://gem.coop
|
|
16
24
|
[gem-naming]: https://github.com/gem-coop/gem.coop/issues/12
|
|
17
25
|
[martin-ann]: https://martinemde.com/2025/10/05/announcing-gem-coop.html
|
data/Rakefile.example
CHANGED
data/exe/kettle-release
CHANGED
|
@@ -43,28 +43,47 @@ end
|
|
|
43
43
|
# Do not guard with __FILE__ == $PROGRAM_NAME because binstubs use Kernel.load.
|
|
44
44
|
if ARGV.include?("-h") || ARGV.include?("--help")
|
|
45
45
|
puts <<~USAGE
|
|
46
|
-
Usage: kettle-release [start_step=<
|
|
46
|
+
Usage: kettle-release [start_step=<1-19>]
|
|
47
47
|
|
|
48
|
-
Automates the release flow for a Ruby gem in the host project
|
|
48
|
+
Automates the release flow for a Ruby gem in the host project.
|
|
49
|
+
|
|
50
|
+
Start steps (use start_step=<n> to begin at that step):
|
|
51
|
+
1. Verify Bundler >= 2.7 (always runs; start at 1 to do everything)
|
|
52
|
+
2. Detect version; RubyGems sanity check; confirm CHANGELOG/version; sync copyright years; update badges/headers
|
|
53
|
+
3. Run bin/setup
|
|
54
|
+
4. Run bin/rake (default task)
|
|
55
|
+
5. Run bin/rake appraisal:update if Appraisals present
|
|
56
|
+
6. Ensure git user configured; commit release prep
|
|
57
|
+
7. Optional local CI with `act` (controlled by K_RELEASE_LOCAL_CI)
|
|
58
|
+
8. Ensure trunk in sync across remotes; rebase feature as needed
|
|
59
|
+
9. Push current branch to remotes (or 'all' remote)
|
|
60
|
+
10. Monitor CI after push; abort on failures
|
|
61
|
+
11. Merge feature into trunk and push
|
|
62
|
+
12. Checkout trunk and pull latest
|
|
63
|
+
13. Gem signing checks/guidance (skip with SKIP_GEM_SIGNING=true)
|
|
64
|
+
14. Build gem (bundle exec rake build)
|
|
65
|
+
15. Release gem (bundle exec rake release)
|
|
66
|
+
16. Generate and validate checksums (bin/gem_checksums)
|
|
67
|
+
17. Push checksum commit
|
|
68
|
+
18. Create GitHub Release (requires GITHUB_TOKEN)
|
|
69
|
+
19. Push tags to remotes (final)
|
|
49
70
|
|
|
50
71
|
Options:
|
|
51
|
-
start_step=<number> #
|
|
52
|
-
- Runs bin/setup and bin/rake sanity checks
|
|
53
|
-
- Prompts to confirm version and changelog updates
|
|
54
|
-
- Commits a release prep change
|
|
55
|
-
- Ensures trunk is up-to-date, pushes branch, and monitors CI (GitHub/GitLab)
|
|
56
|
-
- Merges feature into trunk upon CI success
|
|
57
|
-
- Builds and releases the gem
|
|
58
|
-
- Generates checksums (via bin/gem_checksums), then pushes the checksum commit
|
|
59
|
-
- Optionally creates a GitHub Release
|
|
60
|
-
- Pushes tags to remotes at the end
|
|
72
|
+
start_step=<number> # Begin at the numbered step above (e.g., 10 to resume at CI monitoring)
|
|
61
73
|
|
|
62
74
|
Environment:
|
|
63
|
-
SKIP_GEM_SIGNING=true
|
|
64
|
-
GEM_CERT_USER=<user>
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
75
|
+
SKIP_GEM_SIGNING=true # Build/release unsigned; avoids PEM password prompts
|
|
76
|
+
GEM_CERT_USER=<user> # Select certs/<user>.pem for signing
|
|
77
|
+
K_RELEASE_LOCAL_CI=ask|1|0 # Use 'act' locally before push; 'ask' prompts, '1' forces, default off
|
|
78
|
+
K_RELEASE_LOCAL_CI_WORKFLOW # Name of workflow (without .yml) for local CI; defaults to locked_deps or first
|
|
79
|
+
GITHUB_TOKEN / GH_TOKEN # Optional; enables GitHub release creation and API queries
|
|
80
|
+
GITLAB_TOKEN / GL_TOKEN # Optional; enables GitLab API queries when applicable
|
|
81
|
+
DEBUG=true # Print backtraces on errors
|
|
82
|
+
|
|
83
|
+
Examples:
|
|
84
|
+
kettle-release # full flow from the top (start_step=1)
|
|
85
|
+
kettle-release start_step=10 # resume by monitoring CI for the current branch
|
|
86
|
+
SKIP_GEM_SIGNING=true kettle-release start_step=14 # build+release without signing
|
|
68
87
|
USAGE
|
|
69
88
|
exit 0
|
|
70
89
|
end
|
|
@@ -77,7 +96,7 @@ begin
|
|
|
77
96
|
Kettle::Dev::ReleaseCLI.new(start_step: start_step).run
|
|
78
97
|
rescue LoadError => e
|
|
79
98
|
warn("#{script_basename}: could not load dependency: #{e.class}: #{e.message}")
|
|
80
|
-
warn(e.backtrace.join("\n")) if ENV["DEBUG"]
|
|
99
|
+
warn(Array(e.backtrace).join("\n")) if ENV["DEBUG"]
|
|
81
100
|
exit(1)
|
|
82
101
|
rescue SystemExit => e
|
|
83
102
|
# Preserve exit status, but ensure at least a newline so shells don't show an empty line only.
|
|
@@ -85,6 +104,6 @@ rescue SystemExit => e
|
|
|
85
104
|
raise
|
|
86
105
|
rescue StandardError => e
|
|
87
106
|
warn("#{script_basename}: unexpected error: #{e.class}: #{e.message}")
|
|
88
|
-
warn(e.backtrace.join("\n"))
|
|
107
|
+
warn(Array(e.backtrace).join("\n"))
|
|
89
108
|
exit(1)
|
|
90
109
|
end
|
data/kettle-dev.gemspec.example
CHANGED
|
@@ -115,7 +115,7 @@ Gem::Specification.new do |spec|
|
|
|
115
115
|
# and preferably a modular one (see gemfiles/modular/*.gemfile).
|
|
116
116
|
|
|
117
117
|
# Dev, Test, & Release Tasks
|
|
118
|
-
spec.add_development_dependency("{KETTLE|DEV|GEM}", "~> 1.1")
|
|
118
|
+
spec.add_development_dependency("{KETTLE|DEV|GEM}", "~> 1.1") # ruby >= 2.3.0
|
|
119
119
|
|
|
120
120
|
# Security
|
|
121
121
|
spec.add_development_dependency("bundler-audit", "~> 0.9.2") # ruby >= 2.0.0
|
|
@@ -128,7 +128,7 @@ Gem::Specification.new do |spec|
|
|
|
128
128
|
|
|
129
129
|
# Testing
|
|
130
130
|
spec.add_development_dependency("appraisal2", "~> 3.0") # ruby >= 1.8.7, for testing against multiple versions of dependencies
|
|
131
|
-
spec.add_development_dependency("kettle-test", "~> 1.0", ">= 1.0.
|
|
131
|
+
spec.add_development_dependency("kettle-test", "~> 1.0", ">= 1.0.6") # ruby >= 2.3
|
|
132
132
|
|
|
133
133
|
# Releasing
|
|
134
134
|
spec.add_development_dependency("ruby-progressbar", "~> 1.13") # ruby >= 0
|
|
@@ -146,6 +146,7 @@ Gem::Specification.new do |spec|
|
|
|
146
146
|
# spec.add_development_dependency("erb", ">= 2.2") # ruby >= 2.3.0, not SemVer, old rubies get dropped in a patch.
|
|
147
147
|
spec.add_development_dependency("gitmoji-regex", "~> 1.0", ">= 1.0.3") # ruby >= 2.3.0
|
|
148
148
|
|
|
149
|
+
# HTTP recording for deterministic specs
|
|
149
150
|
# In Ruby 3.5 (HEAD) the CGI library has been pared down, so we also need to depend on gem "cgi" for ruby@head
|
|
150
151
|
# This is done in the "head" appraisal.
|
|
151
152
|
# See: https://github.com/vcr/vcr/issues/1057
|
data/lib/kettle/dev/version.rb
CHANGED
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kettle-dev
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.37
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -108,7 +108,7 @@ dependencies:
|
|
|
108
108
|
version: '1.0'
|
|
109
109
|
- - ">="
|
|
110
110
|
- !ruby/object:Gem::Version
|
|
111
|
-
version: 1.0.
|
|
111
|
+
version: 1.0.6
|
|
112
112
|
type: :development
|
|
113
113
|
prerelease: false
|
|
114
114
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -118,7 +118,7 @@ dependencies:
|
|
|
118
118
|
version: '1.0'
|
|
119
119
|
- - ">="
|
|
120
120
|
- !ruby/object:Gem::Version
|
|
121
|
-
version: 1.0.
|
|
121
|
+
version: 1.0.6
|
|
122
122
|
- !ruby/object:Gem::Dependency
|
|
123
123
|
name: ruby-progressbar
|
|
124
124
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -395,10 +395,10 @@ licenses:
|
|
|
395
395
|
- MIT
|
|
396
396
|
metadata:
|
|
397
397
|
homepage_uri: https://kettle-dev.galtzo.com/
|
|
398
|
-
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1.
|
|
399
|
-
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1.
|
|
398
|
+
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1.37
|
|
399
|
+
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1.37/CHANGELOG.md
|
|
400
400
|
bug_tracker_uri: https://github.com/kettle-rb/kettle-dev/issues
|
|
401
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.
|
|
401
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.37
|
|
402
402
|
funding_uri: https://github.com/sponsors/pboling
|
|
403
403
|
wiki_uri: https://github.com/kettle-rb/kettle-dev/wiki
|
|
404
404
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
metadata.gz.sig
CHANGED
|
Binary file
|