Changelog

August 12, 2026 · View on GitHub

SemVer 2.0.0 Keep-A-Changelog 1.0.0

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.rb entrypoints even when the gemspec dependency is intentionally omitted, and generated anonymous-loader specs cover both version.rb and version_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-test executable startup header is now shown only when --verbose is passed; -v and --version still print just the executable version and exit.

  • kettle-jem-template-20260725-001 - Release pull request branches beginning with feature/release now run JRuby and TruffleRuby workflows.

  • kettle-jem-template-20260725-002 - Version specs now use anonymous_loader to cover version.rb without 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/bundle tree 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-test executable now supports -v / --version and prints a standard startup header before invoking the test runner.

Fixed

  • The kettle-test executable now uses normal require loading for its version file, avoiding require_relative lint 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-test now sets turbo_tests2 worker output to quiet by default when kettle-test silent mode is enabled, while preserving an explicit TURBO_TESTS2_WORKER_OUTPUT override.

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_pack gem 1.13.3 or newer by default.

  • kettle-jem-template-20260720-003 - Generated StructuredMerge Git diff driver config now uses the installed smorg-rb Ruby 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-test now has regression coverage ensuring file:line RSpec selectors are forwarded unchanged to the default turbo_tests2 runner.

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 loads version_gem by default; require kettle/test/version_gem for the optional VersionGem::Basic extension.

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_env now 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-jem v7.0.0.
  • Runtime dependency turbo_tests2 now 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-dev 2.2.1 and yard-fence 0.9.3.

  • Retemplated development tooling for kettle-dev 2.2.3 and kettle-soup-cover 2.0.2.

Fixed

  • Restored docs/CNAME so 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 runtime turbo_tests2 dependency floor to v3.1.2.

Fixed

  • kettle-test now 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_tests2 dependency 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_tests2 dependency to require v3.1.0 or newer.

Fixed

  • kettle-test now resolves Appraisal gemfiles under gemfiles/ back to the project root before running specs, so coverage and log artifacts stay under root-level coverage/ and tmp/ instead of being written inside gemfiles/.

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-cover 1.1.3 or newer.

Fixed

  • kettle-test now invokes kettle-soup-cover's turbo coverage setup and cleanup APIs directly around the default turbo_tests2 runner, so collated coverage artifacts are published even when the host Rakefile does not load the optional turbo coverage rake tasks.
  • kettle-test --help now prints usage and exits without creating tmp/kettle-test logs 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-test executable, which runs RSpec through Bundler, captures full output under tmp/kettle-test/, and prints a compact failure, seed, timing, and coverage summary.
  • Added default kettle/test/rspec integration coverage for exported RSpec helpers and configuration constants.

Changed

  • kettle-test now runs specs through turbo_tests2 by default, with KETTLE_TEST_RUNNER=rspec available as an opt-out for direct RSpec runs.
  • Added KETTLE_TEST_TURBO_PROCESSES, KETTLE_TEST_TURBO_RUNTIME_LOG, and KETTLE_TEST_TURBO_NICE controls for the default turbo_tests2 runner.
  • 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_tests2 is 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

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_for and pending_for are now available by default, without needing to explicitly require 'rspec/pending_for'

Changed

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::VERSION constant
  • 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