Changelog
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 againstgem.coop. - kettle-jem-template-20260729-002 - VersionGem bootstrap now preserves
and templates dedicatedversion_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 bykettle-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
withfeature/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
samegemfiles/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 explicit
TURBO_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
releasedtree_sitter_language_packgem 1.13.3 or newer by default. - kettle-jem-template-20260720-003 - Generated StructuredMerge Git diff driver
config now uses the installedsmorg-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; require
kettle/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 and
kettle-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-dev
GitHub 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 runtimeturbo_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 inheritKETTLE_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 creating
tmp/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, with
KETTLE_TEST_RUNNER=rspecavailable as an opt-out for direct RSpec runs. - Added
KETTLE_TEST_TURBO_PROCESSES,KETTLE_TEST_TURBO_RUNTIME_LOG, and
KETTLE_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
- https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo
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