fix(ruby): include build source options in lock identity#9992
Conversation
Greptile SummaryThis PR fixes Ruby lock identity to include all build-influencing inputs — compile mode, installer choice and options, repository URLs, patches, and precompiled selector settings — by extracting the logic into a dedicated
Confidence Score: 5/5The change is additive and isolated to a newly extracted helper function; it does not alter any install, download, or resolution logic, only the set of keys recorded in the lock identity. The lock-identity condition is taken verbatim from the existing should_try_precompiled predicate, keeping the two in sync. All five new tests pass distinct inputs through distinct branches and confirm expected key sets. No files require special attention. Important Files Changed
Reviews (5): Last reviewed commit: "Merge branch 'main' into fix/ruby-build-..." | Re-trigger Greptile |
There was a problem hiding this comment.
Code Review
This pull request introduces ToolOptionSource::InstallManifest to track and apply tool options from installation manifests, updating BackendArg and configuration resolution logic accordingly. The Ruby plugin's lockfile options were refactored into ruby_lockfile_options to include a broader set of settings such as compilation flags, installer repositories, and precompiled binary metadata. Feedback suggests simplifying a match block in the Ruby plugin using a more idiomatic if let pattern to improve readability.
This comment was marked as outdated.
This comment was marked as outdated.
556e50e to
7fb77b1
Compare
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Summary
Classification
Mixed actual lock/install identity and stale-lock invalidation fix.
Actual identity: source-build settings such as installer choice, build repositories, build options, and patch inputs can change the compiled Ruby tree for the same version. Those inputs are not represented by a locked artifact URL.
Stale-lock invalidation: precompiled URL/platform selector settings mostly choose the binary artifact URL/checksum. Once the lock entry is selected, the locked URL identifies the binary, but the selector still belongs in the exact-options key so changing precompiled source or platform settings does not reuse an older lock entry.
Verification
cargo fmt --checkcargo test ruby_lockfile_options