✨ kettle-jem: security floors from kettle-rb; drop dead appraisal helpers - #69
Merged
Merged
Conversation
…pers - workflows.framework_matrix gemfiles for kettle-rb tracked gems require the series' security floor and warn on advisories no release fixes - Remove the unused appraisal_* matrix helpers and constants (duplicated kettle-jem-appraisals with drifted semver rules) - Point the sqlite3 conflict-resolution reason at the kettle-jem-appraisals ActiveRecord support gemfiles - Declare structuredmerge_host_prototype once (Bundler/DuplicatedGem) - Require kettle-rb >= 0.1.14 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P8aveNcdgPobyMrq8DkD9r
The Rust host switch from #68 declared the gem in two separate blocks, which RuboCop flags as Bundler/DuplicatedGem. Merge them into one if/elsif (local path wins, otherwise the published gem when STRUCTUREDMERGE_RUST_HOST_PUBLISHED=true) in the remaining 11 Gemfiles. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P8aveNcdgPobyMrq8DkD9r
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Follow-ups from
GEMSPEC_DEV_DEPENDENCY_PLAN.md(P4.4 bugs) now that kettle-rb 0.1.14 publishes security floors:appraisal_*helpers had no callers in any SM gem or in kettle-jem-appraisals, and their semver rules had drifted from the plugin's.sqlite3KNOWN_GEM_CONFLICT_RESOLUTIONSreason said sqlite3 has "no modular home". kettle-jem-appraisals now generatesgemfiles/modular/activerecord_support/*.gemfilefor it.workflows.framework_matrixgemfiles were written asgem "activerecord", "~> 7.1.0", which drops security floors.Policy for series with no fixed release (decided by the maintainer): warn.
What
appraisal_*methods (540 lines) and the 6APPRAISAL_*constants used only by them.RubyGemsResolverandGemSpecReaderexamples stay; kettle-jem-appraisals uses both.appraisal_*, there could be no visibility change inside the block, and no call site could remain.Kettle::Rb::GemFloors(activemodel, activerecord, activesupport, sqlite3), a version whose requirement still admits the series' first release gets the floor:gem "activerecord", "~> 7.1.0", ">= 7.1.6".~> 7.2.3) and labels that aren't a minor series (8.0+) are left alone.# kettle-rb: no activerecord 7.0 release fixes …comment.rails) are unchanged.platforms: [:ruby]modular gemfile, such as kettle-jem-appraisals' support gemfiles. The(engine-incompatible; no modular home)decision placeholder is unchanged, so recorded decisions still match.>= 0.1.14.Gemfile.lockwas updated withbundle lock --update kettle-rb, using the env the committed lock is generated with; the diff is only the kettle-rb lines.Verification
bundle exec rakeingems/kettle-jem(the env the committed lock uses:STRUCTUREDMERGE_DEV=.../gems,K_JEM_TEMPLATING=true,KETTLE_DEV_DEV=false, coverage minimums frommise.toml): RuboCop Gradual no changes; 681 examples, 1 failure.spec/e2e/rubygems_thin_vertical_slice_spec.rb, reads../fixtures/packaging/thin-slice-contract.jsonnext to the repo root. My worktree had no siblingfixtures/checkout, and a clean origin/main worktree fails the same way. With the fixtures checkout linked, it passes (1 example, 0 failures).~> 7.2.3and8.0+untouched) passes along with the existing framework-matrix, appraisal and bootstrap integration specs.Bundler/DuplicatedGem, introduced by 👷 Validate the Rust host bridge in CI: guards, published gem, and dep-heads #68, in all 12 Gemfiles that carry the Rust host switch:gem "structuredmerge_host_prototype"declarations are now oneif/elsif: the local path whenSTRUCTUREDMERGE_RUST_DEVis set, otherwise the published gem whenSTRUCTUREDMERGE_RUST_HOST_PUBLISHED=true. There is no moreinstance_variable_getcheck.Bundler::Dslunder each env combination (neither / dev / published / both) gives 0 / path /~> 0.2/ path declarations, exactly once each, which matches the previous behavior.lib/ast/crispr/rust_host_provider.rband its spec. Those were already failing on main (from 2026-09-11) and are not touched here.🤖 Generated with Claude Code
https://claude.ai/code/session_01P8aveNcdgPobyMrq8DkD9r