Changelog
August 12, 2026 · View on GitHub
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning, and yes, platform and engine support are part of the public API. Please file a bug if you notice a violation of semantic versioning.
Unreleased
Added
Changed
Deprecated
Removed
Fixed
Security
2.0.20 - 2026-08-12
- TAG: v2.0.20
- COVERAGE: 96.84% -- 92/95 lines in 17 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 17 files
- 100.00% documented
Changed
-
Prepare project for kettle-jem templates: updated 11 project files across dependencies (11).
-
Apply kettle-jem templates: updated 7 project files across code and tests (1), configuration (1), dependencies (1), documentation (1), other (3).
Fixed
- Fix the README Configuration link so release Markdown reference validation resolves its heading anchor.
2.0.19 - 2026-08-02
- TAG: v2.0.19
- COVERAGE: 96.84% -- 92/95 lines in 17 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 17 files
- 100.00% documented
Fixed
- kettle-jem-template-20260802-001 - Devcontainer JSON files now merge as JSONC, preserving comments and trailing commas during template updates.
2.0.18 - 2026-08-01
- TAG: v2.0.18
- COVERAGE: 96.84% -- 92/95 lines in 17 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 17 files
- 100.00% documented
Changed
- kettle-jem-template-20260801-001 - Generated README gem dashboard links now use ClickGems instead of BestGems.
Fixed
- kettle-jem-template-20260801-002 - Generated RSpec helpers now normalize managed configuration block bindings structurally, preventing mixed block parameter names from producing invalid configuration after a merge.
- kettle-jem-template-20260801-003 - Generated project metadata and documentation now normalize configured underscore hostnames to valid hyphenated hostnames.
- kettle-jem-template-20260801-004 - Generated organization README logos now use GitHub's stable organization avatar endpoint instead of assuming a matching Galtzo-hosted asset exists.
2.0.17 - 2026-07-30
- TAG: v2.0.17
- COVERAGE: 96.84% -- 92/95 lines in 17 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 17 files
- 100.00% documented
Added
Fixed
-
kettle-jem-template-20260728-003 - Generated dep-heads workflows now run TruffleRuby jobs with current RubyGems and Bundler, avoiding setup failures before the test suite starts.
-
kettle-jem-template-20260728-004 - Generated dep-heads workflows now use the setup-ruby Bundler install path for direct appraisal Gemfiles, avoiding rv lockfile parser failures on Git and path dependencies.
-
kettle-jem-template-20260728-005 - VersionGem bootstrap now creates the missing canonical version spec when a project only has shim namespace version specs.
-
kettle-jem-template-20260729-001 - Generated JRuby 9.4 workflows now use the legacy manual bundle install path, avoiding setup-time Bundler full-index failures against
gem.coop. -
kettle-jem-template-20260729-002 - VersionGem bootstrap now preserves and templates dedicated
version_gem.rbentrypoints even when the gemspec dependency is intentionally omitted, and generated anonymous-loader specs cover bothversion.rbandversion_gem.rb. -
kettle-jem-template-20260730-001 - Gemspec package file enumeration now runs relative to the gemspec directory, so packaged template assets are included even when the gemspec is loaded from another working directory.
-
Generated gemspec package file enumeration now avoids
Array#filter_map, so JRuby 9.2 / Ruby 2.5 workflow jobs can parse the gemspec during Bundler install.
2.0.16 - 2026-07-28
- TAG: v2.0.16
- COVERAGE: 92.63% -- 88/95 lines in 17 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 17 files
- 100.00% documented
Added
-
kettle-jem-template-20260726-001 - Projects now include YARD lint configuration and documentation dependencies so documentation issues fail before generated docs are refreshed.
-
kettle-jem-template-20260727-001 - Spec harness documentation now lists the RSpec helpers provided by
kettle-test.
Changed
-
The
kettle-testexecutable startup header is now shown only when--verboseis passed;-vand--versionstill print just the executable version and exit. -
kettle-jem-template-20260725-001 - Release pull request branches beginning with
feature/releasenow run JRuby and TruffleRuby workflows. -
kettle-jem-template-20260725-002 - Version specs now use
anonymous_loaderto coverversion.rbwithout redefining constants, or are removed when version specs are not managed for the project. -
kettle-jem-template-20260728-001 - Generated Ruby workflows now use clearer setup-ruby-flash planning and can prepare appraisal-only jobs without installing the main Gemfile bundle.
Fixed
-
kettle-jem-template-20260726-002 - Generated version files now document their version namespace and constants, reducing warning-only YARD lint output.
-
kettle-jem-template-20260726-003 - Coverage upload steps now treat Coveralls, QLTY, and Codecov as optional, so provider outages do not fail CI when local coverage thresholds still pass.
-
kettle-jem-template-20260728-002 - Generated RuboCop configs now ignore the same
gemfiles/vendor/bundletree as.gitignore, so vendored dependency installs are not reported as project lint debt. -
TruffleRuby dep-heads CI now uses current RubyGems and Bundler during setup, avoiding setup failures before the test suite starts.
2.0.15 - 2026-07-24
- TAG: v2.0.15
- COVERAGE: 96.84% -- 92/95 lines in 17 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 17 files
- 90.00% documented
Changed
- The
kettle-testexecutable now supports-v/--versionand prints a standard startup header before invoking the test runner.
Fixed
- The
kettle-testexecutable now uses normalrequireloading for its version file, avoidingrequire_relativelint drift in shipped executables.
2.0.14 - 2026-07-23
- TAG: v2.0.14
- COVERAGE: 96.84% -- 92/95 lines in 17 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 17 files
- 90.00% documented
Fixed
- Final run highlights now deduplicate identical failed-example lines emitted more than once by runner output streams.
2.0.13 - 2026-07-22
- TAG: v2.0.13
- COVERAGE: 96.84% -- 92/95 lines in 17 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 17 files
- 90.00% documented
Fixed
kettle-testnow sets turbo_tests2 worker output toquietby default when kettle-test silent mode is enabled, while preserving an explicitTURBO_TESTS2_WORKER_OUTPUToverride.
2.0.12 - 2026-07-21
- TAG: v2.0.12
- COVERAGE: 96.84% -- 92/95 lines in 17 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 17 files
- 90.00% documented
Changed
-
kettle-jem-template-20260716-002 - Generated gemspec manifests now ship fewer repository-only files by default to reduce downstream distro packaging churn.
-
kettle-jem-template-20260720-002 - Generated development Gemfiles now use the released
tree_sitter_language_packgem 1.13.3 or newer by default. -
kettle-jem-template-20260720-003 - Generated StructuredMerge Git diff driver config now uses the installed
smorg-rbRuby driver name. -
kettle-jem-template-20260720-005 - Generated README Support & Community rows now include a RubyForum help badge.
2.0.11 - 2026-07-16
- TAG: v2.0.11
- COVERAGE: 96.84% -- 92/95 lines in 17 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 17 files
- 90.00% documented
Fixed
kettle-testnow has regression coverage ensuringfile:lineRSpec selectors are forwarded unchanged to the defaultturbo_tests2runner.
2.0.10 - 2026-07-11
- TAG: v2.0.10
- COVERAGE: 96.84% -- 92/95 lines in 17 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 17 files
- 90.00% documented
Changed
require "kettle/test"no longer loadsversion_gemby default; requirekettle/test/version_gemfor the optionalVersionGem::Basicextension.
2.0.9 - 2026-07-01
- TAG: v2.0.9
- COVERAGE: 96.81% -- 91/94 lines in 16 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 16 files
- 90.00% documented
Fixed
- Package configured license files in gem release file lists.
2.0.8 - 2026-06-27
- TAG: v2.0.8
- COVERAGE: 96.81% -- 91/94 lines in 16 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 16 files
- 90.00% documented
Changed
- Runtime dependency
rspec-stubbed_envnow requires v1.0.5 or newer.
2.0.7 - 2026-06-24
- TAG: v2.0.7
- COVERAGE: 96.81% -- 91/94 lines in 16 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 16 files
- 90.00% documented
Changed
- Updated to latest kettle-jem template
- Updated GHA SHA pins
- Updated dependencies
2.0.6 - 2026-06-21
- TAG: v2.0.6
- COVERAGE: 96.81% -- 91/94 lines in 16 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 16 files
- 90.00% documented
Added
-
Support JRuby 10.1, truffleruby 34.0
-
Added support for JRuby 10.1 and TruffleRuby 34.0.
Changed
- Retemplated project metadata and CI/development automation with
kettle-jemv7.0.0. - Runtime dependency
turbo_tests2now requires v3.1.4 or newer.
2.0.5 - 2026-06-10
- TAG: v2.0.5
- COVERAGE: 100.00% -- 91/91 lines in 15 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
- 90.00% documented
Changed
-
Retemplated project metadata and development tooling for
kettle-dev2.2.1 andyard-fence0.9.3. -
Retemplated development tooling for
kettle-dev2.2.3 andkettle-soup-cover2.0.2.
Fixed
-
Restored
docs/CNAMEso the generated documentation site keeps its custom domain. -
Updated generated project metadata links to use the migrated
kettle-devGitHub organization.
2.0.4 - 2026-06-08
- TAG: v2.0.4
- COVERAGE: 100.00% -- 91/91 lines in 15 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
- 90.00% documented
Changed
- Retemplated project workflows with the current kettle-jem template and raised
the runtime
turbo_tests2dependency floor to v3.1.2.
Fixed
kettle-testnow configures RSpec random ordering so run highlights include the randomization seed needed to reproduce order-dependent failures.
2.0.3 - 2026-06-02
- TAG: v2.0.3
- COVERAGE: 100.00% -- 91/91 lines in 15 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
- 90.00% documented
Changed
- Retemplated project files with the current kettle-jem template, including refreshed coverage and style dependency floors.
- Updated the runtime
turbo_tests2dependency to require v3.1.1 or newer. - Updated to latest versions of other dependencies
Fixed
- Made the ENV-driven configuration spec explicitly remove nil-valued child
process overrides so JRuby 9.2 does not inherit
KETTLE_TEST_SILENT=false.
2.0.2 - 2026-06-01
- TAG: v2.0.2
- COVERAGE: 100.00% -- 91/91 lines in 15 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
- 90.00% documented
Changed
- Retemplated project files with the current kettle-jem template, including the StructuredMerge config migration, generated workflow updates, README logo refresh, and updated development dependency floors.
- Updated the runtime
turbo_tests2dependency to require v3.1.0 or newer.
Fixed
kettle-testnow resolves Appraisal gemfiles undergemfiles/back to the project root before running specs, so coverage and log artifacts stay under root-levelcoverage/andtmp/instead of being written insidegemfiles/.
2.0.1 - 2026-05-25
- TAG: v2.0.1
- COVERAGE: 100.00% -- 91/91 lines in 15 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
- 90.00% documented
Changed
- Refreshed generated project templates and CI workflows.
- Refreshed project templating and generated documentation after the 2.0.0 release.
- Pruned generated binstubs to the current curated kettle-jem set.
- Updated local modular Gemfile sibling wiring for coverage, documentation, and templating.
- Updated the coverage bundle to require
kettle-soup-cover1.1.3 or newer.
Fixed
kettle-testnow invokeskettle-soup-cover's turbo coverage setup and cleanup APIs directly around the defaultturbo_tests2runner, so collated coverage artifacts are published even when the host Rakefile does not load the optional turbo coverage rake tasks.kettle-test --helpnow prints usage and exits without creatingtmp/kettle-testlogs or invoking the configured test runner.
2.0.0 - 2026-05-23
- TAG: v2.0.0
- COVERAGE: 100.00% -- 91/91 lines in 15 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
- 90.00% documented
Added
- Added the
kettle-testexecutable, which runs RSpec through Bundler, captures full output undertmp/kettle-test/, and prints a compact failure, seed, timing, and coverage summary. - Added default
kettle/test/rspecintegration coverage for exported RSpec helpers and configuration constants.
Changed
kettle-testnow runs specs throughturbo_tests2by default, withKETTLE_TEST_RUNNER=rspecavailable as an opt-out for direct RSpec runs.- Added
KETTLE_TEST_TURBO_PROCESSES,KETTLE_TEST_TURBO_RUNTIME_LOG, andKETTLE_TEST_TURBO_NICEcontrols for the defaultturbo_tests2runner. - Switched the coverage test stack to
turbo_tests2 ~> 3.0. - Migrated local development dependency wiring to the current nomono-based modular Gemfile pattern used by the kettle-dev template.
- Refreshed project templating, CI workflows, and release support files from the current kettle-jem full template.
- Changed the project license metadata and generated license files to
AGPL-3.0-only. - Dropped support for Ruby 2.3 because
turbo_tests2is now a runtime dependency and requires Ruby 2.4 or newer.
1.0.10 - 2026-02-06
- TAG: v1.0.10
- COVERAGE: 100.00% -- 86/86 lines in 15 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
- 100.00% documented
Changed
- Upgraded to appraisal2 v3.0.1
Fixed
- removed redundant development dependencies
1.0.9 - 2026-02-06
- TAG: v1.0.9
- COVERAGE: 100.00% -- 86/86 lines in 15 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
- 100.00% documented
Added
- Document usage of rspec-pending_for
1.0.8 - 2026-02-06
- TAG: v1.0.8
- COVERAGE: 100.00% -- 86/86 lines in 15 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
- 100.00% documented
Added
- rspec/pending_for made available by default
skip_forandpending_forare now available by default, without needing to explicitly require 'rspec/pending_for'
Changed
- Updated documentation on hostile takeover of RubyGems
1.0.7 - 2025-12-06
- TAG: v1.0.7
- COVERAGE: 100.00% -- 84/84 lines in 15 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
- 100.00% documented
Added
- traditional
Kettle::Test::VERSIONconstant - make
hide_env(from rspec-stubbed_env) available by default - increased documentation to 100%, and added many documentation improvements
1.0.6 - 2025-10-21
- TAG: v1.0.6
- COVERAGE: 100.00% -- 83/83 lines in 15 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
- 94.44% documented
Added
- more complete usage documentation
Fixed
- completed change of backports to runtime dependency
1.0.5 - 2025-10-20
- TAG: v1.0.5
- COVERAGE: 100.00% -- 83/83 lines in 15 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 15 files
- 94.44% documented
Added
- runtime dependency on rspec-pending_for
1.0.4 - 2025-10-20
- TAG: v1.0.4
- COVERAGE: 100.00% -- 81/81 lines in 13 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 13 files
- 94.44% documented
Added
- dependency on backports for Ruby 2.3 & 2.4 support
- default config for rspec-pending_for
Changed
- upgraded kettle-dev to 1.1.34 for development
1.0.3 - 2025-08-29
- TAG: v1.0.3
- COVERAGE: 100.00% -- 81/81 lines in 13 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 13 files
- 94.44% documented
Added
- improved documentation in README.md
- opencollective funding links to README.md
Changed
- kettle-dev 1.0.18 for development
Removed
- invalid checksums for old releases
1.0.2 - 2025-08-29
- TAG: v1.0.2
- COVERAGE: 100.00% -- 81/81 lines in 13 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 13 files
- 94.44% documented
Removed
- checksums from packaged gem
Fixed
- gem packaged without checksums
- can't be in the packaged gem, since they would change the checksum of the gem itself
Security
- corrected checksums for the next release (not packaged, only tracked in VCS)
1.0.1 - 2025-08-29
- TAG: v1.0.1
- COVERAGE: 100.00% -- 81/81 lines in 13 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 13 files
- 94.44% documented
Added
- RSpec shared context: "with rake"
Fixed
- Typos in README.md
- Typos in CHANGELOG.md
1.0.0 - 2025-08-22
- TAG: v1.0.0
- COVERAGE: 100.00% -- 69/69 lines in 13 files
- BRANCH COVERAGE: 100.00% -- 2/2 branches in 13 files
- 94.44% documented
Added
- initial release, with auto-config support for:
- rspec
- rspec-block_is_expected
- rspec-stubbed_env
- silent_stream
- timecop-rspec