Repository navigation
registry: add bundler (gem:bundler) - #10939
Conversation
📝 WalkthroughWalkthroughChangesBundler backend and test tool resolution
Estimated code review effort: 2 (Simple) | ~10 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Greptile SummaryThis PR adds
Confidence Score: 5/5Safe to merge — all three changes are narrowly scoped, the registry entry mirrors an established pattern, and the test-tool fix addresses a real CI reproducibility issue without affecting any existing behavior. The registry entry is a straightforward addition that follows the npm/node precedent. The Config helper is safe because with_config_files always produces a fresh OnceCell before the set call. The test-tool change only affects synthetic test runs and correctly threads the resolved toolset into Config without touching the normal installation path. No files require special attention. Important Files Changed
Reviews (2): Last reviewed commit: "fix(test-tool): expose dependency tools ..." | Re-trigger Greptile |
Summary
bundleras a registry alias forgem:bundlerbundleexecutable onPATHtest-toolexpose its synthetic resolved toolset to backend dependency environmentsWhy a
gem:registry entryRuntime-backed registry entries are generally undesirable because they depend on a separately installed runtime. Bundler is an unusual case: Ruby already supplies the required
gemcommand, but it also supplies abundleexecutable that wins onPATHwhen users configuregem:bundlerdirectly. This is the problem reported in discussion #10931.The registry's
overridesmetadata is currently the only declarative way to put the standalone tool before the runtime that bundles the same executable. It is intentionally not exposed in user tool configuration because executable collisions are uncommon and adding another general-purpose ordering option would broaden the configuration surface for a narrow case.An alternative would be to make
dependsimply both install ordering and reverse runtimePATHprecedence. That couples two different relationships: needing a tool during installation does not necessarily mean the dependent should override the dependency's executables. Keepingdependsinstall-only and recording this exceptional collision in curated registry metadata is more explicit.The gem backend already declares Ruby as its dependency, so this entry does not duplicate that relationship.
CI root cause
The initial registry CI run installed Ruby before Bundler, but
test-toolrepresented both as synthetic CLI arguments while backend dependency environments were reconstructed fromConfig. As a result, the gem backend could not find the freshly installedgemexecutable.test-toolnow places its resolved, concrete tool requests into its cloned config before installation. This keeps backend dependency resolution aligned with the synthetic test toolset and avoids relying on unresolvedlatestruntime symlinks while dependencies are still being installed.Popularity
rubygems/rubygems): 3,935 stars, 1,921 forks, active development as of July 10, 2026Validation
mise run rendermise run lint-fixtarget/debug/mise test-tool --jobs 1 bundlertarget/debug/mise registry bundlertarget/debug/mise ls-remote bundlerSummary by CodeRabbit
New Features
Improvements