kettle-dev 3.0.21 → 3.0.22

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: b954b64713359f0955f303327bccadeff89c0d9e56733e325404c04774530550
4
- data.tar.gz: ccb2a4329abb25e1e2e9999c15f86572f52bc0baa65a0702c8a1e779ee046f07
3
+ metadata.gz: ad40aa19520f62dc2838e743db607dddedda644aacaa5cd6c547c6d735f57c00
4
+ data.tar.gz: 0574b95c4cbf251cfcc9518ae7f9ef0669efb18e2d20583f4e6cda8d2a1a4049
5
5
  SHA512:
6
- metadata.gz: b521c0a0b72e751b3ec1f4633dce08e6b5b1d53a4a09e48690a57041dc81c0d515f656bcc4ab5fb9a0f3861ab595e71f76af21eec8116fa25a16f599775700cc
7
- data.tar.gz: 71ff4f43113cca27f09047d9252b761edf5f734f7d562ef49178ffc2025e1b9057a4f4dc79061a4ce9966320557929fab21e5ae18f1e5481fa6646da8c8a483b
6
+ metadata.gz: 7da8fb76b2666932a2a729c4c479f0a598733050b7ec88d43e61e85740b0fb47f8a25b5465b56257101953eebd2b3c21a51fe17709b8f055d57a3697fde3145c
7
+ data.tar.gz: afb314f4ae1688d92604bfb34975f22e5b54731f99a4de84459126c279be452e788496b17a277c154fc723a7c279322b164bf6653a6b762a63bfcd57ea5e02e2
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,17 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [3.0.22] - 2026-08-30
34
+
35
+ - TAG: [v3.0.22][3.0.22t]
36
+ - COVERAGE: 91.58% -- 5893/6435 lines in 47 files
37
+ - BRANCH COVERAGE: 76.32% -- 2259/2960 branches in 47 files
38
+ - 50.47% documented
39
+
40
+ ### Changed
41
+
42
+ - Add an appraisal-only release skip while preserving documentation generation.
43
+
33
44
  ## [3.0.21] - 2026-08-30
34
45
 
35
46
  - TAG: [v3.0.21][3.0.21t]
@@ -3688,7 +3699,9 @@ Please file a bug if you notice a violation of semantic versioning.
3688
3699
  - Selecting will run the selected workflow via `act`
3689
3700
  - This may move to its own gem in the future.
3690
3701
 
3691
- [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.21...HEAD
3702
+ [Unreleased]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.22...HEAD
3703
+ [3.0.22]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.21...v3.0.22
3704
+ [3.0.22t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v3.0.22
3692
3705
  [3.0.21]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.20...v3.0.21
3693
3706
  [3.0.21t]: https://github.com/kettle-dev/kettle-dev/releases/tag/v3.0.21
3694
3707
  [3.0.20]: https://github.com/kettle-dev/kettle-dev/compare/v3.0.19...v3.0.20
data/README.md CHANGED
@@ -415,7 +415,7 @@ What it does:
415
415
  Markdown fixtures under `spec/` and `test/`, along with `tmp/`, are intentionally excluded.
416
416
  - Skips pre-release checks for any `start_step` greater than `0`, so resumptions begin directly at the requested numbered step.
417
417
  - Verifies Bundler >= 2.7, updates the primary and appraisal bundles with `bundle update --bundler`, and commits those lockfiles separately as `🔒️ Update bundle` before release preparation.
418
- - Runs sanity checks (`bin/setup`, `bin/rake`), confirms version/changelog, optionally updates Appraisals, regenerates docs via `bin/rake yard`, and commits “🔖 Prepare release vX.Y.Z”.
418
+ - Runs sanity checks (`bin/setup`, `bin/rake`), confirms version/changelog, optionally updates Appraisals, regenerates docs via `bin/rake yard`, and commits “🔖 Prepare release vX.Y.Z”. Use `--skip-appraisals` only to omit appraisal generation while retaining documentation generation.
419
419
  - Optionally runs your CI locally with `act` before any push:
420
420
  - Enable with env: `K_RELEASE_LOCAL_CI="true"` (run automatically) or `K_RELEASE_LOCAL_CI="ask"` (prompt \[Y/n\]).
421
421
  - Select workflow with `K_RELEASE_LOCAL_CI_WORKFLOW` (with or without .yml/.yaml). Defaults to `locked_deps.yml` if present; otherwise the first workflow discovered.
@@ -446,9 +446,10 @@ What it does:
446
446
  18. Create GitHub Release (requires `GITHUB_TOKEN`)
447
447
  19. Push tags to remotes (final)
448
448
  - Examples:
449
- - After a transient CI or provider failure with no code, version, changelog, or lockfile changes, restart from monitoring: `bundle exec kettle-release --start-step 10` (the legacy `start_step=10` spelling remains supported)
449
+ - After a transient CI or provider failure with no code, version, changelog, or lockfile changes, restart at the failed step: for example, `bundle exec kettle-release --start-step 10` for CI monitoring or `bundle exec kettle-release --start-step 15` for RubyGems publication. The legacy `start_step=10` spelling remains supported.
450
450
  - If the failure required a code or release-metadata change, rerun `bundle exec kettle-release` from step 0 so the release checks, prep metadata, commit, and CI all describe the new release commit.
451
451
  - For an intentional same-commit CI bypass, use `bundle exec kettle-release --skip-ci` (or `--skip-steps 10`); this skips remote CI monitoring only and does not claim that CI passed.
452
+ - To retain release documentation generation while bypassing a known Appraisal-only issue, use `bundle exec kettle-release --skip-appraisals`.
452
453
  - After fixing a failed pre-release gate, rerun from step 0: `bundle exec kettle-release`
453
454
  - After intentionally handling a failed pre-release gate, skip it and start numbered release steps: `bundle exec kettle-release --start-step 1`
454
455
  - Auto-approve release confirmation prompts: `bundle exec kettle-release --yes`
@@ -1056,7 +1057,7 @@ Thanks for RTFM. ☺️
1056
1057
  [📌gitmoji]: https://gitmoji.dev
1057
1058
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
1058
1059
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
1059
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-6.430-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1060
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-6.435-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
1060
1061
  [🔐security]: https://github.com/kettle-dev/kettle-dev/blob/main/SECURITY.md
1061
1062
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
1062
1063
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
data/exe/kettle-release CHANGED
@@ -49,7 +49,7 @@ end
49
49
  # Do not guard with __FILE__ == $PROGRAM_NAME because binstubs use Kernel.load.
50
50
  if ARGV.include?("-h") || ARGV.include?("--help")
51
51
  puts <<~USAGE
52
- Usage: kettle-release [--version VERSION] [--local-ci] [--yes] [--appraisal-update] [--skip-changelog] [--skip-bundle-audit] [--start-step STEP] [--skip-ci] [--skip-steps STEPS] [--ci-workflows WORKFLOWS] [--skip-remotes REMOTES] [--required-remotes REMOTES] [--secrets-provider NAME] [--json|--events[=TYPES]] [--report PATH] [start_step=<0-19>]
52
+ Usage: kettle-release [--version VERSION] [--local-ci] [--yes] [--appraisal-update] [--skip-changelog] [--skip-appraisals] [--skip-bundle-audit] [--start-step STEP] [--skip-ci] [--skip-steps STEPS] [--ci-workflows WORKFLOWS] [--skip-remotes REMOTES] [--required-remotes REMOTES] [--secrets-provider NAME] [--json|--events[=TYPES]] [--report PATH] [start_step=<0-19>]
53
53
 
54
54
  Automates the release flow for a Ruby gem in the host project.
55
55
 
@@ -91,6 +91,7 @@ if ARGV.include?("-h") || ARGV.include?("--help")
91
91
  --yes # Auto-approve release confirmation prompts
92
92
  --appraisal-update # Use slower appraisal:update instead of default appraisal:generate
93
93
  --skip-changelog # Skip kettle-changelog but retain pre-release gates and the default task
94
+ --skip-appraisals # Skip appraisal generation at step 5 but still generate documentation
94
95
  --skip-bundle-audit # Skip bundle:audit/update during release rake checks
95
96
  --ci-workflows WORKFLOWS # Comma-separated workflow files or stems to monitor at CI step 10
96
97
  --skip-remotes REMOTES # Comma-separated git remote names to exclude from release fetch/push parity
@@ -227,6 +228,19 @@ def extract_skip_changelog_arg!(argv)
227
228
  skip_changelog
228
229
  end
229
230
 
231
+ def extract_skip_appraisals_arg!(argv)
232
+ skip_appraisals = !!argv.delete("--skip-appraisals")
233
+ argv.delete_if do |arg|
234
+ if arg.start_with?("skip_appraisals=")
235
+ skip_appraisals = arg.split("=", 2)[1].to_s.downcase != "false"
236
+ true
237
+ else
238
+ false
239
+ end
240
+ end
241
+ skip_appraisals
242
+ end
243
+
230
244
  def extract_ci_workflows_arg!(argv)
231
245
  workflows = nil
232
246
  if (idx = argv.index("--ci-workflows"))
@@ -353,6 +367,7 @@ yes = !!ARGV.delete("--yes")
353
367
  appraisal_task = ARGV.delete("--appraisal-update") ? "appraisal:update" : nil
354
368
  skip_bundle_audit = !!ARGV.delete("--skip-bundle-audit")
355
369
  skip_changelog = extract_skip_changelog_arg!(ARGV)
370
+ skip_appraisals = extract_skip_appraisals_arg!(ARGV)
356
371
  json_output = !!ARGV.delete("--json")
357
372
  events_output, event_types = extract_events_arg!(ARGV)
358
373
  Kettle::Dev::ExitAdapter.abort("--events cannot be combined with --json") if events_output && json_output
@@ -369,7 +384,7 @@ secrets_provider = extract_secrets_provider_arg!(ARGV)
369
384
 
370
385
  begin
371
386
  event_stream = events_output ? Kettle::Ndjson.event_stream($stdout, types: event_types) : nil
372
- Kettle::Dev::ReleaseCLI.new(start_step: start_step, local_ci: local_ci, version: version_override, appraisal_task: appraisal_task, skip_steps: skip_steps, skip_changelog: skip_changelog, skip_bundle_audit: skip_bundle_audit, ci_workflows: ci_workflows, skip_remotes: skip_remotes, required_remotes: required_remotes, secrets_provider_name: secrets_provider, yes: yes, event_stream: event_stream, json_output: json_output, json_io: $stdout, report_path: report_path).run
387
+ Kettle::Dev::ReleaseCLI.new(start_step: start_step, local_ci: local_ci, version: version_override, appraisal_task: appraisal_task, skip_steps: skip_steps, skip_changelog: skip_changelog, skip_appraisals: skip_appraisals, skip_bundle_audit: skip_bundle_audit, ci_workflows: ci_workflows, skip_remotes: skip_remotes, required_remotes: required_remotes, secrets_provider_name: secrets_provider, yes: yes, event_stream: event_stream, json_output: json_output, json_io: $stdout, report_path: report_path).run
373
388
  rescue LoadError => e
374
389
  warn("#{script_basename}: could not load dependency: #{e.class}: #{e.message}")
375
390
  warn(Array(e.backtrace).join("\n")) if ENV["DEBUG"]
@@ -191,13 +191,14 @@ module Kettle
191
191
 
192
192
  public
193
193
 
194
- def initialize(start_step: 0, local_ci: false, version: nil, appraisal_task: nil, skip_steps: nil, skip_changelog: nil, skip_bundle_audit: nil, ci_workflows: nil, skip_remotes: nil, required_remotes: nil, secrets_provider_name: nil, yes: false, **options)
194
+ def initialize(start_step: 0, local_ci: false, version: nil, appraisal_task: nil, skip_steps: nil, skip_changelog: nil, skip_appraisals: nil, skip_bundle_audit: nil, ci_workflows: nil, skip_remotes: nil, required_remotes: nil, secrets_provider_name: nil, yes: false, **options)
195
195
  @root = Kettle::Dev::CIHelpers.project_root
196
196
  @git = Kettle::Dev::GitAdapter.new(@root)
197
197
  @start_step = (start_step || 0).to_i
198
198
  @start_step = 0 if @start_step < 0
199
199
  @skip_steps = normalize_skip_steps(skip_steps)
200
200
  @skip_changelog = truthy_value?(skip_changelog) || truthy_value?(ENV["KETTLE_DEV_SKIP_CHANGELOG"])
201
+ @skip_appraisals = truthy_value?(skip_appraisals) || truthy_value?(ENV["KETTLE_DEV_SKIP_APPRAISALS"])
201
202
  @ci_workflows = normalize_ci_workflows(ci_workflows || ENV["K_RELEASE_CI_WORKFLOWS"])
202
203
  @skip_remotes = normalize_remote_names(skip_remotes || ENV["K_RELEASE_SKIP_REMOTES"], "skip remotes")
203
204
  @required_remotes = normalize_required_remotes(required_remotes)
@@ -371,7 +372,9 @@ module Kettle
371
372
  # 5. appraisal:generate (optional) + canonical docs build
372
373
  if run_step?(5)
373
374
  appraisals_path = File.join(@root, "Appraisals")
374
- if File.file?(appraisals_path)
375
+ if skip_appraisals?
376
+ puts "Skipping #{@appraisal_task} because --skip-appraisals was provided."
377
+ elsif File.file?(appraisals_path)
375
378
  puts "Appraisals detected at #{Kettle::Dev.display_path(appraisals_path)}. Running: bin/rake #{@appraisal_task}"
376
379
  run_cmd!(release_project_command("bin/rake #{@appraisal_task}"))
377
380
  else
@@ -680,6 +683,10 @@ module Kettle
680
683
  @skip_changelog
681
684
  end
682
685
 
686
+ def skip_appraisals?
687
+ @skip_appraisals
688
+ end
689
+
683
690
  def prepare_release_lockfiles_for_commit!
684
691
  # Release setup and documentation tasks can re-materialize local PATH
685
692
  # sources in the parent development bundle after the preflight reset.
@@ -5,7 +5,7 @@ module Kettle
5
5
  # Version namespace for this gem.
6
6
  module Version
7
7
  # Current gem version.
8
- VERSION = "3.0.21"
8
+ VERSION = "3.0.22"
9
9
  end
10
10
  # Current gem version exposed at the traditional constant location.
11
11
  VERSION = Version::VERSION # Traditional Constant Location
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: 3.0.21
4
+ version: 3.0.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -400,10 +400,10 @@ licenses:
400
400
  - AGPL-3.0-only
401
401
  metadata:
402
402
  homepage_uri: https://kettle-dev.galtzo.com
403
- source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v3.0.21
404
- changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v3.0.21/CHANGELOG.md
403
+ source_code_uri: https://github.com/kettle-dev/kettle-dev/tree/v3.0.22
404
+ changelog_uri: https://github.com/kettle-dev/kettle-dev/blob/v3.0.22/CHANGELOG.md
405
405
  bug_tracker_uri: https://github.com/kettle-dev/kettle-dev/issues
406
- documentation_uri: https://www.rubydoc.info/gems/kettle-dev/3.0.21
406
+ documentation_uri: https://www.rubydoc.info/gems/kettle-dev/3.0.22
407
407
  funding_uri: https://github.com/sponsors/pboling
408
408
  wiki_uri: https://github.com/kettle-dev/kettle-dev/wiki
409
409
  news_uri: https://www.railsbling.com/tags/kettle-dev
metadata.gz.sig CHANGED
Binary file