• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kettle-dev / kettle-family / 38017173952
88%

Build:
DEFAULT BRANCH: main
Ran 10 Oct 2026 02:31AM UTC
Jobs 1
Files 40
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

10 Oct 2026 02:29AM UTC coverage: 88.363% (+0.1%) from 88.262%
38017173952

push

github

pboling
✨ Add clean-blockers for cross-family unreleased pins

clean-unreleased derives its candidates from family members' release
state, so it can only remove a sibling of its own family. The gems that
actually block a release are usually cross-family, and each family is
blocked by the other's legitimately installed development versions.
Measured live:

  kettle-dev        28 pins   ast-crispr 7.1.10, ast-merge, tree_haver...
  kettle-drift      22 pins   (all StructuredMerge gems)
  kettle-family     28 pins   (all StructuredMerge gems)
  kettle-changelog   2 pins   nomono 1.1.7, token-resolver 2.0.13
  kettle-jem         3 pins   kettle-test 2.0.24, nomono, token-resolver
  smorg-rb           3 pins   (all kettle-dev gems)

Neither family's clean-unreleased can see the other's offenders. That is
what forced the kettle-dev 3.1.9 and kettle-family 1.3.7 releases to be
finished manually after gem push: the tag, checksum and GitHub Release
steps all run through a release-mode dependency update, which cannot
resolve while cross-family unreleased pins are present.

Blockers come from calling PublishedVersionCheck directly on each
selected member and reading its structured diagnostics, NOT from running
the blocked command and parsing its report. A dry-run release cannot
surface them: workflow.rb:2522-2526 replaces the member result with a
synthetic "release readiness requires lockfile normalization" entry
before append_release_internal_checks runs, so published_version_check
never appears and every diagnostics array is empty. The findings are
computed inside release_lockfile_readiness_would_fail?
(workflow.rb:5785-5794) and then discarded in favour of a boolean.
Obtaining them via --execute would run the release being unblocked.

PublishedVersionCheck is read-only, so planning needs no --execute; only
the uninstall is gated.

Extracts GemUninstallSupport from UnreleasedGemCleanup so both commands
share the machinery that is hard to get right, rather than duplica... (continued)

2778 of 3563 branches covered (77.97%)

Branch coverage included in aggregate %.

138 of 140 new or added lines in 5 files covered. (98.57%)

6896 of 7385 relevant lines covered (93.38%)

108.5 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
97.37
lib/kettle/family/blocker_cleanup.rb
1
87.09
-0.07% lib/kettle/family/cli.rb
Jobs
ID Job ID Ran Files Coverage
1 38017173952.1 10 Oct 2026 02:31AM UTC 40
88.36
GitHub Action Run
Source Files on build 38017173952
  • Tree
  • List 40
  • Changed 4
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #38017173952
  • aefb66b5 on github
  • Prev Build on main (#38003408815)
  • Next Build on main (#38068840725)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc