kettle-jem 7.0.0 → 7.1.3
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/CHANGELOG.md +1505 -0
- data/LICENSE.md +13 -0
- data/README.md +794 -0
- data/exe/kettle-jem +20 -0
- data/lib/kettle/jem/cli.rb +334 -0
- data/lib/kettle/jem/license_txt_migrator.rb +33 -0
- data/lib/kettle/jem/rakelib/install.rake +10 -0
- data/lib/kettle/jem/rakelib/prepare.rake +10 -0
- data/lib/kettle/jem/rakelib/selftest.rake +10 -0
- data/lib/kettle/jem/rakelib/template.rake +10 -0
- data/lib/kettle/jem/tasks/install_task.rb +2178 -0
- data/lib/kettle/jem/tasks/prepare_task.rb +274 -0
- data/lib/kettle/jem/tasks/self_test_task.rb +256 -0
- data/lib/kettle/jem/tasks/template_task.rb +124 -0
- data/lib/kettle/jem/tasks.rb +6 -0
- data/lib/kettle/jem/templates/.aiignore.example +19 -0
- data/lib/kettle/jem/templates/.config/mise/env.sh +26 -0
- data/lib/kettle/jem/templates/.devcontainer/apt-install/devcontainer-feature.json.example +9 -0
- data/lib/kettle/jem/templates/.devcontainer/apt-install/install.sh.example +19 -0
- data/lib/kettle/jem/templates/.devcontainer/devcontainer.json.example +27 -0
- data/lib/kettle/jem/templates/.devcontainer/scripts/setup-tree-sitter.sh.example +210 -0
- data/lib/kettle/jem/templates/.env.local.example +67 -0
- data/lib/kettle/jem/templates/.envrc.example +4 -0
- data/lib/kettle/jem/templates/.envrc.no-osc.example +4 -0
- data/lib/kettle/jem/templates/.gemrc.example +1 -0
- data/lib/kettle/jem/templates/.git-hooks/commit-msg.example +60 -0
- data/lib/kettle/jem/templates/.git-hooks/commit-subjects-goalie.txt.example +8 -0
- data/lib/kettle/jem/templates/.git-hooks/footer-template.erb.txt.example +16 -0
- data/lib/kettle/jem/templates/.git-hooks/prepare-commit-msg.example +9 -0
- data/lib/kettle/jem/templates/.github/.codecov.yml.example +14 -0
- data/lib/kettle/jem/templates/.github/FUNDING.yml.example +10 -0
- data/lib/kettle/jem/templates/.github/FUNDING.yml.no-osc.example +10 -0
- data/lib/kettle/jem/templates/.github/copilot_instructions.md.example +1 -0
- data/lib/kettle/jem/templates/.github/dependabot.yml.example +13 -0
- data/lib/kettle/jem/templates/.github/workflows/auto-assign.yml.example +21 -0
- data/lib/kettle/jem/templates/.github/workflows/coverage.yml.example +102 -0
- data/lib/kettle/jem/templates/.github/workflows/current.yml.example +86 -0
- data/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example +249 -0
- data/lib/kettle/jem/templates/.github/workflows/dependency-review.yml.example +22 -0
- data/lib/kettle/jem/templates/.github/workflows/discord-notifier.yml.example +39 -0
- data/lib/kettle/jem/templates/.github/workflows/framework-ci.yml.example +81 -0
- data/lib/kettle/jem/templates/.github/workflows/heads.yml.example +212 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby-10.0.yml.example +91 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.1.yml.example +90 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.2.yml.example +95 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.3.yml.example +95 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.4.yml.example +95 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby.yml.example +91 -0
- data/lib/kettle/jem/templates/.github/workflows/license-eye.yml.example +43 -0
- data/lib/kettle/jem/templates/.github/workflows/locked_deps.yml.example +89 -0
- data/lib/kettle/jem/templates/.github/workflows/opencollective.yml.example +44 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.3.yml.example +80 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.4.yml.example +84 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.5.yml.example +84 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.6.yml.example +84 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.7.yml.example +84 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.0.yml.example +85 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.1.yml.example +83 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.2.yml.example +80 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.3.yml.example +80 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.4.yml.example +80 -0
- data/lib/kettle/jem/templates/.github/workflows/style.yml.example +78 -0
- data/lib/kettle/jem/templates/.github/workflows/templating.yml.example +86 -0
- data/lib/kettle/jem/templates/.github/workflows/truffle.yml.example +91 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-22.3.yml.example +92 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-23.0.yml.example +92 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-23.1.yml.example +78 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-24.2.yml.example +91 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-25.0.yml.example +96 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-33.0.yml.example +91 -0
- data/lib/kettle/jem/templates/.github/workflows/unlocked_deps.yml.example +93 -0
- data/lib/kettle/jem/templates/.gitignore.example +53 -0
- data/lib/kettle/jem/templates/.gitlab-ci.yml.example +134 -0
- data/lib/kettle/jem/templates/.idea/.gitignore.example +44 -0
- data/lib/kettle/jem/templates/.licenserc.yaml.example +8 -0
- data/lib/kettle/jem/templates/.opencollective.yml.example +3 -0
- data/lib/kettle/jem/templates/.qlty/qlty.toml.example +79 -0
- data/lib/kettle/jem/templates/.rspec.example +10 -0
- data/lib/kettle/jem/templates/.rubocop.example +1 -0
- data/lib/kettle/jem/templates/.rubocop.yml.example +47 -0
- data/lib/kettle/jem/templates/.rubocop_rspec.yml.example +55 -0
- data/lib/kettle/jem/templates/.simplecov.example +18 -0
- data/lib/kettle/jem/templates/.structuredmerge/git-drivers.toml.example +86 -0
- data/lib/kettle/jem/templates/.structuredmerge/kettle-jem.yml.example +519 -0
- data/lib/kettle/jem/templates/.yard-lint.yml.example +54 -0
- data/lib/kettle/jem/templates/.yardignore.example +13 -0
- data/lib/kettle/jem/templates/.yardopts.example +14 -0
- data/lib/kettle/jem/templates/AGENTS.md.example +283 -0
- data/lib/kettle/jem/templates/AGPL-3.0-only.md.example +235 -0
- data/lib/kettle/jem/templates/Appraisal.root.gemfile.example +26 -0
- data/lib/kettle/jem/templates/Appraisals.example +150 -0
- data/lib/kettle/jem/templates/Big-Time-Public-License.md.example +99 -0
- data/lib/kettle/jem/templates/CHANGELOG.md.example +33 -0
- data/lib/kettle/jem/templates/CHANGELOG.transfer.md +109 -0
- data/lib/kettle/jem/templates/CITATION.cff.example +20 -0
- data/lib/kettle/jem/templates/CODE_OF_CONDUCT.md.example +134 -0
- data/lib/kettle/jem/templates/CONTRIBUTING.md.example +292 -0
- data/lib/kettle/jem/templates/FUNDING.md.example +74 -0
- data/lib/kettle/jem/templates/FUNDING.md.no-osc.example +63 -0
- data/lib/kettle/jem/templates/Gemfile.example +52 -0
- data/lib/kettle/jem/templates/IRP.md.example +34 -0
- data/lib/kettle/jem/templates/LICENSE.md.example +3 -0
- data/lib/kettle/jem/templates/MIT.md.example +21 -0
- data/lib/kettle/jem/templates/PolyForm-Noncommercial-1.0.0.md.example +131 -0
- data/lib/kettle/jem/templates/PolyForm-Small-Business-1.0.0.md.example +121 -0
- data/lib/kettle/jem/templates/README.md.example +544 -0
- data/lib/kettle/jem/templates/REEK +0 -0
- data/lib/kettle/jem/templates/RUBOCOP.md.example +78 -0
- data/lib/kettle/jem/templates/Rakefile.example +163 -0
- data/lib/kettle/jem/templates/SECURITY.md.example +21 -0
- data/lib/kettle/jem/templates/bin/setup.example +36 -0
- data/lib/kettle/jem/templates/certs/pboling.pem.example +27 -0
- data/lib/kettle/jem/templates/gem.gemspec.example +161 -0
- data/lib/kettle/jem/templates/gemfiles/modular/benchmark/r4/v0.5.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/benchmark/vHEAD.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/cgi/r4/v0.5.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/cgi/vHEAD.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/changelog.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/coverage.gemfile.example +14 -0
- data/lib/kettle/jem/templates/gemfiles/modular/coverage_local.gemfile.example +34 -0
- data/lib/kettle/jem/templates/gemfiles/modular/debug.gemfile.example +22 -0
- data/lib/kettle/jem/templates/gemfiles/modular/documentation.gemfile.example +24 -0
- data/lib/kettle/jem/templates/gemfiles/modular/documentation_local.gemfile.example +20 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r2/v3.0.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r2.3/default.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r2.6/v2.2.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r3/v5.0.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r3.1/v4.0.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r4/v5.0.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/vHEAD.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/json/truffleruby_22_3.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/json/truffleruby_23_0.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/json/truffleruby_23_1.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/mutex_m/r2/v0.3.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/mutex_m/r2.4/v0.1.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/mutex_m/r3/v0.3.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/mutex_m/r4/v0.3.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/mutex_m/vHEAD.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/optional.gemfile.example +16 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/r2.3/recording.gemfile.example +16 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/r2.4/recording.gemfile.example +18 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/r2.5/recording.gemfile.example +16 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/r3/recording.gemfile.example +16 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/r4/recording.gemfile.example +16 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/vHEAD.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/rspec.gemfile.example +4 -0
- data/lib/kettle/jem/templates/gemfiles/modular/runtime_heads.gemfile.example +14 -0
- data/lib/kettle/jem/templates/gemfiles/modular/shunted.gemfile.example +21 -0
- data/lib/kettle/jem/templates/gemfiles/modular/stringio/r2/v3.0.gemfile.example +5 -0
- data/lib/kettle/jem/templates/gemfiles/modular/stringio/r2.4/v0.0.2.gemfile.example +4 -0
- data/lib/kettle/jem/templates/gemfiles/modular/stringio/r3/v3.0.gemfile.example +5 -0
- data/lib/kettle/jem/templates/gemfiles/modular/stringio/r4/v3.0.gemfile.example +5 -0
- data/lib/kettle/jem/templates/gemfiles/modular/stringio/vHEAD.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/style.gemfile.example +33 -0
- data/lib/kettle/jem/templates/gemfiles/modular/style_local.gemfile.example +26 -0
- data/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example +34 -0
- data/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example +73 -0
- data/lib/kettle/jem/templates/gemfiles/modular/webrick/r4/v1.9.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/webrick/vHEAD.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r2/libs.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r2.3/libs.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r2.4/libs.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r2.6/libs.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r3/libs.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r3.1/libs.gemfile.example +5 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r4/libs.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/vHEAD.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs.gemfile.example +12 -0
- data/lib/kettle/jem/templates/lib/gem/version.rb.example +1 -0
- data/lib/kettle/jem/templates/lib/gem/version_gem.rb.example +1 -0
- data/lib/kettle/jem/templates/mise.toml.example +25 -0
- data/lib/kettle/jem/templates/mise.toml.no-osc.example +25 -0
- data/lib/kettle/jem/templates/parsers.toml.example +19 -0
- data/lib/kettle/jem/templates/readme/partials/basic_usage.md.example +28 -0
- data/lib/kettle/jem/templates/readme/partials/configuration.md.example +112 -0
- data/lib/kettle/jem/templates/readme/partials/synopsis.md.example +3 -0
- data/lib/kettle/jem/templates/shim/.github/workflows/current.yml.example +40 -0
- data/lib/kettle/jem/templates/shim/.rspec.example +5 -0
- data/lib/kettle/jem/templates/shim/.structuredmerge/kettle-jem.yml.example +28 -0
- data/lib/kettle/jem/templates/shim/CHANGELOG.md.example +9 -0
- data/lib/kettle/jem/templates/shim/Gemfile.example +14 -0
- data/lib/kettle/jem/templates/shim/README.md.example +25 -0
- data/lib/kettle/jem/templates/shim/Rakefile.example +8 -0
- data/lib/kettle/jem/templates/shim/gem.gemspec.example +45 -0
- data/lib/kettle/jem/templates/shim/lib/compat_require.rb.example +3 -0
- data/lib/kettle/jem/templates/shim/lib/entrypoint.rb.example +3 -0
- data/lib/kettle/jem/templates/shim/lib/version.rb.example +1 -0
- data/lib/kettle/jem/templates/shim/spec/shim_spec.rb.example +15 -0
- data/lib/kettle/jem/templates/shim/spec/spec_helper.rb.example +23 -0
- data/lib/kettle/jem/templates/sig/gem.rbs.example +1 -0
- data/lib/kettle/jem/templates/spec/README.md.example +28 -0
- data/lib/kettle/jem/templates/spec/spec_helper.rb.example +39 -0
- data/lib/kettle/jem/version.rb +5 -3
- data/lib/kettle/jem/version_gem.rb +8 -0
- data/lib/kettle/jem.rb +18540 -1517
- data/lib/kettle-jem.rb +2 -1
- data/sig/kettle/jem.rbs +8 -0
- data.tar.gz.sig +0 -0
- metadata +870 -32
- metadata.gz.sig +0 -0
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,1505 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
[![SemVer 2.0.0][📌semver-img]][📌semver] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog]
|
|
4
|
+
|
|
5
|
+
All notable changes to this project will be documented in this file.
|
|
6
|
+
|
|
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
|
|
18
|
+
|
|
19
|
+
## [Unreleased]
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
### Deprecated
|
|
26
|
+
|
|
27
|
+
### Removed
|
|
28
|
+
|
|
29
|
+
### Fixed
|
|
30
|
+
|
|
31
|
+
### Security
|
|
32
|
+
|
|
33
|
+
## [7.1.3] - 2026-08-11
|
|
34
|
+
|
|
35
|
+
- TAG: [v7.1.3][7.1.3t]
|
|
36
|
+
- COVERAGE: 93.99% -- 10757/11445 lines in 15 files
|
|
37
|
+
- BRANCH COVERAGE: 77.39% -- 4605/5950 branches in 15 files
|
|
38
|
+
- 18.01% documented
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
|
|
42
|
+
- Generate README star-history embeds with the revived star-history.dera.page service.
|
|
43
|
+
|
|
44
|
+
- Generate the README Star History section only for GitHub repositories with at least 150 stars.
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
|
|
48
|
+
- Handle comment-only YAML documents while pruning disabled engine workflow jobs.
|
|
49
|
+
|
|
50
|
+
- Remove disabled engine workflow badge references from generated README files.
|
|
51
|
+
|
|
52
|
+
- Gemspec templating now discards untouched Bundler allowed-push-host placeholders while preserving destination-specific metadata.
|
|
53
|
+
|
|
54
|
+
- Prepare profile synchronization now materializes newly added modular Gemfiles before Bundler bootstrapping.
|
|
55
|
+
|
|
56
|
+
- Generate modular changelog Gemfiles with the released kettle-changelog 1.x dependency floor.
|
|
57
|
+
|
|
58
|
+
- Synchronize monorepo subgem profiles with a template-owned Rakefile so legacy generated task blocks are replaced instead of duplicated.
|
|
59
|
+
|
|
60
|
+
- Preserve local Gemfile indentation when removing destination package entries from multiline word arrays.
|
|
61
|
+
|
|
62
|
+
- Add the generated frozen-string-literal comment to Ruby 3.1 extracted stdlib Gemfiles.
|
|
63
|
+
|
|
64
|
+
- Retain the MRI runtime floor when normalizing multi-engine README compatibility text.
|
|
65
|
+
|
|
66
|
+
- Include html-merge in generated StructuredMerge local dependency wiring.
|
|
67
|
+
|
|
68
|
+
## [7.1.2] - 2026-08-10
|
|
69
|
+
|
|
70
|
+
- TAG: [v7.1.2][7.1.2t]
|
|
71
|
+
- COVERAGE: 93.86% -- 10679/11378 lines in 15 files
|
|
72
|
+
- BRANCH COVERAGE: 77.21% -- 4569/5918 branches in 15 files
|
|
73
|
+
- 18.04% documented
|
|
74
|
+
|
|
75
|
+
### Added
|
|
76
|
+
|
|
77
|
+
- Template generated projects now receive kettle-changelog as a development dependency; kettle-changelog itself is excluded to avoid a self-dependency.
|
|
78
|
+
|
|
79
|
+
- Local templating dependency wiring now resolves the standalone kettle-changelog development tool alongside the Kettle development stack.
|
|
80
|
+
|
|
81
|
+
### Changed
|
|
82
|
+
|
|
83
|
+
- Align generated compatibility workflows with the Ruby 4.0 runtime floor by excluding unsupported TruffleRuby targets
|
|
84
|
+
|
|
85
|
+
- Resolve kettle-changelog through a Ruby-compatible modular development Gemfile instead of every generated gemspec.
|
|
86
|
+
|
|
87
|
+
- Keep the standalone kettle-changelog tool in a Ruby-compatible modular Gemfile with explicit local-path wiring, rather than adding it to every generated gemspec.
|
|
88
|
+
|
|
89
|
+
- Allow kettle-jem to resolve kettle-dev 3.x while retaining compatibility with supported kettle-dev 2.x releases.
|
|
90
|
+
|
|
91
|
+
- Allow kettle-jem to update independently within the StructuredMerge 7.1 dependency series instead of requiring every sibling gem to share its patch version.
|
|
92
|
+
|
|
93
|
+
### Fixed
|
|
94
|
+
|
|
95
|
+
- Preserve enabled engine workflow jobs when pruning disabled jobs from generated YAML
|
|
96
|
+
|
|
97
|
+
- Generate README compatibility prose from the configured Ruby engine set
|
|
98
|
+
|
|
99
|
+
- Honor disabled README integrations after destination content is merged
|
|
100
|
+
|
|
101
|
+
- Temporarily pin generated RuboCop Packaging style Gemfiles to the nested-project config-root fix.
|
|
102
|
+
|
|
103
|
+
- Keep scoped kettle-jem template runs from applying unselected post-template mutations.
|
|
104
|
+
|
|
105
|
+
- Preserve destination-only gemspec metadata when the template does not define that key.
|
|
106
|
+
|
|
107
|
+
- Keep aggregate standard-library Gemfile references available when Ruby-floor pruning would otherwise remove their targets, and generate Appraisal Gemfiles during full kettle-jem installs.
|
|
108
|
+
|
|
109
|
+
## [7.1.1] - 2026-08-08
|
|
110
|
+
|
|
111
|
+
- TAG: [v7.1.1][7.1.1t]
|
|
112
|
+
- COVERAGE: 93.95% -- 10635/11320 lines in 15 files
|
|
113
|
+
- BRANCH COVERAGE: 77.25% -- 4549/5889 branches in 15 files
|
|
114
|
+
- 18.04% documented
|
|
115
|
+
|
|
116
|
+
### Added
|
|
117
|
+
|
|
118
|
+
- Template NDJSON summaries now distinguish checksum write bypasses, planned
|
|
119
|
+
files left unchanged after rendering, and changed destination files.
|
|
120
|
+
- Source-template fingerprinting now uses an explicit renderer-semantics
|
|
121
|
+
version, so unrelated Kettle-Jem code changes do not invalidate every
|
|
122
|
+
destination checksum record.
|
|
123
|
+
|
|
124
|
+
- `kettle-jem-deps-floor` now keeps a 30-day persistent per-gem RubyGems
|
|
125
|
+
version cache and honors `kettle-release` cache-bust markers, so recently
|
|
126
|
+
released gems refresh while untouched dependency checks can survive transient
|
|
127
|
+
RubyGems API failures.
|
|
128
|
+
- Generated spec harness files now document the RSpec helpers made available by
|
|
129
|
+
`kettle-test`.
|
|
130
|
+
- Generated main Gemfiles now include `kettle-family`, except when templating
|
|
131
|
+
the `kettle-family` gem itself.
|
|
132
|
+
- Monorepo subproject Gemfiles now use the repository package path when
|
|
133
|
+
generating direct sibling local-path wiring, so truthy family workspace envs
|
|
134
|
+
resolve siblings from the member root instead of the repository root.
|
|
135
|
+
- Added `.structuredmerge/kettle-jem.lock` for template application state and
|
|
136
|
+
checksum-based template skipping, with `--checksums` modes and
|
|
137
|
+
`--ignore-checksums` as an alias for `--checksums=off`.
|
|
138
|
+
- Documented checksum skip modes and the per-destination `input_fingerprint`
|
|
139
|
+
used by template-based skipping.
|
|
140
|
+
- `kettle-jem` now uses the shared `kettle-ndjson` event toolkit for NDJSON
|
|
141
|
+
progress stream filtering, emission, recording, and phase timing.
|
|
142
|
+
- Added `KJ_GH_ORG` as a GitHub-specific repository-owner override for
|
|
143
|
+
scaffolded GitHub URLs, while keeping generic `FORGE_ORG` at highest
|
|
144
|
+
precedence so personal `KJ_GH_USER` maintainer settings do not seed org-owned
|
|
145
|
+
repos.
|
|
146
|
+
- Changelog replay now records a cursor in the managed `kettle-jem` config
|
|
147
|
+
state so first-time templated projects receive only an initial templating
|
|
148
|
+
changelog entry, while previously templated projects replay only missed
|
|
149
|
+
template-impacting entries.
|
|
150
|
+
- Curated Bundler binstub generation now includes `kettle-gha-pins` when it is
|
|
151
|
+
present in the destination bundle.
|
|
152
|
+
- Generated gemspec templates now include `anonymous_loader` as a development
|
|
153
|
+
dependency, and version spec normalization uses it to execute generated
|
|
154
|
+
`version.rb` files for coverage without redefining package constants.
|
|
155
|
+
- Added a transfer changelog query API so family tooling can report how many
|
|
156
|
+
template-impacting changelog replay entries a project has not yet applied.
|
|
157
|
+
- Generated documentation tooling now includes `yard-lint` and a
|
|
158
|
+
`.yard-lint.yml` config for kettle-dev's documentation lint task.
|
|
159
|
+
- RubyForum tags are now configurable through family/project kettle-jem config
|
|
160
|
+
and ENV, so templated gemspecs set `mailing_list_uri` and support docs point
|
|
161
|
+
to tagged RubyForum pages instead of GitHub Discussions.
|
|
162
|
+
|
|
163
|
+
- kettle-jem-template-20260727-001 - Spec harness documentation now lists the
|
|
164
|
+
RSpec helpers provided by `kettle-test`.
|
|
165
|
+
|
|
166
|
+
- Transfer changelog replay now supports destination applicability filters and filter-aware status reporting.
|
|
167
|
+
|
|
168
|
+
### Changed
|
|
169
|
+
|
|
170
|
+
- Runtime dependency metadata now requires `kettle-ndjson` 0.1.3 or newer and
|
|
171
|
+
`kettle-rb` 0.1.7 or newer.
|
|
172
|
+
- Gemspec package manifest merging now normalizes legacy destination `Dir[...]`
|
|
173
|
+
globs into the generated package-helper shape, preventing duplicated
|
|
174
|
+
`spec.files` assignments after templating.
|
|
175
|
+
- Runtime dependency metadata now requires `kettle-gha-pins` 0.3.3 or newer.
|
|
176
|
+
- Generated main Gemfiles now require `kettle-family` 1.2.1 or newer, so
|
|
177
|
+
gem-root family commands use the reset helper that runs outside broken
|
|
178
|
+
member bundles.
|
|
179
|
+
- Generated main Gemfiles now require `nomono` 1.1.1 or newer.
|
|
180
|
+
- Generated Ruby workflow templates now use `appraisal-rb/setup-ruby-flash` for
|
|
181
|
+
Ruby setup, including the workflow summary improvements for resolved Ruby
|
|
182
|
+
versions and head-build revisions.
|
|
183
|
+
- Generated Ruby workflow templates now pin the setup-ruby-flash revision that
|
|
184
|
+
supports appraisal-only setup without installing the main Gemfile bundle.
|
|
185
|
+
- kettle-jem-template-20260728-001 - Generated Ruby workflows now use clearer
|
|
186
|
+
setup-ruby-flash planning and can prepare appraisal-only jobs without
|
|
187
|
+
installing the main Gemfile bundle.
|
|
188
|
+
|
|
189
|
+
- The `kettle-jem` executable startup header is now shown only when
|
|
190
|
+
`--verbose` is passed, while `version`, `-v`, and `--version` still print
|
|
191
|
+
just the executable version and exit.
|
|
192
|
+
- Transfer changelog replay now reads sectioned Markdown structurally and
|
|
193
|
+
applies transferred entries to the matching destination changelog section.
|
|
194
|
+
- Transfer changelog entries now use concise destination-project wording,
|
|
195
|
+
focusing on what maintainers see after templating.
|
|
196
|
+
- `kettle-jem-deps-floor --write` now commits its managed dependency floor
|
|
197
|
+
updates by default, with `--no-commit` available for callers that need the
|
|
198
|
+
previous uncommitted write behavior.
|
|
199
|
+
- `kettle-jem-deps-floor` now labels text reports with dry-run/write mode and
|
|
200
|
+
prints the exact `--write` hint when stale floors are found in dry-run mode.
|
|
201
|
+
- `kettle-jem-deps-floor --write` now stages dependency floor updates correctly
|
|
202
|
+
when `kettle-jem` is nested below a monorepo Git worktree root.
|
|
203
|
+
- `kettle-jem-workflow-pins` now labels text reports with dry-run/write mode
|
|
204
|
+
and prints the exact `--write` hint when stale workflow pins are found in
|
|
205
|
+
dry-run mode.
|
|
206
|
+
- `kettle-jem-workflow-pins --write` now commits managed workflow pin updates
|
|
207
|
+
by default, with `--no-commit` available for uncommitted writes.
|
|
208
|
+
- `kettle-jem-workflow-pins` now detects and updates stale version comments
|
|
209
|
+
when a pinned GitHub Action SHA is already current.
|
|
210
|
+
- Generated Kettle local Gemfiles now resolve `KETTLE_DEV_DEV=true` to the
|
|
211
|
+
`kettle-dev` workspace family root instead of sibling directories directly
|
|
212
|
+
under `~/src/my`.
|
|
213
|
+
- Runtime dependency metadata now requires `kettle-gha-pins` 0.3.1 or newer.
|
|
214
|
+
- `bin/kettle-jem-workflow-pins` now calls the shared `kettle-gha-pins` API
|
|
215
|
+
directly for cache, GitHub ref resolution, and upgrade planning instead of
|
|
216
|
+
shelling out to `kettle-gha-sha-pins`.
|
|
217
|
+
- Templating now reuses static, shareable regexes and small lookup lists in the
|
|
218
|
+
recipe dispatch and template-policy paths instead of reallocating them during
|
|
219
|
+
each recipe execution.
|
|
220
|
+
- Opt-in recipe-planning Ractor mode now batches worker-safe recipes across a
|
|
221
|
+
bounded chunked worker pool instead of spawning one Ractor per recipe, and it
|
|
222
|
+
keeps parser/merge paths with known unshareable dependency state on the main
|
|
223
|
+
Ractor.
|
|
224
|
+
- Templating can now opt into thread-backed recipe planning and file work with
|
|
225
|
+
`KETTLE_JEM_THREAD_WORKERS` and `KETTLE_JEM_THREAD_FILE_WORKERS`, providing a
|
|
226
|
+
benchmarkable alternative to main-thread and Ractor execution.
|
|
227
|
+
- Templating now supports benchmark-oriented skip controls for external
|
|
228
|
+
post-template work: `--skip-drift-check`, `--skip-rubocop-gradual`, and
|
|
229
|
+
`--skip-binstubs`, with matching `KETTLE_JEM_SKIP_*` environment variables.
|
|
230
|
+
- Templating reports now persist phase duration metadata, install command steps
|
|
231
|
+
record elapsed duration, and benchmark summaries show recipe-phase time apart
|
|
232
|
+
from external command time.
|
|
233
|
+
- The benchmark harness now supports `KETTLE_JEM_BENCHMARK_MODE=raw-template`
|
|
234
|
+
to compare scoped raw `TemplateTask` runs separately from the default
|
|
235
|
+
install-orchestrated one-shot template flow.
|
|
236
|
+
- The benchmark harness now defaults worker counts to `1,min(4,n/2),min(8,n/2),n`
|
|
237
|
+
instead of only `min(2,n)`, giving higher-core machines a useful default
|
|
238
|
+
scaling matrix while keeping low-core hosts bounded.
|
|
239
|
+
- Benchmark summaries now show each variant's median percentage delta against
|
|
240
|
+
`baseline-main` immediately after the variant name.
|
|
241
|
+
- README recipe reports now include sub-step timing metadata, and benchmark
|
|
242
|
+
results summarize the baseline README timing breakdown.
|
|
243
|
+
|
|
244
|
+
- Generated gemspec templates now require `kettle-dev` >= 2.5.10 and declare
|
|
245
|
+
`kettle-dev` literally so dependency floor automation can keep it current.
|
|
246
|
+
- Generated `.rspec` files now exclude `spec/tmp/**/*_spec.rb` so temporary
|
|
247
|
+
fixture projects do not get discovered during member-level spec runs.
|
|
248
|
+
- kettle-jem now requires `kettle-rb` >= 0.1.4.
|
|
249
|
+
- Refreshed generated GitHub Actions workflow pins for `ruby/setup-ruby` and
|
|
250
|
+
CodeQL actions.
|
|
251
|
+
- Gemfile and Appraisals template merge adapter failures now fail closed instead
|
|
252
|
+
of silently accepting template content.
|
|
253
|
+
- Generated pull request engine workflows now keep JRuby and TruffleRuby
|
|
254
|
+
coverage available via branch opt-in prefixes: `jruby/*` runs JRuby
|
|
255
|
+
workflows, `truffleruby/*` runs TruffleRuby workflows, and `engines/*` runs
|
|
256
|
+
all engine workflows. Other pull request branches continue to run MRI checks
|
|
257
|
+
without the alternate engine jobs.
|
|
258
|
+
- Generated CONTRIBUTING docs now explain the `jruby/*`, `truffleruby/*`, and
|
|
259
|
+
`engines/*` branch prefixes that opt pull requests into alternate Ruby engine
|
|
260
|
+
workflows.
|
|
261
|
+
- Generated workflow templates now evaluate skip-CI commit messages only for
|
|
262
|
+
push events, and mixed head/dependency-head templates gate JRuby and
|
|
263
|
+
TruffleRuby jobs before runner provisioning on pull requests.
|
|
264
|
+
- Generated standalone JRuby and TruffleRuby workflow templates now group their
|
|
265
|
+
push skip checks before their pull request branch guards so ordinary pull
|
|
266
|
+
request branches do not run alternate engine jobs.
|
|
267
|
+
- Template apply now restores executable bits on generated Git hook scripts.
|
|
268
|
+
- `require "kettle/jem"` now defers parser-backed template runtime dependencies
|
|
269
|
+
until template execution so Rake task installation does not load
|
|
270
|
+
`tree_sitter_language_pack` before RuboCop loads `parser`.
|
|
271
|
+
- `require "kettle/jem"` no longer directly loads `version_gem` by default;
|
|
272
|
+
require `kettle/jem/version_gem` for the optional `VersionGem::Basic`
|
|
273
|
+
extension.
|
|
274
|
+
- Ruby, engine, Rails, RuboCop, and RuboCop LTS compatibility choices now come
|
|
275
|
+
from `Kettle::Rb::CompatMatrix` in `kettle-rb`.
|
|
276
|
+
- Generated `mise.toml` files no longer export `RUBOCOP_LTS_LOCAL=false`;
|
|
277
|
+
local RuboCop-LTS mode is now controlled by setting the variable only when a
|
|
278
|
+
local checkout should be used.
|
|
279
|
+
- Generated style Gemfiles now require `rubocop-lts-rspec` >= 1.0.4.
|
|
280
|
+
- kettle-jem now declares and loads the direct `rbs` runtime dependency used
|
|
281
|
+
by its RBS signature cleanup logic.
|
|
282
|
+
- Version-gem bootstrapping now preserves projects that load `version_gem`
|
|
283
|
+
through a dedicated `lib/<entrypoint>/version_gem.rb` file instead of forcing
|
|
284
|
+
it back into the default entrypoint.
|
|
285
|
+
- Version-gem bootstrapping now updates existing generated version specs to
|
|
286
|
+
require a dedicated `lib/<entrypoint>/version_gem.rb` entrypoint when present.
|
|
287
|
+
- Gem templates and generated root Gemfiles now require `kettle-dev` >= 2.3.5.
|
|
288
|
+
- Gem templates and generated root Gemfiles now require `kettle-test` >= 2.0.11.
|
|
289
|
+
- Gem templates and generated root Gemfiles now require `turbo_tests2` >= 3.1.14.
|
|
290
|
+
- Generated gemspecs and optional Gemfiles now require `stone_checksums` >= 1.0.6.
|
|
291
|
+
- Shim gemspec templates now include `LICENSE.md`, matching the generated
|
|
292
|
+
license template filename, instead of the nonexistent `LICENSE.txt`.
|
|
293
|
+
- Monorepo subgem package templating now includes the main `Gemfile` so existing
|
|
294
|
+
generated gems receive the `nomono` bootstrap required by local modular
|
|
295
|
+
Gemfiles during templating-mode CI.
|
|
296
|
+
- Templating now applies transferable kettle-jem changelog entries to destination
|
|
297
|
+
`CHANGELOG.md` files using stable `kettle-jem-template-YYYYMMDD-NNN` IDs.
|
|
298
|
+
- Generated gemspecs now support explicit extra package-file globs via
|
|
299
|
+
`gemspec.package_files.include` in `.structuredmerge/kettle-jem.yml`.
|
|
300
|
+
- Version-gem templates now generate one package-level RBS file at
|
|
301
|
+
`sig/<entrypoint>.rbs` and migrate legacy nested
|
|
302
|
+
`sig/<entrypoint>/version.rbs` files into it.
|
|
303
|
+
- Generated gemspec package manifests now omit repository-only governance docs,
|
|
304
|
+
signing certs, recursive signature directories, split license files, and
|
|
305
|
+
`spec.extra_rdoc_files` by default.
|
|
306
|
+
- Generated templates now require the released floors for `kettle-dev` 2.3.0,
|
|
307
|
+
`kettle-drift` 1.0.5, `kettle-test` 2.0.9, `nomono` 1.0.8, and
|
|
308
|
+
`token-resolver` 2.0.4.
|
|
309
|
+
- Generated gemspecs now require `appraisal2` >= 3.1.4.
|
|
310
|
+
- Generated style Gemfiles now require `appraisal2-rubocop` >= 1.0.0.
|
|
311
|
+
|
|
312
|
+
- Generated optional Gemfiles no longer duplicate the gemspec's direct
|
|
313
|
+
`stone_checksums` development dependency.
|
|
314
|
+
|
|
315
|
+
- Quiet templating orchestration now passes quiet flags and debug-suppressing
|
|
316
|
+
environment to Bundler commands.
|
|
317
|
+
- Generated Appraisal guidance now defaults to `bin/rake appraisal:generate`,
|
|
318
|
+
reserving `appraisal:update` for intentional lock refreshes.
|
|
319
|
+
- Gemspec templating now raises preserved `rspec-stubbed_env` dependencies to
|
|
320
|
+
`>= 1.0.6`.
|
|
321
|
+
- Generated documentation Gemfiles now require `yard-fence` >= 0.9.6,
|
|
322
|
+
`yard-timekeeper` >= 0.2.3, and `yard-yaml` >= 0.2.3.
|
|
323
|
+
- kettle-jem now requires `kettle-rb` >= 0.1.2.
|
|
324
|
+
|
|
325
|
+
- kettle-jem-template-20260716-002 - Gemspecs now ship fewer repository-only
|
|
326
|
+
files, reducing package noise for downstream packagers.
|
|
327
|
+
|
|
328
|
+
- kettle-jem-template-20260720-002 - Development Gemfiles now use the released
|
|
329
|
+
`tree_sitter_language_pack` gem 1.13.3 or newer by default.
|
|
330
|
+
- kettle-jem-template-20260720-003 - StructuredMerge Git diff driver config now
|
|
331
|
+
uses the installed `smorg-rb` driver command.
|
|
332
|
+
- kettle-jem-template-20260720-005 - README Support & Community links now
|
|
333
|
+
include RubyForum.
|
|
334
|
+
|
|
335
|
+
- kettle-jem-template-20260725-001 - Release pull request branches beginning
|
|
336
|
+
with `feature/release` now run JRuby and TruffleRuby workflows.
|
|
337
|
+
- kettle-jem-template-20260725-002 - Version specs now use `anonymous_loader` to
|
|
338
|
+
cover `version.rb` without redefining constants, or are removed when version
|
|
339
|
+
specs are not managed for the project.
|
|
340
|
+
|
|
341
|
+
- Recognize legacy git ls-files spec.files pipelines when merging gemspec templates.
|
|
342
|
+
|
|
343
|
+
- Replace legacy byebug-named Gemfile dependencies with debug during templating.
|
|
344
|
+
|
|
345
|
+
- Generated README gem dashboard links now use ClickGems instead of BestGems.
|
|
346
|
+
|
|
347
|
+
- Clarify that transferable changelog entries are destination release notes, not internal template metadata.
|
|
348
|
+
|
|
349
|
+
- kettle-jem-template-20260801-001 - Generated README gem dashboard links now
|
|
350
|
+
use ClickGems instead of BestGems.
|
|
351
|
+
|
|
352
|
+
- Bootstrap direct-versus-modular dependency conflicts into a reviewable dependency_conflicts.resolve list, including keep_both for compatible overlapping ranges.
|
|
353
|
+
|
|
354
|
+
- Scope direct-versus-modular conflict discovery to active top-level fragments and x_std_libs; framework appraisal matrix files remain under appraisal resolution.
|
|
355
|
+
|
|
356
|
+
- Record explicit modular dependency removals and compatible keep_both decisions so repeated templating remains deterministic.
|
|
357
|
+
|
|
358
|
+
### Fixed
|
|
359
|
+
|
|
360
|
+
- Templating now removes the obsolete `tree_sitter_language_pack` entry from
|
|
361
|
+
managed StructuredMerge local-gem lists, keeping `STRUCTUREDMERGE_DEV` from
|
|
362
|
+
resolving it under the sibling gems directory.
|
|
363
|
+
- Unset optional author ORCIDs now resolve to an empty citation value rather
|
|
364
|
+
than leaking their template token and aborting templating.
|
|
365
|
+
- Gemspec package manifest merging now recognizes the historical generated
|
|
366
|
+
`Dir[...] + [...]` shape structurally, retains legitimate destination globs,
|
|
367
|
+
and removes only obsolete generated `certs` and `sig` package helpers.
|
|
368
|
+
|
|
369
|
+
- Prepare every modular Gemfile referenced by the generated Gemfile before Bundler bootstraps templating dependencies.
|
|
370
|
+
|
|
371
|
+
- Preserve an existing main Gemfile source while applying templates.
|
|
372
|
+
|
|
373
|
+
- Use bundle install when a legacy lockfile lacks the required templating bootstrap gems.
|
|
374
|
+
|
|
375
|
+
- Respect per-file Ruby merge settings when applying templates.
|
|
376
|
+
|
|
377
|
+
- Canonicalize legacy release headings before replaying transfer changelog entries.
|
|
378
|
+
|
|
379
|
+
- Generated CI workflows now retry compatibility dependency installation while newly published runtime floors propagate through gem sources.
|
|
380
|
+
|
|
381
|
+
- Template merges now normalize managed RSpec block bindings structurally, preventing invalid mixed parameter names.
|
|
382
|
+
|
|
383
|
+
- Template runtime and config synchronization now normalize invalid underscore hostnames in generated documentation and gemspec metadata.
|
|
384
|
+
|
|
385
|
+
- Generated organization README logos now use GitHub's stable avatar endpoint when no Galtzo-hosted asset is guaranteed.
|
|
386
|
+
|
|
387
|
+
- Preserve flat Ruby entrypoints and avoid duplicating equivalent version requires during template bootstrap.
|
|
388
|
+
|
|
389
|
+
- Honor explicit VersionGem disablement and default supported Ruby gems to VersionGem during templating.
|
|
390
|
+
|
|
391
|
+
- Prune stale template lock records after managed files are removed.
|
|
392
|
+
|
|
393
|
+
- Avoid recursive project fact discovery while evaluating transfer changelog filters during templating.
|
|
394
|
+
|
|
395
|
+
- Templating now removes duplicated legacy configuration comments and repeated generated SimpleCov usage guidance from destinations.
|
|
396
|
+
|
|
397
|
+
- Generated RubyGems download badges now use Shields.io total downloads instead of the discontinued download-rank endpoint.
|
|
398
|
+
|
|
399
|
+
- Generated documentation Gemfiles now correctly document that `yard-lint`
|
|
400
|
+
1.10 requires Ruby 3.3 or newer; projects testing older Rubies must keep
|
|
401
|
+
documentation tooling out of those targeted appraisals.
|
|
402
|
+
|
|
403
|
+
- Main Gemfile templating now removes stale direct `tree_sitter_language_pack`
|
|
404
|
+
declarations when the current templates own that dependency through the
|
|
405
|
+
modular templating Gemfile, preventing duplicate Bundler requirements during
|
|
406
|
+
re-templating.
|
|
407
|
+
- Kettle config templating now resolves known template tokens retained in
|
|
408
|
+
destination YAML values before the unresolved-token guard runs, while still
|
|
409
|
+
failing unknown token leaks.
|
|
410
|
+
- Git preflight now honors `KETTLE_JEM_GIT_LOCK` /
|
|
411
|
+
`KETTLE_JEM_GIT_COMMIT_LOCK`, preventing `.git/index.lock` races when
|
|
412
|
+
family-level monorepo templating runs many members concurrently.
|
|
413
|
+
- Old-Ruby version spec normalization now removes the managed VersionGem shared
|
|
414
|
+
example when the destination cannot depend on VersionGem.
|
|
415
|
+
- Generated gemspec package file enumeration now honors the destination Ruby
|
|
416
|
+
floor, so old-Ruby and JRuby workflows can parse gemspecs during Bundler
|
|
417
|
+
install while modern gems keep modern helper code.
|
|
418
|
+
- kettle-jem-template-20260729-002 - VersionGem bootstrap now preserves
|
|
419
|
+
and templates dedicated `version_gem.rb` entrypoints even when the gemspec
|
|
420
|
+
dependency is intentionally omitted, and generated anonymous-loader specs
|
|
421
|
+
cover both `version.rb` and `version_gem.rb`.
|
|
422
|
+
- `kettle-jem prepare` now skips release lockfile reset while local path
|
|
423
|
+
development env is active, so self-templating unreleased template stacks does
|
|
424
|
+
not fail release validation before templating can run.
|
|
425
|
+
- `kettle-jem prepare` now keeps templating enabled for bootstrap bundle
|
|
426
|
+
commands while local path development env is active.
|
|
427
|
+
- `kettle-jem install` setup commands now also preserve templating when local
|
|
428
|
+
path development env is active.
|
|
429
|
+
- `kettle-jem install` now skips release-style bundle lock normalization while
|
|
430
|
+
local path development env is active, so unreleased monorepo siblings are not
|
|
431
|
+
resolved as registry gems during self-templating.
|
|
432
|
+
- Generated local templating gemfiles now activate the lockfile's `nomono`
|
|
433
|
+
version before requiring `nomono/bundler`, avoiding early activation conflicts
|
|
434
|
+
when a newer `nomono` is installed locally.
|
|
435
|
+
- Generated local templating gemfiles now keep the `kettle-dev` local override
|
|
436
|
+
available even when it is already declared transitively by local `kettle-jem`.
|
|
437
|
+
- Generated dep-heads workflows now run TruffleRuby jobs with current RubyGems
|
|
438
|
+
and Bundler, avoiding setup failures before the test suite starts.
|
|
439
|
+
- `kettle-jem-workflow-pins --write` now refreshes GitHub Actions release
|
|
440
|
+
metadata instead of trusting a fresh persistent cache entry, so newly
|
|
441
|
+
published action releases are detected immediately.
|
|
442
|
+
- `kettle-jem-workflow-pins` no longer downgrades an existing version comment
|
|
443
|
+
such as `# v2.0` to an equivalent but less specific evergreen tag like
|
|
444
|
+
`# v2`.
|
|
445
|
+
- kettle-jem-template-20260728-002 - Generated RuboCop configs now ignore the
|
|
446
|
+
same `gemfiles/vendor/bundle` tree as `.gitignore`, so vendored dependency
|
|
447
|
+
installs are not reported as project lint debt.
|
|
448
|
+
- Existing generated `spec/spec_helper.rb` files now receive the
|
|
449
|
+
`kettle-test` helper documentation comment when structural merge preserves
|
|
450
|
+
their existing `require "kettle/test/rspec"` line.
|
|
451
|
+
- Version spec normalization now removes managed version specs when
|
|
452
|
+
`version_gem` is disabled or incompatible with the project's runtime Ruby
|
|
453
|
+
floor.
|
|
454
|
+
- Templating plan reports now include per-recipe duration metadata, template
|
|
455
|
+
planning deduplicates destination and template-source file reads, and runtime
|
|
456
|
+
loading is reduced to explicit main-Ractor extension points. A disabled
|
|
457
|
+
classified planning strategy now identifies worker-safe recipes, can opt into
|
|
458
|
+
experimental Ractor workers with `KETTLE_JEM_RACTOR_WORKERS`, records
|
|
459
|
+
execution counters, and preserves sequential report parity in preparation for
|
|
460
|
+
Ractor-based recipe planning.
|
|
461
|
+
- Added a `benchmarks/` harness that templates a reset Bundler gem skeleton and
|
|
462
|
+
compares classified planning and phase-gated file work with and without
|
|
463
|
+
opt-in Ractor workers. The harness now defaults `KJ_MIN_RUBY` to `1.8.7` so
|
|
464
|
+
benchmark runs exercise legacy workflow and gemfile generation through the
|
|
465
|
+
supported one-shot `template --accept-config` flow, prints progress while
|
|
466
|
+
long benchmark matrices run, records planning and file-worker execution
|
|
467
|
+
counters for both Ractors and threads, and records the latest benchmark
|
|
468
|
+
outcome in a committed results README.
|
|
469
|
+
- Apply now routes recipe report mutations through explicit write intents and
|
|
470
|
+
phase-gated per-file work units, preparing the file-processing path for
|
|
471
|
+
opt-in `KETTLE_JEM_RACTOR_FILE_WORKERS` execution without changing phase gates
|
|
472
|
+
or final filesystem outcomes.
|
|
473
|
+
- The former monolithic thin-slice spec has been split into behavior-named
|
|
474
|
+
integration, system, and end-to-end specs so the project test harness can
|
|
475
|
+
parallelize templating coverage more effectively.
|
|
476
|
+
- Generated README Support & Community rows now include a RubyForum help badge.
|
|
477
|
+
- Generated READMEs can now render template-managed corporate sponsor logos
|
|
478
|
+
from `readme.corporate_sponsors` config or family-provided sponsorship data.
|
|
479
|
+
- `kettle-jem` now supports `--events` for newline-delimited JSON progress
|
|
480
|
+
events, including named event type filters via comma-separated
|
|
481
|
+
`--events=TYPE,...` values, phase events, per-recipe template progress,
|
|
482
|
+
post-apply and command-step events, diagnostics, and summary events for family
|
|
483
|
+
orchestration consumers.
|
|
484
|
+
- Generated CI workflow templates now cache `.rspec_status` with explicit
|
|
485
|
+
per-workflow keys so `kettle-test` / `turbo_tests2` can reuse timing data
|
|
486
|
+
across MRI, JRuby, TruffleRuby, coverage, heads, dep-heads, and framework
|
|
487
|
+
matrix runs.
|
|
488
|
+
- Generated JRuby and TruffleRuby workflow templates now run when pull request
|
|
489
|
+
head branches start with `feature/release`, so `kettle-release` CI monitoring
|
|
490
|
+
does not treat intentionally skipped engine workflows as release failures.
|
|
491
|
+
- Generated dep-heads workflows now document why every engine job runs directly
|
|
492
|
+
from `gemfiles/dep_heads.gemfile`, making that generated Appraisal file
|
|
493
|
+
required checked-in output for the workflow.
|
|
494
|
+
- JRuby 9.2 workflow templates now use the legacy-engine bundle install path
|
|
495
|
+
instead of `ruby/setup-ruby` bundler caching so old Bundler does not fail
|
|
496
|
+
setup against gem servers without the full legacy index.
|
|
497
|
+
- Gemspec templating now structurally merges destination `spec.files`
|
|
498
|
+
collection entries with template package entries so project-specific
|
|
499
|
+
packaged files are not lost when the template rewrites the generated gemspec
|
|
500
|
+
structure.
|
|
501
|
+
- Main Gemfile templating now removes repeated direct sibling execution blocks
|
|
502
|
+
left behind by older `nomono` bootstrap output when applying the simplified
|
|
503
|
+
`require "nomono/bundler"` loader.
|
|
504
|
+
- Gemspec templating now restores additional legacy Prism policy behavior for
|
|
505
|
+
destination-only metadata fields, Bundler `git ls-files` package declarations,
|
|
506
|
+
and empty development-dependency section cleanup after runtime dependency
|
|
507
|
+
promotion.
|
|
508
|
+
- Added the repo-local `bin/kettle-jem-workflow-pins` maintenance script to
|
|
509
|
+
update the GitHub Actions SHA pin index used by generated workflow templates
|
|
510
|
+
via `kettle-gha-sha-pins`.
|
|
511
|
+
- Generated local Gemfile templates now use a simple `require "nomono/bundler"`
|
|
512
|
+
loader, with a provider-relative loader for `nomono` itself, instead of
|
|
513
|
+
emitting runtime lockfile parsing or explicit gem activation ceremony.
|
|
514
|
+
- Generated root Gemfiles now declare `nomono` with a plain dependency line
|
|
515
|
+
requiring `nomono` 1.1.0 or newer, and retemplating removes the older
|
|
516
|
+
`nomono_requirements` helper block.
|
|
517
|
+
- Added the repo-local `bin/kettle-jem-deps-floor` maintenance script to scan
|
|
518
|
+
dependency-bearing kettle-jem templates and update their dependency floors.
|
|
519
|
+
- `kettle-jem install` now generates a curated `bin/appraisal` binstub for the
|
|
520
|
+
`appraisal2` executable.
|
|
521
|
+
- Added a default-off `readme.badges.fossa` template option for managed FOSSA
|
|
522
|
+
README badges.
|
|
523
|
+
- Added explicit `ruby.test_minimum` template configuration, defaulting to
|
|
524
|
+
Ruby 2.4, for generated CI workflow and Appraisal floors.
|
|
525
|
+
- Added top-level `integrations` configuration for disabling coverage
|
|
526
|
+
integrations (`codecov`, `coveralls`, `qlty`) and the SkyWalking Eyes license
|
|
527
|
+
check integration across README badges, upload/check workflow steps, packaged
|
|
528
|
+
config/workflow templates, and cleanup of existing config files or workflows.
|
|
529
|
+
- kettle-jem's own `mise` environment now enables templating dependencies so
|
|
530
|
+
templating-only floors are validated in the normal gem bundle.
|
|
531
|
+
- Restored `kettle-jem prepare` as a pre-flight dependency bootstrap mode for
|
|
532
|
+
applying the minimal templating Gemfile payload before full templating.
|
|
533
|
+
- Gem templates and generated root Gemfiles now require `kettle-dev` >= 2.2.24.
|
|
534
|
+
- Version-gem bootstrapping now removes stale top-level RBS `VERSION`
|
|
535
|
+
declarations and generated style workflows load the RBS environment so
|
|
536
|
+
duplicate declarations fail in CI.
|
|
537
|
+
- Version-gem bootstrapping now removes literal `bundle gem` scaffold RBS
|
|
538
|
+
`VERSION` declarations before writing the managed `version.rbs` signature.
|
|
539
|
+
- Added a destructive `shim` template profile for compatibility wrapper gems.
|
|
540
|
+
Shim templating accepts the replacement gem via `--shimmed-gem` or
|
|
541
|
+
`KETTLE_JEM_SHIMMED_GEM`, generates only the shim runtime/docs/specs/CI, and
|
|
542
|
+
deletes obsolete implementation code, behavior specs, workflows, and gemfiles.
|
|
543
|
+
|
|
544
|
+
- kettle-jem-template-20260726-001 - Projects now include an optional
|
|
545
|
+
`yard:lint` task and YARD lint configuration for documentation quality checks.
|
|
546
|
+
|
|
547
|
+
- Generated coverage workflows now treat Coveralls, QLTY, and Codecov uploads
|
|
548
|
+
as optional so third-party coverage outages do not fail CI while the internal
|
|
549
|
+
coverage threshold check remains authoritative.
|
|
550
|
+
- Generated version files now document their version namespace and constants,
|
|
551
|
+
reducing warning-only `yard-lint` output in templated gems.
|
|
552
|
+
- Existing managed checksum state is now migrated out of the user-managed
|
|
553
|
+
kettle-jem config and into `.structuredmerge/kettle-jem.lock` automatically.
|
|
554
|
+
- Legacy root `.kettle-jem.lock` files are now moved to
|
|
555
|
+
`.structuredmerge/kettle-jem.lock` automatically.
|
|
556
|
+
- Changelog transfer replay now reads migrated `.structuredmerge/kettle-jem.lock`
|
|
557
|
+
state, so projects do not fall back to first-template changelog behavior after
|
|
558
|
+
checksum-state migration.
|
|
559
|
+
- Template checksum fingerprints now hash template token values without writing
|
|
560
|
+
those values into `.structuredmerge/kettle-jem.lock`.
|
|
561
|
+
- Generated `.yard-lint.yml` files now use yard-lint's current schema for
|
|
562
|
+
severity gating and tag ordering, so documentation lint can boot before docs
|
|
563
|
+
are regenerated.
|
|
564
|
+
- The packaged transfer changelog is now actually grouped by changelog section,
|
|
565
|
+
while replay still treats entries as a key-sorted stack for cursor tracking.
|
|
566
|
+
- Changelog replay now corrects stale transfer entries already present in
|
|
567
|
+
released changelog sections by stable transfer ID, preserving release metadata
|
|
568
|
+
and project-authored entries.
|
|
569
|
+
- Monorepo templating now serializes local Git driver configuration with the
|
|
570
|
+
shared family Git operation lock and retries transient Git lock conflicts,
|
|
571
|
+
preventing parallel `git config --local` workers from racing on `.git/config`.
|
|
572
|
+
- Changelog replay now cross-checks stored replay cursors against the
|
|
573
|
+
destination changelog contents, so legacy templated projects whose cursor was
|
|
574
|
+
stamped before transfer entries landed receive the missing transfer entries
|
|
575
|
+
on the next template run.
|
|
576
|
+
|
|
577
|
+
- Raised the `kettle-ndjson` runtime dependency floor to v0.1.1 so template
|
|
578
|
+
tooling can install it on the Ruby 2.4+ Kettle support floor.
|
|
579
|
+
|
|
580
|
+
- The `kettle-jem` executable now uses normal `require` loading and suppresses
|
|
581
|
+
its startup header for `--json` / `--events` machine-readable output.
|
|
582
|
+
- Generated MRI 2.4 through 2.7 workflows now bypass `ruby/setup-ruby`
|
|
583
|
+
Bundler caching and run an explicit bundle install, avoiding `bundle lock`
|
|
584
|
+
failures against gem.coop's missing legacy specs index.
|
|
585
|
+
- Generated legacy-engine workflows now configure Bundler to mirror gem.coop to
|
|
586
|
+
RubyGems.org during explicit CI installs, avoiding old Bundler full-index
|
|
587
|
+
requests that gem.coop does not support.
|
|
588
|
+
- Main Gemfile templating now removes duplicate `eval_gemfile` declarations
|
|
589
|
+
for the same modular dependency file, avoiding duplicate Bundler dependency
|
|
590
|
+
warnings after repeated templating.
|
|
591
|
+
- Generated templating workflows now update the root `nomono` bootstrap
|
|
592
|
+
dependency before enabling `K_JEM_TEMPLATING`, so cold CI runners can install
|
|
593
|
+
`nomono` before local templating gemfiles require its Bundler DSL.
|
|
594
|
+
- Local Gemfile templating now removes obsolete nomono activation ceremony from
|
|
595
|
+
existing destination files while retaining the simple
|
|
596
|
+
`require "nomono/bundler"` loader.
|
|
597
|
+
- Bootstrap commit execution now honors `KETTLE_JEM_GIT_COMMIT_LOCK` by locking
|
|
598
|
+
around the dirty recheck, `git add`, and `git commit` sequence for monorepo
|
|
599
|
+
family templating.
|
|
600
|
+
- Generated license summaries now link split license detail files to the
|
|
601
|
+
repository `blob/main` copy instead of packaging-relative files that are
|
|
602
|
+
intentionally excluded from gem manifests.
|
|
603
|
+
- Generated root Gemfiles no longer duplicate the
|
|
604
|
+
`tree_sitter_language_pack` declaration that belongs to the templating
|
|
605
|
+
modular Gemfile.
|
|
606
|
+
- Generated README source badges now use GitHub's canonical capitalization.
|
|
607
|
+
- Generated nomono local Gemfiles now use the normal `require "nomono/bundler"`
|
|
608
|
+
loader instead of a nomono-specific `require_relative` path.
|
|
609
|
+
- Install orchestration now bundles each distinct Bundler environment it will
|
|
610
|
+
execute under, and probes RuboCop Gradual tasks with the same environment used
|
|
611
|
+
for the eventual command.
|
|
612
|
+
- Bundler child commands now strip inherited command-line Git configuration, so
|
|
613
|
+
parent `safe.bareRepository=explicit` settings do not break Bundler Git source
|
|
614
|
+
caches during templating.
|
|
615
|
+
- Generated semantic diff Git driver configuration now consistently uses the
|
|
616
|
+
installed `smorg-rb` executable and Git diff driver name for Ruby diffs.
|
|
617
|
+
- Generated multi-engine workflow files, including `heads.yml` and
|
|
618
|
+
`dep-heads.yml`, now omit JRuby and TruffleRuby jobs when the project config
|
|
619
|
+
declares an MRI-only `engines` list.
|
|
620
|
+
- `kettle-jem`'s generated development Gemfiles now depend on released
|
|
621
|
+
`tree_sitter_language_pack` 1.13.2 or newer by default, while still
|
|
622
|
+
allowing templating runs to switch to a local source with
|
|
623
|
+
`VENDORED_GEMS=tree_sitter_language_pack` / `VENDOR_GEM_DIR`.
|
|
624
|
+
- Gemspec templating now deletes empty generated development-dependency comment
|
|
625
|
+
sections through Prism-backed CRISPR structural edits, preventing blank-line
|
|
626
|
+
churn before the closing `Gem::Specification` `end`.
|
|
627
|
+
- Fixed the `kettle-jem` package manifest so runtime template assets are
|
|
628
|
+
included even when the gemspec is loaded from the monorepo root.
|
|
629
|
+
- Generated local templating Gemfiles can now route
|
|
630
|
+
`tree_sitter_language_pack` through nomono's `VENDORED_GEMS` /
|
|
631
|
+
`VENDOR_GEM_DIR` support instead of using a one-off inferred local path.
|
|
632
|
+
|
|
633
|
+
- Templating setup now respects explicit `STRUCTUREDMERGE_DEV=false` and
|
|
634
|
+
`KETTLE_DEV_DEV=false` values when reading the kettle-family local install
|
|
635
|
+
marker, preventing prepare-mode bundle updates from re-enabling stale local
|
|
636
|
+
Gemfile wiring.
|
|
637
|
+
- Generated root Gemfiles no longer add a separate `gem "nomono"` bootstrap
|
|
638
|
+
line when templating the `nomono` gem itself, avoiding duplicate dependency
|
|
639
|
+
declarations against the package gemspec.
|
|
640
|
+
- `kettle-jem prepare` no longer explicitly asks Bundler to update parser gems
|
|
641
|
+
before they exist in a member lockfile, allowing cold-start templating
|
|
642
|
+
bootstraps to introduce vendored parser path dependencies during
|
|
643
|
+
`bundle install`.
|
|
644
|
+
- Workflow template pin maintenance now compares and updates complete pinned
|
|
645
|
+
action strings in source files, so `bin/kettle-jem-workflow-pins --check`
|
|
646
|
+
fails when template files drift from `github_actions_step_pins` even if the
|
|
647
|
+
action name is already covered by the pin index.
|
|
648
|
+
- kettle-jem's own gemspec now includes public signing certs in packaged files.
|
|
649
|
+
- Generated CI workflow synchronization now emits valid YAML for matrix and
|
|
650
|
+
setup-ruby sections instead of misindenting multi-line template fragments.
|
|
651
|
+
- Open Collective badge/funding detection now respects disabled funding policy
|
|
652
|
+
without falling back to the default organization.
|
|
653
|
+
- Version-gem RBS consolidation now migrates all legacy nested
|
|
654
|
+
`sig/<entrypoint>/**/*.rbs` content into the package-level signature and
|
|
655
|
+
removes the nested files, including when the package-level signature is
|
|
656
|
+
managed by a template entry.
|
|
657
|
+
- Generated dep-heads workflows now run every engine job directly from the
|
|
658
|
+
generated `gemfiles/dep_heads.gemfile`, avoiding `Appraisal.root.gemfile`
|
|
659
|
+
bootstrap failures with RubyGems/Bundler and gem.coop before the dep-heads
|
|
660
|
+
appraisal is selected.
|
|
661
|
+
- Packaged Rakefile templating now merges destination Rakefiles by default
|
|
662
|
+
instead of replacing them wholesale, preserving project-specific rake tasks
|
|
663
|
+
such as release or adapter test helpers.
|
|
664
|
+
- Version-gem namespace discovery no longer treats nested implementation
|
|
665
|
+
namespaces in the public entrypoint, such as `Kettle::Dev::Tasks`, as the gem
|
|
666
|
+
namespace when the existing version namespace is more specific.
|
|
667
|
+
- Gemfile and gemspec templating byte-offset rewrites now splice source with
|
|
668
|
+
byte-aware slicing so non-ASCII content before an edited AST node does not
|
|
669
|
+
corrupt generated Ruby.
|
|
670
|
+
- Generated legacy-engine CI workflows now install Bundler gems under
|
|
671
|
+
`${RUNNER_TEMP}/bundle` instead of `vendor/bundle`, preventing Appraisal
|
|
672
|
+
installs from creating nested `gemfiles/vendor` bundles.
|
|
673
|
+
- Generated RuboCop configs now exclude `**/vendor/**/*` so nested vendored
|
|
674
|
+
dependency trees are not linted.
|
|
675
|
+
|
|
676
|
+
- Fixed `bin/kettle-jem-workflow-pins` so its default project root resolves to
|
|
677
|
+
the kettle-jem gem root relative to the script instead of the caller's working
|
|
678
|
+
directory.
|
|
679
|
+
- Generated GitHub Actions workflows now preserve existing push branch filters
|
|
680
|
+
from destination workflows.
|
|
681
|
+
- GitHub Actions workflow templating now preserves existing destination SHA
|
|
682
|
+
pins for the same action/version when accepted templates are stale, and emits
|
|
683
|
+
a final warning telling maintainers to update the workflow template pins.
|
|
684
|
+
- SimpleCov templating now removes legacy kettle-soup-cover startup requires
|
|
685
|
+
from `.simplecov` and upgrades modifier-form `spec_helper` coverage bootstraps
|
|
686
|
+
to the full kettle-soup-cover `SimpleCov.start` block.
|
|
687
|
+
- Root Gemfile templating now keeps `nomono_requirements` before existing
|
|
688
|
+
`gem "nomono", *nomono_requirements` calls when merging legacy local sibling
|
|
689
|
+
wiring.
|
|
690
|
+
- Root Gemfile templating no longer adds generic direct-sibling path wiring for
|
|
691
|
+
runtime dependencies already handled by project-specific local modular
|
|
692
|
+
Gemfiles.
|
|
693
|
+
- Root Gemfile templating now evaluates the paired modular Gemfile for direct
|
|
694
|
+
runtime dependencies handled by `*_local.gemfile` overrides, preserving
|
|
695
|
+
released-vs-local switching after `accept_template` Gemfile rewrites.
|
|
696
|
+
- Root Gemfile templating now recognizes `eval_nomono_gems(gems: local_gems)`
|
|
697
|
+
declarations in `*_local.gemfile` files before deciding whether a runtime
|
|
698
|
+
dependency is already handled by paired modular local wiring.
|
|
699
|
+
- Local GitHub remotes now override generated gemspec `source_code_uri` tag URLs
|
|
700
|
+
when deriving repository owner tokens, preventing stale homepage metadata from
|
|
701
|
+
corrupting README logos and local sibling workspace env names.
|
|
702
|
+
- Bootstrap configs now seed runtime URI values, OpenCollective ENV overrides,
|
|
703
|
+
and Gemfile template ownership so first-time full templating does not leave
|
|
704
|
+
raw URI tokens or merge legacy Gemfile dependency sets into the generated
|
|
705
|
+
bundle.
|
|
706
|
+
- Generated Gemfiles now activate the Bundler-locked `nomono` before loading
|
|
707
|
+
`nomono/bundler`, avoiding global gem activation conflicts during
|
|
708
|
+
templating.
|
|
709
|
+
- Generated Gemfiles now scope templating-only direct sibling local-path
|
|
710
|
+
environment overrides to the direct dependency block so later modular
|
|
711
|
+
Gemfiles do not accidentally enter local sibling mode.
|
|
712
|
+
- Generated style Gemfiles now skip released RuboCop-LTS gems that were already
|
|
713
|
+
declared by earlier Gemfile evaluation, avoiding duplicate path/version
|
|
714
|
+
declarations during templating.
|
|
715
|
+
- Generated documentation local Gemfiles now skip the current package and
|
|
716
|
+
already declared gems before adding local family path overrides.
|
|
717
|
+
- Gem templates now require `appraisal2` >= 3.1.3.
|
|
718
|
+
- Generated style Gemfiles now require `appraisal2-rubocop` >= 0.2.2.
|
|
719
|
+
- Generated main Gemfiles now require `nomono` >= 1.0.6.
|
|
720
|
+
- Generated templating local Gemfiles now only use `TSLP_DEV` for local
|
|
721
|
+
`tree_sitter_language_pack` path overrides and no longer derive that path
|
|
722
|
+
from `STRUCTUREDMERGE_DEV`.
|
|
723
|
+
- Generated gemspecs now require `version_gem` >= 1.1.14.
|
|
724
|
+
- Generated gemspecs now require `gitmoji-regex` >= 2.0.4.
|
|
725
|
+
- Generated documentation Gemfiles now require `yaml-converter` >= 0.2.3.
|
|
726
|
+
- Generated documentation Gemfiles now require `yard-fence` >= 0.9.5.
|
|
727
|
+
- Generated documentation Gemfiles now require `yard-timekeeper` >= 0.2.2.
|
|
728
|
+
- Generated documentation Gemfiles now require `yard-yaml` >= 0.2.2.
|
|
729
|
+
- Gemfile, gemspec, Appraisal, and Rakefile template merging now derives Ruby
|
|
730
|
+
call source ranges and static string values from Prism nodes so heredoc
|
|
731
|
+
string arguments are preserved transparently.
|
|
732
|
+
- Gemspec dependency preservation now rewrites project-version constant
|
|
733
|
+
interpolation in dependency requirements to `spec.version` so preserved
|
|
734
|
+
dependencies remain loadable after anonymous-module version loading.
|
|
735
|
+
- Removed retired funding links and template tokens from generated kettle-jem
|
|
736
|
+
funding and README templates.
|
|
737
|
+
- Retemplated generated project metadata, support documentation, CI workflows,
|
|
738
|
+
binstubs, and development dependency floors with `kettle-jem` v7.0.0.
|
|
739
|
+
- Generated README and workflow templates now treat Ruby 4.0 as MRI current,
|
|
740
|
+
add discrete JRuby 10.0 and TruffleRuby 33.0 workflows/badges, and include a
|
|
741
|
+
TruffleRuby HEAD badge pointing at the shared heads workflow.
|
|
742
|
+
- Generated CI workflows now disable `ruby/setup-ruby` Bundler caching for
|
|
743
|
+
TruffleRuby 25.0 and JRuby 9.3 and run a serial Bundler install to avoid
|
|
744
|
+
legacy engine setup failures.
|
|
745
|
+
- `kettle-jem install` now runs `rubocop_gradual:autocorrect` after templating
|
|
746
|
+
and before the bootstrap commit when the destination project provides
|
|
747
|
+
`bin/rake`, so project-local Ruby syntax floors can normalize generated
|
|
748
|
+
files.
|
|
749
|
+
- `RUBOCOP_LTS_LOCAL` templating now switches the local `rubocop-lts/rubocop-lts`
|
|
750
|
+
checkout to the branch matching the selected `rubocop-rubyN_N` wrapper before
|
|
751
|
+
running setup and RuboCop Gradual normalization.
|
|
752
|
+
- Generated RuboCop-LTS local style Gemfiles now exclude the current project
|
|
753
|
+
package and already-declared gems before adding local family path overrides.
|
|
754
|
+
- Generated funding templates now default missing OpenCollective orgs to
|
|
755
|
+
`galtzo-floss` and warn when that fallback differs from the GitHub org.
|
|
756
|
+
- Shim gemspec templates now include the kettle-dev release/test harness
|
|
757
|
+
dependencies required by `kettle-changelog`, `kettle-test`, and release tasks.
|
|
758
|
+
- Shim gemspec templates now resolve the generated gem version token instead of
|
|
759
|
+
leaving `{KJ|GEM_VERSION}` unresolved.
|
|
760
|
+
- Shim and monorepo-root template profiles now include generated `.gitignore`
|
|
761
|
+
files so local `.env.local` configuration is ignored consistently.
|
|
762
|
+
- Shim Gemfile templates now include `nomono` and the generated templating
|
|
763
|
+
Gemfiles so `K_JEM_TEMPLATING=true bundle exec kettle-jem install` works.
|
|
764
|
+
- Shim Gemfile templates no longer add a Git-sourced replacement gem fallback;
|
|
765
|
+
the released replacement gem is already declared by the generated gemspec.
|
|
766
|
+
- Shim Gemfile templates now use `https://gem.coop`, matching the full template
|
|
767
|
+
and allowing released replacement gems to resolve without Git sources.
|
|
768
|
+
- Generated README compatibility sections now use prose for the test-matrix
|
|
769
|
+
credit and render all generated details blocks with Markdown enabled.
|
|
770
|
+
- Generated README compatibility sections now pair the test-matrix credit with
|
|
771
|
+
the kettle-dev logo and use a kettle-dev-specific details summary.
|
|
772
|
+
- The generated README dev/test stack table now includes `kettle-jem` with its
|
|
773
|
+
Appraisals and CI workflow template role.
|
|
774
|
+
- The generated README dev/test stack table now includes `kettle-dev` and keeps
|
|
775
|
+
stack gems in A-Z order while preserving self-exclusion.
|
|
776
|
+
- Gem templates and generated root Gemfiles now require `kettle-dev` >= 2.2.22.
|
|
777
|
+
- Generated SimpleCov setup now keeps `.simplecov` configuration-only and
|
|
778
|
+
starts coverage explicitly from `spec/spec_helper.rb` for SimpleCov v1.
|
|
779
|
+
- `.simplecov` templating now removes obsolete `SimpleCov.start` blocks with a
|
|
780
|
+
Prism AST cleanup pass while preserving destination-local configuration.
|
|
781
|
+
- `.simplecov` templating now removes the obsolete kettle-soup-cover config
|
|
782
|
+
require with the same Prism AST cleanup pass so SimpleCov finishes loading
|
|
783
|
+
before formatter configuration is required.
|
|
784
|
+
- `.simplecov` templating now migrates old generated `keep_destination`
|
|
785
|
+
overrides and converts preserved `track_files` calls to `cover` calls.
|
|
786
|
+
- Generated spec helper templating now normalizes stale SimpleCov bootstrap
|
|
787
|
+
blocks by deduplicating SimpleCov requires and restoring the formatter config
|
|
788
|
+
require before `SimpleCov.start`.
|
|
789
|
+
- Generated spec helpers now document that requiring SimpleCov loads the
|
|
790
|
+
configuration-only `.simplecov` before coverage starts.
|
|
791
|
+
- Generated coverage Gemfiles no longer pin SimpleCov to the pre-release-only
|
|
792
|
+
`kettle-dev/simplecov` `fix-final-parallel-worker-formatting` branch.
|
|
793
|
+
- Generated workspace path examples now use the renamed `my` local workspace
|
|
794
|
+
instead of the old `kettle-rb` checkout path.
|
|
795
|
+
- Generated coverage Gemfiles now require `kettle-soup-cover` >= 3.0.0.
|
|
796
|
+
- Generated Rakefiles now use `# simplecov:disable` / `# simplecov:enable`
|
|
797
|
+
blocks instead of deprecated legacy coverage markers.
|
|
798
|
+
- `kettle-jem install` now uses the latest `kettle-family install` marker to
|
|
799
|
+
activate locally installed template-stack source roots during templating
|
|
800
|
+
setup.
|
|
801
|
+
- Generated Gemfiles now guard preserved runtime `eval_nomono_gems` workspace
|
|
802
|
+
overrides during `K_JEM_TEMPLATING=true`, keeping templating bundles isolated
|
|
803
|
+
from target runtime sibling path dependencies.
|
|
804
|
+
- Generated main Gemfiles now add templating-aware `nomono` wiring for direct
|
|
805
|
+
runtime dependencies that exist as sibling gems in the same local family
|
|
806
|
+
workspace.
|
|
807
|
+
- Install lockfile normalization now keeps direct sibling runtime dependencies
|
|
808
|
+
available through the generated family `*_DEV` environment while still
|
|
809
|
+
disabling templating-only path overrides.
|
|
810
|
+
- Generated kettle-jem usage instructions now use the `kettle-jem` executable as
|
|
811
|
+
the bootstrap entrypoint instead of starting from `bundle exec kettle-jem`.
|
|
812
|
+
- Generated templating Gemfiles now resolve the local tree-sitter language pack
|
|
813
|
+
workspace fork from `structuredmerge/vendor`.
|
|
814
|
+
- Generated Appraisals now use modern keyword hash syntax for the
|
|
815
|
+
`appraisal2-rubocop` plugin declaration.
|
|
816
|
+
- Refreshed the generated `codecov/codecov-action` workflow pin and made
|
|
817
|
+
workflow-pin specs validate immutable pin shape instead of exact live SHAs.
|
|
818
|
+
- Refreshed generated workflow templates to pin `actions/checkout` to the
|
|
819
|
+
`v7.0.0` release.
|
|
820
|
+
- Gem templates and generated templating Gemfiles now require `kettle-dev` >= 2.2.12.
|
|
821
|
+
- The packaged gemspec template now uses the same `kettle-dev` 2.2.12 floor as
|
|
822
|
+
generated Gemfile tooling.
|
|
823
|
+
- Generated templating Gemfiles now require `kettle-drift` >= 1.0.4.
|
|
824
|
+
- Gem templates now require `kettle-test` >= 2.0.8.
|
|
825
|
+
- Generated coverage Gemfiles now require `kettle-soup-cover` >= 2.0.2.
|
|
826
|
+
- Generated style Gemfiles now require `rubocop-gradual` >= 0.4.0.
|
|
827
|
+
- Generated style Gemfiles now require `appraisal2-rubocop` >= 0.2.1.
|
|
828
|
+
- Generated main Gemfiles now require `nomono` >= 1.0.4.
|
|
829
|
+
- Generated gemspec templates now preserve the full existing gemspec author list
|
|
830
|
+
instead of replacing it with the primary author token.
|
|
831
|
+
- Retemplating now removes legacy `.github/workflows/tests.yml` files as
|
|
832
|
+
obsolete workflows.
|
|
833
|
+
- Runtime dependency `token-resolver` now requires 2.0.3 or newer.
|
|
834
|
+
- Gem templates now require `turbo_tests2` >= 3.1.6 for the default
|
|
835
|
+
`kettle-test` runner dependency.
|
|
836
|
+
- The README template now links `kettle-readme-backers` to the generated
|
|
837
|
+
`bin/` binstub instead of a non-existent `exe/` path.
|
|
838
|
+
- The README template's test matrix credit now highlights the Kettle dev/test
|
|
839
|
+
stack with BestGems, GitHub, and daily download rank links, excluding the
|
|
840
|
+
current gem from its own stack table.
|
|
841
|
+
- The README dev/test stack table now includes `kettle-soup-cover`.
|
|
842
|
+
- Documentation templates now require `yard-yaml` >= 0.2.1.
|
|
843
|
+
- Gemfile and gemspec source checks now prefer Prism-backed call records instead
|
|
844
|
+
of regex/string fallback matching for dependency and project-name decisions.
|
|
845
|
+
- Appraisals template merging now delegates same-name DSL call reconciliation to
|
|
846
|
+
`Prism::Merge` instead of custom source-line dependency comparison.
|
|
847
|
+
- Generated gemspec version-loader fallbacks now use `require_relative` for
|
|
848
|
+
gems whose runtime Ruby floor is 2.2 or newer, reserving `$LOAD_PATH`
|
|
849
|
+
mutation for gems that still target older Rubies.
|
|
850
|
+
- Generated gemspec version-loader guards now use `Gem.ruby_version`, avoiding
|
|
851
|
+
RuboCop `Gemspec/RubyVersionGlobalsUsage` violations.
|
|
852
|
+
- Generated auto-assign workflows now pin `pozil/auto-assign-issue` to the
|
|
853
|
+
immutable SHA for v4.
|
|
854
|
+
- Generated GitHub Actions workflow templates now pin `actions/checkout` to
|
|
855
|
+
the peeled commit SHA for v6.0.3 and `qltysh/qlty-action/coverage` to the
|
|
856
|
+
immutable SHA for v2.2.1.
|
|
857
|
+
- Generated GitHub Actions workflow templates now refresh pins for
|
|
858
|
+
`coverallsapp/github-action` and `codecov/codecov-action`.
|
|
859
|
+
- Generated templating and unlocked dependency workflows no longer install the
|
|
860
|
+
legacy tree-sitter action and rely on the packaged
|
|
861
|
+
`tree_sitter_language_pack` runtime instead.
|
|
862
|
+
- Generated templating workflows and `kettle-jem prepare` now update `nomono`
|
|
863
|
+
before install/selftest commands run, so stale locks do not activate old
|
|
864
|
+
local-workspace wiring code.
|
|
865
|
+
- Generated GitHub Actions workflow templates now refresh pins for
|
|
866
|
+
`github/codeql-action` sub-actions to v4.36.2.
|
|
867
|
+
- Generated workflow templates now pin `coverallsapp/github-action` and
|
|
868
|
+
`codecov/codecov-action` to resolvable release SHAs instead of stripped
|
|
869
|
+
SemVer strings.
|
|
870
|
+
- Generated README badge URLs now use the same URI-normalized form as
|
|
871
|
+
`kettle-pre-release`, avoiding churn between encoded namespace separators
|
|
872
|
+
and Unicode badge messages.
|
|
873
|
+
- Generated GitHub Actions workflow templates now refresh `ruby/setup-ruby` to
|
|
874
|
+
the immutable SHA for v1.312.0 and `codecov/codecov-action` to the latest
|
|
875
|
+
v7.0.0 release comment.
|
|
876
|
+
- Generated GitHub Actions workflow templates now refresh `ruby/setup-ruby`,
|
|
877
|
+
`coverallsapp/github-action`, and `pozil/auto-assign-issue` pins.
|
|
878
|
+
- Generated coverage workflows now publish QLTY coverage with GitHub OIDC so
|
|
879
|
+
repositories do not require `QLTY_COVERAGE_TOKEN` to be configured.
|
|
880
|
+
- Generated README and FUNDING OpenCollective links now use the configured
|
|
881
|
+
OpenCollective slug instead of assuming it matches the GitHub organization.
|
|
882
|
+
- Generated coverage workflow uploads now share the same template token as
|
|
883
|
+
custom workflow injection, avoiding duplicate coverage upload step templates.
|
|
884
|
+
- Generated coverage workflows no longer gain an extra blank line after the
|
|
885
|
+
shared coverage upload step token is expanded at end of file.
|
|
886
|
+
- Generated Appraisal/RuboCop templates now use Appraisal2 3.1.1's `plugin`
|
|
887
|
+
and `generator_only` DSLs to provide the full style toolchain from modern
|
|
888
|
+
Appraisal root bundles without leaking style dependencies into old-Ruby
|
|
889
|
+
appraisal bundles, while still evaluating the style toolchain for Bundler.
|
|
890
|
+
- Generated Appraisals no longer add a separate `cgi >= 0.5` declaration to
|
|
891
|
+
the `head` appraisal because the extracted stdlib gemfiles already provide
|
|
892
|
+
the Ruby-specific `cgi` dependency.
|
|
893
|
+
- Generated Appraisal root Gemfiles now load the style toolchain only on Ruby
|
|
894
|
+
3.2+, matching the current RuboCop-LTS dependency floor.
|
|
895
|
+
- Generated Open Collective backers workflows now skip the README update step
|
|
896
|
+
when `README_UPDATER_TOKEN` is not configured instead of failing the workflow.
|
|
897
|
+
- Generated style toolchains now use `appraisal2-rubocop` 0.2.0 as their floor.
|
|
898
|
+
- Generated style toolchains now include `rubocop-minitest` so projects with
|
|
899
|
+
preserved Minitest RuboCop config can run `rubocop_gradual`.
|
|
900
|
+
- Template strategy documentation now clarifies that `raw_copy` is a bootstrap
|
|
901
|
+
path that bypasses token resolution and StructuredMerge normalization.
|
|
902
|
+
- Generated EOL TruffleRuby 22.3, 23.0, and 23.1 workflows now mark their
|
|
903
|
+
matrix entries experimental so native extension build failures do not fail
|
|
904
|
+
the whole workflow.
|
|
905
|
+
- Documented `kettle-jem install` as the canonical full templating entrypoint
|
|
906
|
+
and marked generated `kettle:jem:*` rake tasks as internal orchestration targets.
|
|
907
|
+
- Bare `kettle-jem template` now aliases to the full install path; use
|
|
908
|
+
`kettle-jem template --only PATH` or `--include PATH` for scoped file updates.
|
|
909
|
+
- `kettle-jem` project fact discovery now uses `Kettle::Jem::GemSpecReader`
|
|
910
|
+
and RubyGems specification objects instead of parsing gemspec source.
|
|
911
|
+
- `kettle-jem` namespace discovery now prefers existing source-tree version
|
|
912
|
+
namespaces before stale gemspec metadata so non-standard acronym namespaces
|
|
913
|
+
such as `OAuth2` and `OmniAuth` are preserved.
|
|
914
|
+
- README and CONTRIBUTING templates now document the effective
|
|
915
|
+
`ruby.test_minimum` value used when the project was templated.
|
|
916
|
+
- README templates now list Ruby 2.3 as supported but untested, matching Ruby
|
|
917
|
+
2.2 and older, instead of rendering a Ruby 2.3 CI workflow badge.
|
|
918
|
+
- README templates now include a closing note that identifies kettle-jem and
|
|
919
|
+
StructuredMerge as the templating and merge-contract tooling.
|
|
920
|
+
- Generated gemspec summary and description assignments now use package
|
|
921
|
+
metadata tokens instead of emoji-only placeholders.
|
|
922
|
+
- README logo templating now splits config-driven `top_logos` from
|
|
923
|
+
`h2_synopsis_logos`, renders logos as aligned HTML images, and normalizes logo
|
|
924
|
+
assets to 128px.
|
|
925
|
+
- README logo config now accepts optional per-logo widths with `type|width`
|
|
926
|
+
entries, such as `org|12%` or `ruby|96px`.
|
|
927
|
+
- README Ruby language logos now link to Ruby Toolbox.
|
|
928
|
+
- Documented `rubygems.min_ruby` in the generated `.kettle-jem.yml` so projects
|
|
929
|
+
can make the published runtime Ruby floor explicit.
|
|
930
|
+
- Documentation templates now require `yard-yaml` >= 0.2.0.
|
|
931
|
+
- Documentation templates now require `yard-fence` >= 0.9.4.
|
|
932
|
+
- Documentation templates now require `yard-timekeeper` >= 0.2.1.
|
|
933
|
+
- Gem templates and generated templating Gemfiles now require `kettle-dev` >= 2.1.1.
|
|
934
|
+
- Gem templates now require `kettle-test` >= 2.0.3.
|
|
935
|
+
- Gem templates now require `appraisal2` >= 3.1.1.
|
|
936
|
+
- Generated templating Gemfiles now require `kettle-drift` >= 1.0.1.
|
|
937
|
+
- Runtime dependency `token-resolver` now requires the released 2.x line.
|
|
938
|
+
- Development lockfile generation now uses Bundler 4.0.12.
|
|
939
|
+
- Rake task specs now run from a sandboxed temporary project root.
|
|
940
|
+
- Ruby, engine, Bundler, RubyGems, RuboCop, and Rails compatibility choices now
|
|
941
|
+
come from an `RRRRB_MATRIX` source of truth so generated workflows and
|
|
942
|
+
appraisals can select the newest stable compatible toolchain per Ruby.
|
|
943
|
+
- Generated JRuby 9.1 and 9.2 workflows now install RubyGems 3.3.27 and
|
|
944
|
+
Bundler 2.3.27 instead of using the default JRuby toolchain versions.
|
|
945
|
+
- Generated TruffleRuby 23.1 workflows now bootstrap from the Ruby 3.2
|
|
946
|
+
appraisal Gemfile so Ruby 3.2-specific dependency restrictions apply before
|
|
947
|
+
Bundler cache installation, then run tests directly under that bundle instead
|
|
948
|
+
of regenerating the active appraisal Gemfile.
|
|
949
|
+
- Generated Ruby 3.0 and Ruby 3.2 appraisal Gemfiles now include
|
|
950
|
+
TruffleRuby-only `json` modules that pin to the default `json` gem shipped
|
|
951
|
+
with EOL TruffleRuby releases instead of constraining MRI Ruby bundles.
|
|
952
|
+
- Generated main Gemfiles now install `nomono` >= 1.0.3 so local workspace
|
|
953
|
+
override Gemfiles can load `nomono/bundler` from the released gem.
|
|
954
|
+
- Generated coverage workflows now pass `K_SOUP_COV_MIN_LINE` and
|
|
955
|
+
`K_SOUP_COV_MIN_BRANCH` through to Code Coverage Summary thresholds instead
|
|
956
|
+
of hardcoding `100 100`.
|
|
957
|
+
- Default semantic Git driver setup now writes repo-local `diff.smorg-*`
|
|
958
|
+
command config as well as managed `.gitattributes`, so local `git diff`
|
|
959
|
+
can actually invoke StructuredMerge drivers after templating.
|
|
960
|
+
- Runtime dependency `token-resolver` now requires 2.0.1 or newer.
|
|
961
|
+
- Generated gemspecs now require `version_gem` >= 1.1.12 while allowing the
|
|
962
|
+
released 1.1 line.
|
|
963
|
+
- Gem templates now require `gitmoji-regex` >= 2.0.2.
|
|
964
|
+
- Gem templates now require `turbo_tests2` >= 3.1.1 for the default
|
|
965
|
+
`kettle-test` runner.
|
|
966
|
+
- Generated style Gemfiles now use the latest released `rubocop-ruby*`
|
|
967
|
+
wrapper patch constraints for the RuboCop-LTS family.
|
|
968
|
+
- Generated style Gemfiles now use the latest released `rubocop-lts` track
|
|
969
|
+
constraints for every supported Ruby floor.
|
|
970
|
+
- Generated style Gemfiles now treat style dependency floors as latest-Ruby
|
|
971
|
+
task dependencies, independent from the gemspec runtime Ruby floor.
|
|
972
|
+
- kettle-jem now requires `kettle-rb` >= 0.1.1.
|
|
973
|
+
- Generated coverage Gemfiles now require `kettle-soup-cover` >= 2.0.1.
|
|
974
|
+
- Generated documentation Gemfiles now require `yaml-converter` >= 0.2.1
|
|
975
|
+
while allowing the released 0.2 line.
|
|
976
|
+
|
|
977
|
+
- Generated root Gemfiles no longer path-wire direct sibling dependencies from
|
|
978
|
+
stale sibling directories whose gemspec defines a different gem name.
|
|
979
|
+
- Generated root Gemfiles now remove previously generated direct sibling wiring
|
|
980
|
+
when the current sibling directory no longer defines the dependency gem.
|
|
981
|
+
- Generated RuboCop configs now activate the `rubocop-rspec` plugin for the
|
|
982
|
+
packaged RSpec RuboCop overlay.
|
|
983
|
+
- Gemspec `spec.files` merging now supports the generated `Dir[...] + [...]`
|
|
984
|
+
assignment shape on subsequent template runs instead of rejecting it as
|
|
985
|
+
unsupported.
|
|
986
|
+
- Generated modular Gemfiles no longer redeclare runtime dependencies that are
|
|
987
|
+
already supplied by the project gemspec.
|
|
988
|
+
- Existing generated gemspecs with splat-based `spec.files` assignments now
|
|
989
|
+
retain configured root license files from the template instead of preserving
|
|
990
|
+
the old splat-only assignment wholesale.
|
|
991
|
+
- Gemspec `spec.files` templating now fails hard for unsupported package-list
|
|
992
|
+
shapes instead of silently preserving destination content.
|
|
993
|
+
- Generated gemspecs now package active root license files declared by the
|
|
994
|
+
project license configuration.
|
|
995
|
+
- Gemspec templating no longer preserves frozen `spec.files` override blocks;
|
|
996
|
+
`spec.files` is structurally merged so stale frozen package lists cannot
|
|
997
|
+
replace the merged package payload.
|
|
998
|
+
- README template merging no longer duplicates preserved destination-only
|
|
999
|
+
subsections when they are already inside another preserved destination
|
|
1000
|
+
section.
|
|
1001
|
+
- Generated gemspecs now add an inline `Gemspec/RequiredRubyVersion` RuboCop
|
|
1002
|
+
disable when the published runtime Ruby floor is below 2.0.
|
|
1003
|
+
- `kettle-jem install` no longer tries to switch the local RuboCop-LTS checkout
|
|
1004
|
+
while templating the RuboCop-LTS checkout itself.
|
|
1005
|
+
- Generated style Gemfiles now require `rubocop-ruby3_2` >= 3.0.6 so
|
|
1006
|
+
Appraisal/RuboCop tasks do not select damaged packages missing
|
|
1007
|
+
packaged RuboCop-LTS configuration files.
|
|
1008
|
+
- Gemspec `spec.files` merging now preserves `Dir[...]` glob expansion when
|
|
1009
|
+
merging destination glob entries into an array-based template assignment by
|
|
1010
|
+
generating concatenated `Dir[...] + [...]` package file expressions.
|
|
1011
|
+
- Quiet templating orchestration no longer passes unsupported `--quiet`
|
|
1012
|
+
switches to Bundler subcommands such as `bundle binstubs` or `bundle lock`;
|
|
1013
|
+
only Bundler subcommands documented with `--quiet` receive that flag.
|
|
1014
|
+
- Gemspec `spec.files` merging now inserts missing trailing commas when moving
|
|
1015
|
+
existing collection entries before appended template entries, preventing
|
|
1016
|
+
invalid Ruby when a destination's former last entry had no comma.
|
|
1017
|
+
- Gemfile templating now preserves destination-only Ruby-bucket
|
|
1018
|
+
`eval_gemfile` entries, preventing configured recording Gemfiles from being
|
|
1019
|
+
dropped when the main Gemfile template is reapplied, and restores the main
|
|
1020
|
+
recording Gemfile eval when existing Appraisals show recording is configured.
|
|
1021
|
+
- Generated templating Gemfiles no longer duplicate `appraisal2-rubocop`; the
|
|
1022
|
+
Appraisal generator formatter is provided by the style Gemfile loaded from
|
|
1023
|
+
`Appraisal.root.gemfile`.
|
|
1024
|
+
- Generated local Gemfile overrides now load `nomono/bundler` without activating
|
|
1025
|
+
nomono's runtime dependencies during Bundler Gemfile evaluation, and bundled
|
|
1026
|
+
handoff no longer runs through the RubyGems `kettle-jem` wrapper.
|
|
1027
|
+
- Gemspec template merging now preserves chained squiggly heredoc assignments
|
|
1028
|
+
such as `spec.description = <<~DESC.strip` instead of replacing only the
|
|
1029
|
+
opener line.
|
|
1030
|
+
- Generated README post-processing now adds missing compatible JRuby 10.0 and
|
|
1031
|
+
TruffleRuby 33.0 compatibility badges when the matching workflow files exist.
|
|
1032
|
+
- Shunted Gemfile generation no longer duplicates broad gemspec development
|
|
1033
|
+
dependencies that already have explicit modular Gemfile compatibility
|
|
1034
|
+
overrides, such as old-Ruby fork handling.
|
|
1035
|
+
- `kettle-jem install` no longer fails a stale outer bootstrap commit step when
|
|
1036
|
+
the bundled handoff already committed the generated changes.
|
|
1037
|
+
- Shim template discovery now recovers the package version from the git index
|
|
1038
|
+
or `HEAD` when a previous failed run already replaced the working-tree
|
|
1039
|
+
version file with replacement-gem aliases.
|
|
1040
|
+
- Shim profile version files now alias the replacement gem version constants
|
|
1041
|
+
and compute the replacement version require path relative to the generated
|
|
1042
|
+
shim version file, fixing nested require paths such as `omniauth/jwt`
|
|
1043
|
+
shimming `omniauth/jwt2`.
|
|
1044
|
+
- `kettle-jem install` now skips its bundled handoff when the destination bundle
|
|
1045
|
+
does not include `kettle-jem`, allowing shim-only gems to finish templating.
|
|
1046
|
+
- Namespace discovery now detects nested module declarations in the public
|
|
1047
|
+
entrypoint before falling back to a stale generated version namespace, and the
|
|
1048
|
+
README namespace badge now uses the shield-safe namespace token.
|
|
1049
|
+
- OpenCollective template tokens now use `.github/FUNDING.yml` as a valid org
|
|
1050
|
+
source, preventing empty `https://opencollective.com//...` README and
|
|
1051
|
+
FUNDING links when destination env variables are not loaded.
|
|
1052
|
+
- Monorepo-root templating now uses the no-OpenCollective funding templates
|
|
1053
|
+
when no OpenCollective slug is configured, preventing empty generated
|
|
1054
|
+
OpenCollective badge URLs in root `FUNDING.md` files.
|
|
1055
|
+
- The `kettle-jem` CLI now refuses to run from the `kettle-jem` project root
|
|
1056
|
+
against a different destination, so templating cannot silently use
|
|
1057
|
+
`kettle-jem`'s own environment instead of the target repo's environment.
|
|
1058
|
+
- Fixed `bin/kettle-jem-workflow-pins` so its synthetic workflow is valid YAML
|
|
1059
|
+
and child command failures include stdout diagnostics.
|
|
1060
|
+
- Fixed `bin/kettle-jem-workflow-pins` so sub-action updates reported under the
|
|
1061
|
+
parent action repository, such as `github/codeql-action`, update the full
|
|
1062
|
+
pinned action path instead of being silently counted as zero updates.
|
|
1063
|
+
- Fixed `bin/kettle-jem-workflow-pins` to default to the same broad upgrade
|
|
1064
|
+
strategy used by family workflow pin maintenance, so minor action releases
|
|
1065
|
+
such as `ruby/setup-ruby` are not missed by template pin refreshes.
|
|
1066
|
+
- README compatibility badge pruning now compares Ruby minor series so patch
|
|
1067
|
+
floors like `>= 1.8.7` and `>= 2.2.2` keep their matching minor badges.
|
|
1068
|
+
- Gemspec template summary and description tokens now strip an already-present
|
|
1069
|
+
project emoji and escape double quotes before rendering inside Ruby strings.
|
|
1070
|
+
- Templates now remove `version_gem` dependencies and entrypoint references for
|
|
1071
|
+
gems whose minimum Ruby is below 2.2 while keeping the standard
|
|
1072
|
+
`<Namespace>::Version::VERSION` constant shape.
|
|
1073
|
+
- Curated Bundler binstub pruning now keeps any executable owned by the curated
|
|
1074
|
+
binstub gems, so newly added executables such as `kettle-bump` are retained
|
|
1075
|
+
without hardcoding every executable name.
|
|
1076
|
+
- Gem templates now require `appraisal2` >= 3.1.2.
|
|
1077
|
+
- Gemspec merging now lets explicit `KJ_AUTHOR_EMAIL` and `KJ_AUTHOR_NAME`
|
|
1078
|
+
environment overrides replace destination `spec.email` and `spec.authors`
|
|
1079
|
+
metadata instead of preserving stale project fields over resolved template
|
|
1080
|
+
tokens.
|
|
1081
|
+
- Explicit `rubygems.min_ruby: "0"` template configuration now renders the
|
|
1082
|
+
zero runtime floor consistently while omitting `required_ruby_version` and
|
|
1083
|
+
runtime dependencies that cannot support Ruby 1.x.
|
|
1084
|
+
- Generated Ruby 4/head extracted-stdlib Gemfiles now include `cgi` and
|
|
1085
|
+
`webrick` so legacy suites that require extracted standard libraries can run
|
|
1086
|
+
on modern Rubies.
|
|
1087
|
+
- `kettle-jem install` now ensures curated Bundler binstubs are executable,
|
|
1088
|
+
including legacy `bin/rake` and rewritten `bin/yard` binstubs used by
|
|
1089
|
+
`kettle-changelog`.
|
|
1090
|
+
- Generated `LICENSE.md` copyright notice lines now render as a Markdown list.
|
|
1091
|
+
- Appraisals templating now treats `eval_gemfile "path"` and
|
|
1092
|
+
`eval_gemfile("path")` as the same dependency when merging same-named
|
|
1093
|
+
appraisal blocks.
|
|
1094
|
+
- Generated freeze-marker guidance now consistently names `kettle-jem` as the
|
|
1095
|
+
templating tool instead of substituting the destination gem name.
|
|
1096
|
+
- Templating now prunes legacy dashed Ruby workflow filenames such as
|
|
1097
|
+
`ruby-2-4.yml` when replacing them with dotted packaged workflow filenames.
|
|
1098
|
+
- Gemspec freeze-block preservation now honors configured custom
|
|
1099
|
+
`defaults.freeze_token` values.
|
|
1100
|
+
- RuboCop config templating now removes destination `AllCops.TargetRubyVersion`
|
|
1101
|
+
settings so Ruby target selection remains owned by the `rubocop-lts` family.
|
|
1102
|
+
- Coverage workflow templating now preserves `K_SOUP_COV_MIN_LINE` and
|
|
1103
|
+
`K_SOUP_COV_MIN_BRANCH` from `mise.toml`, keeping the generated SimpleCov
|
|
1104
|
+
hard gate aligned with the project's configured thresholds.
|
|
1105
|
+
- Framework CI workflow templating no longer emits duplicate matrix environment
|
|
1106
|
+
keys when generated matrix entries are visited through overlapping YAML nodes.
|
|
1107
|
+
- Gemspec templating no longer preserves stale `kettle-soup-cover` development
|
|
1108
|
+
dependencies now that coverage dependencies are owned by the modular coverage
|
|
1109
|
+
Gemfile.
|
|
1110
|
+
- Workflow action pin normalization now keeps `pozil/auto-assign-issue` on the
|
|
1111
|
+
pinned v4 ref.
|
|
1112
|
+
- Workflow templating no longer rewrites coverage summary thresholds back to
|
|
1113
|
+
literal numbers after applying destination-specific coverage env values.
|
|
1114
|
+
- Generated coverage workflows now keep Codecov upload failures non-gating, so
|
|
1115
|
+
generated coverage reports remain the authoritative CI gate.
|
|
1116
|
+
- Generated style workflows now run `rbs validate` through the appraisal bundle
|
|
1117
|
+
instead of the project `bin/rbs` wrapper.
|
|
1118
|
+
- Workflow templating now normalizes obsolete Appraisal-relative `kettle-test`
|
|
1119
|
+
commands to the canonical project-root `kettle-test` command.
|
|
1120
|
+
- Local override Gemfile and gemspec templates no longer emit RuboCop-Gradual
|
|
1121
|
+
regressions from trailing commas or unnecessary encoding comments.
|
|
1122
|
+
- README logo templating now preserves generated Synopsis H2 logo HTML during
|
|
1123
|
+
README heading normalization, migrates legacy combined `top_logos` config into
|
|
1124
|
+
`top_logos` plus `h2_synopsis_logos`, and removes unused old logo link
|
|
1125
|
+
definitions.
|
|
1126
|
+
- Ruby template merges now preserve template-only require/bootstrap nodes and
|
|
1127
|
+
place them at their template anchor instead of deleting them after merge.
|
|
1128
|
+
- Ruby template merges now preserve coverage bootstrap ordering when the
|
|
1129
|
+
package name and entrypoint require path differ, avoiding duplicate or
|
|
1130
|
+
pre-coverage library requires in generated spec helpers.
|
|
1131
|
+
- Generated style Gemfiles now include released `rubocop-lts-rspec` in the
|
|
1132
|
+
non-local RuboCop-LTS bundle instead of requiring `rubocop-rspec` directly.
|
|
1133
|
+
- Fixed generated documentation URLs for standalone gems so template-owned
|
|
1134
|
+
citation and documentation links do not retain monorepo `gems/` paths.
|
|
1135
|
+
- Monorepo-root templating now applies without a root gemspec, detects root
|
|
1136
|
+
license files ahead of stale config values, installs the generated Rakefile
|
|
1137
|
+
task plumbing, and syncs root Gemfile tooling dependencies without duplicating
|
|
1138
|
+
local nomono declarations.
|
|
1139
|
+
- Generated `gemfiles/modular/x_std_libs.gemfile` now selects the extracted
|
|
1140
|
+
stdlib dependency set from the active Ruby version, so dependency solvers
|
|
1141
|
+
running on Ruby 3.1 do not receive Ruby 4-only stdlib requirements.
|
|
1142
|
+
- README merging now preserves a destination front `## Important`/warning
|
|
1143
|
+
section before Synopsis when that section encloses the badge cloud.
|
|
1144
|
+
- Same-named destination gemspecs loaded from different project directories no
|
|
1145
|
+
longer bleed metadata into one another during templating.
|
|
1146
|
+
- `kettle-jem install` now strips inherited Bundler activation variables before
|
|
1147
|
+
running destination setup commands, so generated `bin/setup` can run
|
|
1148
|
+
`bundle install` even when the destination lockfile references gems that are
|
|
1149
|
+
not installed yet.
|
|
1150
|
+
- Generated `bin/yard` now routes through `bin/rake yard` so documentation
|
|
1151
|
+
plugins installed by the templated rake task, such as yard-timekeeper, run
|
|
1152
|
+
consistently.
|
|
1153
|
+
- GemSpec template merging now keeps the greater version requirement between
|
|
1154
|
+
template-managed dependencies and destination dependencies, allowing newer
|
|
1155
|
+
destination constraints to remain while still upgrading stale template-owned
|
|
1156
|
+
floors.
|
|
1157
|
+
- Generated evergreen JRuby workflows now mark the current JRuby and
|
|
1158
|
+
`dep-heads` JRuby jobs experimental, so JRuby 10/arjdbc incompatibilities
|
|
1159
|
+
remain visible without blocking release CI.
|
|
1160
|
+
- Same-named Appraisal blocks now merge destination-only `gem` and
|
|
1161
|
+
`eval_gemfile` entries into the templated block, so framework/appraisal tools
|
|
1162
|
+
can enrich standard `ruby-X-Y` appraisals without losing template updates.
|
|
1163
|
+
- Standard test Appraisal blocks now include configured
|
|
1164
|
+
`appraisal_matrix.appraisal_gemfiles`, allowing kettle-jem-appraisals to
|
|
1165
|
+
model required framework dependencies without duplicating the simple
|
|
1166
|
+
framework matrix.
|
|
1167
|
+
- Standard Appraisal gemfile injection now skips blocks already enriched by a
|
|
1168
|
+
collapsed framework/appraisal matrix dependency gemfile, avoiding duplicate
|
|
1169
|
+
broad and version-pinned framework dependency declarations.
|
|
1170
|
+
- Standard Appraisal gemfile injection now distinguishes ordinary modular
|
|
1171
|
+
support gemfiles from framework matrix fragments, so coverage and dependency
|
|
1172
|
+
test appraisals still receive required framework dependencies.
|
|
1173
|
+
- TOML recipe merging now loads the concrete TOML backend provider with
|
|
1174
|
+
kettle-jem, so `.toml` template merges have a registered parser in ordinary
|
|
1175
|
+
bundle contexts.
|
|
1176
|
+
- The generated `.kettle-jem.yml` keeps `Appraisal.root.gemfile`
|
|
1177
|
+
template-owned so stale root-appraisal content is replaced cleanly.
|
|
1178
|
+
- Simple `workflows.framework_matrix` version entries can now target an
|
|
1179
|
+
existing appraisal with `appraisal`, `appraisal_name`, or
|
|
1180
|
+
`standard_appraisal`, allowing explicit collapse onto standard appraisals.
|
|
1181
|
+
- Collapsed `workflows.framework_matrix` appraisals now preserve configured
|
|
1182
|
+
per-version environment variables, can skip framework workflow generation,
|
|
1183
|
+
respect `keep_destination` framework gemfiles, and remove replaced standalone
|
|
1184
|
+
framework appraisal blocks.
|
|
1185
|
+
- Collapsed framework matrix environment variables now render into generated
|
|
1186
|
+
GitHub workflow matrices instead of mutating `ENV` from `Appraisals`, so each
|
|
1187
|
+
appraisal run receives its own framework version without definition-order
|
|
1188
|
+
leakage.
|
|
1189
|
+
- README merge preservation now keeps configured destination-only sections
|
|
1190
|
+
instead of dropping them when the packaged README template has no matching
|
|
1191
|
+
heading.
|
|
1192
|
+
- Added `KETTLE_JEM_SKIP_LOCK_NORMALIZATION` for self-templating unreleased
|
|
1193
|
+
gems whose dependencies cannot yet resolve from remote sources.
|
|
1194
|
+
- Added a native `Kettle::Jem::GemSpecReader` for gemspec metadata so tooling
|
|
1195
|
+
built on `kettle-jem` no longer needs to call into `kettle-dev` for project
|
|
1196
|
+
Ruby floors and gemspec facts.
|
|
1197
|
+
- Kept malformed destination gemspecs from leaving template tokens unresolved
|
|
1198
|
+
by falling back to filename-derived gem identity inside `GemSpecReader`.
|
|
1199
|
+
- Fixed generated appraisal `eval_gemfile` paths so Appraisal2 resolves
|
|
1200
|
+
modular gemfiles relative to `gemfiles/` instead of `gemfiles/gemfiles/`.
|
|
1201
|
+
- Fixed generated Appraisals content so it does not end with an extra blank line.
|
|
1202
|
+
- Fixed generated version-gem Ruby and RBS files so whole-file template tokens
|
|
1203
|
+
do not add an extra blank line at EOF.
|
|
1204
|
+
- Generated Rakefiles now install a `kettle:jem:selftest` fallback when the
|
|
1205
|
+
installed `kettle-jem` package lacks rake task support.
|
|
1206
|
+
- Generated Rakefile merging now normalizes section spacing so template-added
|
|
1207
|
+
task blocks do not introduce RuboCop `Layout/EmptyLines` offenses.
|
|
1208
|
+
- Fixed generated framework workflow YAML indentation so `framework:` remains
|
|
1209
|
+
under `strategy.matrix`.
|
|
1210
|
+
- Removed duplicate generated `spec.homepage` assignments when destination
|
|
1211
|
+
gemspecs already carry the configured homepage.
|
|
1212
|
+
- `kettle-jem install --hook-templates l` now activates the generated
|
|
1213
|
+
project-local `.git-hooks` by setting `core.hooksPath` to `.git-hooks` and
|
|
1214
|
+
ensuring the generated hook scripts are executable.
|
|
1215
|
+
- Removed stale `continue-on-error` handling from the generated style workflow
|
|
1216
|
+
so RuboCop Gradual failures are enforced by default.
|
|
1217
|
+
- Removed stale `continue-on-error` handling from the generated current workflow.
|
|
1218
|
+
- Marked generated workflow files as template-owned by default to prevent stale
|
|
1219
|
+
YAML keys from surviving future template runs.
|
|
1220
|
+
- Replaced generated Appraisal workflow matrix Gemfile indirection with a
|
|
1221
|
+
fixed `Appraisal.root.gemfile` job environment so Appraisal never falls back
|
|
1222
|
+
to the root development `Gemfile`.
|
|
1223
|
+
- Changed packaged GitHub workflow templates to whole-file replacement so stale
|
|
1224
|
+
job steps from older matrix formats cannot accumulate beside new steps.
|
|
1225
|
+
- Preserved destination coverage thresholds when replacing generated coverage
|
|
1226
|
+
workflows.
|
|
1227
|
+
- Preserved the current gem in local modular gemfile workspace arrays when the
|
|
1228
|
+
generated local dependency wiring needs to include it.
|
|
1229
|
+
- Excluded the current gem from generated `eval_nomono_gems` calls so local
|
|
1230
|
+
workspace lists do not conflict with the root `gemspec` dependency.
|
|
1231
|
+
- Excluded already-declared gemspec dependencies from generated local
|
|
1232
|
+
`eval_nomono_gems` calls so local modular gemfiles do not conflict with
|
|
1233
|
+
development dependencies declared by the project gemspec.
|
|
1234
|
+
- Changed post-template lockfile normalization to run `bundle update` with
|
|
1235
|
+
templating and local sibling overrides disabled, so dependency template
|
|
1236
|
+
updates are fully re-resolved against released gems.
|
|
1237
|
+
- `kettle-jem install --accept-config` now immediately applies the newly
|
|
1238
|
+
bootstrapped canonical config before running bundle setup and bundled handoff,
|
|
1239
|
+
so first-time templating installs generate the Gemfile templating wiring that
|
|
1240
|
+
makes `bundle exec kettle-jem` available.
|
|
1241
|
+
- First-time config bootstrap now seeds `project_emoji` from the destination
|
|
1242
|
+
gemspec summary or description when the README does not expose a leading H1
|
|
1243
|
+
emoji.
|
|
1244
|
+
- Generated `mise.toml` files now preserve existing coverage thresholds from
|
|
1245
|
+
the destination `mise.toml` or legacy coverage workflow, so local
|
|
1246
|
+
`kettle-test` runs keep the project's established coverage floor.
|
|
1247
|
+
- Added curated `rbs` and `rspec-core` binstubs because generated CI templates
|
|
1248
|
+
call `bin/rbs` and `bin/rspec` directly through appraisals.
|
|
1249
|
+
- Generated optional Gemfiles now include `rbs` and `stone_checksums`,
|
|
1250
|
+
matching the curated binstubs generated during `kettle-jem install`.
|
|
1251
|
+
- Updated the generated coverage bundle to require `kettle-soup-cover` 2.0.0 or newer.
|
|
1252
|
+
- Removed the generated CodeQL workflow so templated repositories can rely on
|
|
1253
|
+
GitHub CodeQL default setup instead of failing from duplicate advanced setup.
|
|
1254
|
+
- Generated workflow pruning now treats TruffleRuby 23.1 as Ruby 3.1
|
|
1255
|
+
compatible, matching README compatibility pruning and removing that stale
|
|
1256
|
+
workflow from Ruby 3.2+ projects.
|
|
1257
|
+
- Generated JRuby 9.3 workflows now use RubyGems 3.4.22 and Bundler 2.4.22,
|
|
1258
|
+
matching Ruby 2.6 compatibility workflows and avoiding default-gem activation
|
|
1259
|
+
conflicts during Appraisal setup.
|
|
1260
|
+
- Monorepo-root template bootstrap now falls back to package-derived namespace
|
|
1261
|
+
and entrypoint tokens when no gemspec-backed RubyGems config is present.
|
|
1262
|
+
- Updated the generated documentation bundle to require `yard-fence` 0.9.1 or newer.
|
|
1263
|
+
- Removed `--plugin timekeeper` from generated `.yardopts` because
|
|
1264
|
+
yard-timekeeper is installed through the rake `yard` task hook.
|
|
1265
|
+
- Escaped generated README metadata table cells so multiline gemspec
|
|
1266
|
+
descriptions render with `<br>` instead of breaking table rows.
|
|
1267
|
+
- Fixed gemspec emoji normalization so multiline quoted summaries and
|
|
1268
|
+
descriptions remain valid Ruby after templating.
|
|
1269
|
+
- Fixed version-gem bootstrap so an explicit `rubygems.namespace` in
|
|
1270
|
+
`.kettle-jem.yml` wins over stale inferred entrypoint namespaces.
|
|
1271
|
+
- Updated the generated contributing guide to refresh the `REEK` backlog with
|
|
1272
|
+
`bin/rake reek:update` instead of redirecting the raw `reek` executable.
|
|
1273
|
+
- Replaced `bundle binstubs --all` during template install with curated
|
|
1274
|
+
binstubs for documented project entrypoints, and prune stale Bundler-generated
|
|
1275
|
+
development-tool binstubs such as `bin/reek`.
|
|
1276
|
+
- Added `kettle-test` to the curated generated binstub set, and preserve
|
|
1277
|
+
`kettle-drift` binstubs when they already exist from local/plugin installs
|
|
1278
|
+
without requiring unreleased `kettle-drift` in every generated gemspec.
|
|
1279
|
+
- Added `kettle-drift` to generated templating Gemfiles, resolved remotely in
|
|
1280
|
+
templating mode and via `KETTLE_DEV_DEV` locally, separate from the
|
|
1281
|
+
`STRUCTUREDMERGE_DEV` StructuredMerge local gem set.
|
|
1282
|
+
- Refreshed generated README metadata blocks after template README merging so
|
|
1283
|
+
version-derived gemspec metadata such as `source_code_uri` does not stay stale.
|
|
1284
|
+
- Added `yard-yaml` to generated local documentation Gemfiles so local
|
|
1285
|
+
`GALTZO_FLOSS_DEV` runs match the released documentation plugin set.
|
|
1286
|
+
- Updated the generated development dependency on `kettle-test` to require
|
|
1287
|
+
2.0.1 or newer.
|
|
1288
|
+
- Updated the generated development dependency on `kettle-dev` to require
|
|
1289
|
+
2.0.5 or newer.
|
|
1290
|
+
- Monorepo-root bootstrap now keeps existing changelogs instead of replacing
|
|
1291
|
+
release history with a blank generated template.
|
|
1292
|
+
- Monorepo-root Rakefiles no longer lose existing RSpec/default tasks during
|
|
1293
|
+
scaffold cleanup before plugin task injection runs.
|
|
1294
|
+
- StructuredMerge family templating now runs child gem updates under the
|
|
1295
|
+
kettle-jem bundle so child directories without a Gemfile do not inherit the
|
|
1296
|
+
workspace root bundle.
|
|
1297
|
+
- StructuredMerge family templating now uses a gitmoji-prefixed default commit
|
|
1298
|
+
message so scripted commits satisfy the local commit hook.
|
|
1299
|
+
- Generated framework CI now uses an explicit framework matrix axis instead
|
|
1300
|
+
of GitHub Actions `include` expansion.
|
|
1301
|
+
- Scrubbed parent Bundler activation variables before the post-template
|
|
1302
|
+
lockfile normalization command runs in the destination project.
|
|
1303
|
+
- Preserved multiline heredoc gemspec assignments as whole fields during
|
|
1304
|
+
gemspec template merging.
|
|
1305
|
+
- Generated two-segment framework requirements as patch-bounded pessimistic
|
|
1306
|
+
constraints, e.g. `~> 7.0.0`, so framework appraisals do not drift to
|
|
1307
|
+
later minor versions.
|
|
1308
|
+
- Removed generated gemspec development dependencies when the destination
|
|
1309
|
+
already declares the same gem as a runtime dependency.
|
|
1310
|
+
- Preserved zero-byte generated template outputs such as `REEK` instead of
|
|
1311
|
+
normalizing them to a single blank line.
|
|
1312
|
+
- Added `workflows.recording` to `.kettle-jem.yml` so generated Appraisals only
|
|
1313
|
+
include VCR/WebMock recording gemfiles for projects that opt in.
|
|
1314
|
+
- Applied configured `rubygems.min_ruby` to generated gemspec
|
|
1315
|
+
`required_ruby_version` instead of preserving a stale destination value.
|
|
1316
|
+
- Preserved heredoc gemspec descriptions when applying project emoji
|
|
1317
|
+
normalization so templating does not corrupt valid `<<~` assignments.
|
|
1318
|
+
- Generated local templating Gemfiles now wire `tree_sitter_language_pack` from
|
|
1319
|
+
the sibling StructuredMerge checkout when iterating on unreleased
|
|
1320
|
+
`kettle-jem`, avoiding broken released native gem materialization.
|
|
1321
|
+
- Generated `spec/spec_helper.rb` now starts `kettle-soup-cover`/SimpleCov
|
|
1322
|
+
before loading the library so `kettle-test` produces the canonical
|
|
1323
|
+
`coverage/coverage.json` consumed by `kettle-changelog`.
|
|
1324
|
+
- VersionGem-managed `version.rb` and `version.rbs` packaged template targets
|
|
1325
|
+
now default to whole-file replacement, preventing legacy version constants
|
|
1326
|
+
from being merged into the generated shape.
|
|
1327
|
+
|
|
1328
|
+
- kettle-jem-template-20260726-002 - Generated version files now document their
|
|
1329
|
+
version namespace and constants, reducing warning-only YARD lint output.
|
|
1330
|
+
|
|
1331
|
+
- kettle-jem-template-20260726-003 - Coverage upload steps now treat Coveralls,
|
|
1332
|
+
QLTY, and Codecov as optional, so provider outages do not fail CI when local
|
|
1333
|
+
coverage thresholds still pass.
|
|
1334
|
+
- kettle-jem-template-20260728-004 - Generated dep-heads workflows now use the
|
|
1335
|
+
setup-ruby Bundler install path for direct appraisal Gemfiles, avoiding rv
|
|
1336
|
+
lockfile parser failures on Git and path dependencies.
|
|
1337
|
+
- kettle-jem-template-20260728-005 - VersionGem bootstrap now creates the
|
|
1338
|
+
missing canonical version spec when a project only has shim namespace version
|
|
1339
|
+
specs.
|
|
1340
|
+
|
|
1341
|
+
- kettle-jem-template-20260730-001 - Gemspec package file enumeration now runs
|
|
1342
|
+
relative to the gemspec directory, so packaged template assets are included
|
|
1343
|
+
even when the gemspec is loaded from another working directory.
|
|
1344
|
+
|
|
1345
|
+
- kettle-jem-template-20260801-002 - Generated RSpec helpers now normalize
|
|
1346
|
+
managed configuration block bindings structurally, preventing mixed block
|
|
1347
|
+
parameter names from producing invalid configuration after a merge.
|
|
1348
|
+
- kettle-jem-template-20260801-003 - Generated project metadata and
|
|
1349
|
+
documentation now normalize configured underscore hostnames to valid
|
|
1350
|
+
hyphenated hostnames.
|
|
1351
|
+
- kettle-jem-template-20260801-004 - Generated organization README logos now
|
|
1352
|
+
use GitHub's stable organization avatar endpoint instead of assuming a
|
|
1353
|
+
matching Galtzo-hosted asset exists.
|
|
1354
|
+
|
|
1355
|
+
- Repair stale executable version headers when a configured entrypoint differs from the package name.
|
|
1356
|
+
|
|
1357
|
+
- Generated README titles now lead with the package name when a gem retains a different legacy namespace.
|
|
1358
|
+
|
|
1359
|
+
- Generated gitignore files now ignore nested modular Gemfile lockfiles.
|
|
1360
|
+
|
|
1361
|
+
- Preserve destination README KLOC badges when current changelog coverage metadata is unavailable.
|
|
1362
|
+
|
|
1363
|
+
- Allow local Gemfile bootstraps to reuse an already activated compatible nomono version instead of pinning an older lockfile version.
|
|
1364
|
+
|
|
1365
|
+
- Remove legacy rubocop-rspec development dependencies that conflict with generated rubocop-lts-rspec tooling.
|
|
1366
|
+
|
|
1367
|
+
- Recover legacy lockfiles with unsupported tree_sitter_language_pack platforms during templating bootstrap.
|
|
1368
|
+
|
|
1369
|
+
- Remove legacy yard-junk development dependencies that conflict with generated documentation tooling.
|
|
1370
|
+
|
|
1371
|
+
- Gemfile accept-template strategy now replaces an existing dependency source instead of retaining it.
|
|
1372
|
+
|
|
1373
|
+
- Transfer changelog filters now remove inapplicable template-owned entries from released and Unreleased sections.
|
|
1374
|
+
|
|
1375
|
+
- Preserve generated version requires before executable entrypoint code when later requires exist.
|
|
1376
|
+
|
|
1377
|
+
- Merge devcontainer JSON files as JSONC so comments and trailing commas are supported.
|
|
1378
|
+
|
|
1379
|
+
- Keep parser-backed and stateful template recipes out of parallel planning workers.
|
|
1380
|
+
|
|
1381
|
+
- Preserve destination-specific SimpleCov filters and formatters when migrating legacy SimpleCov.start configuration blocks.
|
|
1382
|
+
|
|
1383
|
+
- Remove legacy standard-library declarations from Appraisals blocks managed by modular x_std_libs gemfiles.
|
|
1384
|
+
|
|
1385
|
+
- Recreate missing managed modular Gemfiles instead of treating empty checksum records as cache hits.
|
|
1386
|
+
|
|
1387
|
+
- Recognize legacy Dir.chdir-wrapped git ls-files gemspec package manifests during templating.
|
|
1388
|
+
|
|
1389
|
+
- Replace stale byebug-family spec helper requires with debug during templating.
|
|
1390
|
+
|
|
1391
|
+
- Migrate byebug-family dependencies to debug independently within each appraisal.
|
|
1392
|
+
|
|
1393
|
+
- Remove preserved duplicate gemspec dependency declarations after template merge.
|
|
1394
|
+
|
|
1395
|
+
- Template policy fingerprints now invalidate cached Appraisal, gemspec, and spec helper transforms when their merge behavior changes.
|
|
1396
|
+
|
|
1397
|
+
- Modular Gemfile fragments now retain their named runtime dependency when materializing missing files.
|
|
1398
|
+
|
|
1399
|
+
- kettle-jem-template-20260802-001 - Devcontainer JSON files now merge as JSONC,
|
|
1400
|
+
preserving comments and trailing commas during template updates.
|
|
1401
|
+
|
|
1402
|
+
- Fail templating when direct project dependencies collide with templated modular Gemfiles unless an exact decision is recorded in kettle-jem configuration.
|
|
1403
|
+
|
|
1404
|
+
- Preserve explicit Bundler checksum validation settings during template setup.
|
|
1405
|
+
|
|
1406
|
+
- Prevent local modular Gemfiles from evaluating the destination gem as a sibling path dependency.
|
|
1407
|
+
|
|
1408
|
+
- Avoid pinning local nomono bootstraps to unavailable versions from stale lockfiles.
|
|
1409
|
+
|
|
1410
|
+
- Clarify modular dependency conflict decisions and reject incompatible keep_both requirements.
|
|
1411
|
+
|
|
1412
|
+
- Repair legacy local Gemfile nomono bootstraps before the templating dependency bundle starts.
|
|
1413
|
+
|
|
1414
|
+
- Run legacy local Gemfile bootstrap repair after managed template application so stale nomono pins cannot reach Bundler.
|
|
1415
|
+
|
|
1416
|
+
- Remove direct rdoc development dependencies from templated gemspecs; Yard owns documentation dependencies.
|
|
1417
|
+
|
|
1418
|
+
- Remove explicit rdoc development dependency declarations from documentation modular Gemfiles.
|
|
1419
|
+
|
|
1420
|
+
- Generate engine-specific dependency lockfiles for JRuby CI workflows
|
|
1421
|
+
|
|
1422
|
+
- Generate JRuby dependency lockfiles directly instead of requiring ignored appraisal lockfiles
|
|
1423
|
+
|
|
1424
|
+
- Refresh kettle-family with nomono in the templating workflow.
|
|
1425
|
+
|
|
1426
|
+
- Guard generated debug requires for Ruby versions below the debug gem support floor.
|
|
1427
|
+
|
|
1428
|
+
- Bootstrap VersionGem wiring in existing package-level shims instead of nested implementation files.
|
|
1429
|
+
|
|
1430
|
+
- Infer direct VERSION namespaces and remove stale VersionGem wiring from former nested implementation entrypoints.
|
|
1431
|
+
|
|
1432
|
+
- Allow legacy appraisal projects to opt into a compatible Bundler via KJ_BUNDLER_VERSION.
|
|
1433
|
+
|
|
1434
|
+
- Normalize stale VersionGem class extensions when repairing an existing package shim.
|
|
1435
|
+
|
|
1436
|
+
- Remove legacy VersionGem extensions from nested implementation files during package-shim repair.
|
|
1437
|
+
|
|
1438
|
+
- Preserve local modular Gemfile bodies during template finalization.
|
|
1439
|
+
|
|
1440
|
+
- Avoid duplicate version requires when a package shim delegates version loading to its implementation.
|
|
1441
|
+
|
|
1442
|
+
- Version specs now load inline version-gem package entrypoints before exercising the VersionGem API.
|
|
1443
|
+
|
|
1444
|
+
- Version specs now require the discovered Ruby entrypoint for hyphenated package names.
|
|
1445
|
+
|
|
1446
|
+
- Version bootstrap repairs remove stale package-name requires when the discovered Ruby entrypoint uses a different require path.
|
|
1447
|
+
|
|
1448
|
+
- Version specs for packages with nested version entrypoints now load the package shim when it owns the version bootstrap.
|
|
1449
|
+
|
|
1450
|
+
- Use the canonical version file when deriving a gem namespace during templating.
|
|
1451
|
+
|
|
1452
|
+
- Invalidate version namespace template checksums after renderer policy changes so corrected bootstrap output can repair prior template damage.
|
|
1453
|
+
|
|
1454
|
+
- Reconcile malformed version namespaces against destination class declarations during templating.
|
|
1455
|
+
|
|
1456
|
+
- Preserve class-based version namespaces during template bootstrap.
|
|
1457
|
+
|
|
1458
|
+
- Preserve modular Gemfile content while filtering direct dependency conflicts.
|
|
1459
|
+
|
|
1460
|
+
- Keep policy-preserving modular Gemfile rewrites during lint autocorrection.
|
|
1461
|
+
|
|
1462
|
+
- Preserve explicit class namespace superclasses when generating VersionGem version files.
|
|
1463
|
+
|
|
1464
|
+
- Preserve tracked project-owned Bundler binstubs during template bootstrap.
|
|
1465
|
+
|
|
1466
|
+
- Preserve existing Version module includes when templating version files.
|
|
1467
|
+
|
|
1468
|
+
- Generated workflows now pin the setup-ruby-flash revision that supports compatibility-bundle retries.
|
|
1469
|
+
|
|
1470
|
+
- Debug requires generated by templating now remain opt-in and disabled in CI
|
|
1471
|
+
|
|
1472
|
+
- Define the Discord badge reference in generated CONTRIBUTING.md files.
|
|
1473
|
+
|
|
1474
|
+
- Restore legacy LICENSE.txt and workflow cleanup during templating, and treat falsey TSLP_DEV values as unset.
|
|
1475
|
+
|
|
1476
|
+
- Migrate MIT LICENSE.txt copyright notices safely and preserve custom license files with an unlabelled LICENSE.md link.
|
|
1477
|
+
|
|
1478
|
+
- Keep git-blame copyright facts authoritative when migrating legacy MIT LICENSE.txt files.
|
|
1479
|
+
|
|
1480
|
+
- Monorepo subgem mise templates no longer enforce aggregate coverage thresholds during per-gem release checks.
|
|
1481
|
+
|
|
1482
|
+
- Exclude the intentional vHEAD.gemfile appraisal filename from templated RuboCop filename checks.
|
|
1483
|
+
|
|
1484
|
+
- Include the canonical Rakefile scaffold in monorepo subgem templates.
|
|
1485
|
+
|
|
1486
|
+
- Resolve all local StructuredMerge sibling dependencies in isolated require-boundary tests.
|
|
1487
|
+
|
|
1488
|
+
## [7.0.0] - 2026-05-05
|
|
1489
|
+
|
|
1490
|
+
- TAG: [v7.0.0][7.0.0t]
|
|
1491
|
+
|
|
1492
|
+
### Added
|
|
1493
|
+
|
|
1494
|
+
- Released kettle-jem as part of the initial StructuredMerge Ruby 7.0.0 gem set.
|
|
1495
|
+
- Included packaged templates and parser-backed merge support for Ruby gem templating.
|
|
1496
|
+
|
|
1497
|
+
[Unreleased]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.3...HEAD
|
|
1498
|
+
[7.1.3]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.2...v7.1.3
|
|
1499
|
+
[7.1.3t]: https://github.com/structuredmerge/structuredmerge-ruby/releases/tag/v7.1.3
|
|
1500
|
+
[7.1.2]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.1...v7.1.2
|
|
1501
|
+
[7.1.2t]: https://github.com/structuredmerge/structuredmerge-ruby/releases/tag/v7.1.2
|
|
1502
|
+
[7.1.1]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.0.0...v7.1.1
|
|
1503
|
+
[7.1.1t]: https://github.com/structuredmerge/structuredmerge-ruby/releases/tag/v7.1.1
|
|
1504
|
+
[7.0.0]: https://github.com/structuredmerge/structuredmerge-ruby/compare/0aae485e7ca20583b73f8c146f467a64e526ca41...v7.0.0
|
|
1505
|
+
[7.0.0t]: https://github.com/structuredmerge/structuredmerge-ruby/releases/tag/v7.0.0
|