Repository navigation
build: limit mr-boxington by os so Intel macOS installs and locks cleanly - #139
Conversation
…anly On Intel macOS, plain `mise install` and `mise lock` exited 1 with "failed to resolve mr-boxington for macos-x64: selecting the packslip artifact", because the base lock's packslip entry has no darwin x86_64 asset. The separate mise.macos-x64.lock also could not be refreshed on a version bump. Limit mr-boxington to linux, macos/arm64 and windows, and add a `cargo:mbx` entry limited to macos/x64. Both read their version from a new `[vars] mbx`, so one `mise lock` updates both entries. Remove the `[tasks.lock]` workaround, mise.macos-x64.toml, mise.macos-x64.lock and .miserc.toml, and update the Intel macOS note in CONTRIBUTING.md. Closes #138
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
Up to standards ✅🟢 Issues
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Merging this PR will not alter performance1 warning
Comparing |
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
[Medium impact] The PR appears safe to merge; no actionable issues were found. SummaryThis PR puts both
No actionable issues were found. Runtime checks were not run during this review. Reviews (1) · Last reviewed commit: "style: split os-restricted tool entries ..." · Reviewed by Greptile |
There was a problem hiding this comment.
cubic analysis
No issues found across 6 files
Linked issue analysis
Linked issue: pleaseai/code-search#138: build: keep mise.macos-x64.lock in sync when mr-boxington is bumped
| Status | Acceptance criteria | Notes |
|---|---|---|
| ✅ | Keep both mbx entries in sync on version bumps | mise.toml uses vars.mbx for both tools, and the PR reports relocking updates both entries together. |
| ✅ | Make Intel macOS installs and locks work without a separate lockfile | The os-limited cargo:mbx entry replaces the removed platform config, and the PR reports Intel mise lock and install succeed. |
Architecture diagram
sequenceDiagram
participant Dev as Developer
participant Mise as mise CLI
participant Lock as mise.lock
participant Tool as mr-boxington/cargo:mbx
participant Registry as crates.io
Note over Dev,Registry: Install & Lock Flow
Dev->>Mise: mise lock / mise install
Mise->>Lock: Resolve tools from mise.toml
alt Linux, macOS arm64, Windows
Mise->>Mise: Read mr-boxington.version + os filter
Mise->>Tool: Fetch mr-boxington release asset
Tool-->>Mise: Version 1.29.2 binary
else Intel macOS (macos/x64)
Mise->>Mise: Skip mr-boxington (os mismatch)
Mise->>Mise: Read cargo:mbx.version + os filter
Mise->>Registry: cargo install mbx 1.29.2
Registry-->>Mise: Build from source (Rust 1.91+)
end
Mise->>Lock: Write/update lock entries
Lock-->>Mise: Confirmed
Dev->>Mise: mise exec -- mbx --version
Mise->>Mise: Select cargo:mbx (Intel macOS) or mr-boxington (others)
Mise-->>Dev: mbx 1.29.2
Note over Mise,Lock: Version bump flow
Dev->>Mise: Change vars.mbx to 1.29.1
Dev->>Mise: mise lock
Mise->>Lock: Refresh both entries
Lock->>Lock: Prune old versions
Lock-->>Mise: Fixed-point lockfile
Note over Mise,Lock: CI with --locked
Mise->>Lock: Verify checksums
alt Mismatch
Mise-->>Dev: Exit 1 (lock drift)
else Match
Mise-->>Dev: Exit 0
end



Summary
Issue #138 asked to keep
mise.macos-x64.lockin sync on mr-boxington bumps. While working on it, I found that on Intel macOS plainmise installandmise lockalready exit 1 with the current lockfiles (failed to resolve mr-boxington for macos-x64: selecting the packslip artifact for macos-x64). The basemise.lockpackslip entry has no darwin x86_64 asset, and mise tries to resolve it for the current platform.--locked(CI) was unaffected, and replacing the alias withdisable_toolsdid not help. This PR uses mise's per-toolosoption so one lockfile works on every platform.What changed
mr-boxingtonis limited tolinux,macos/arm64, andwindows. A"cargo:mbx"entry is limited tomacos/x64. Both read{{vars.mbx}}from a single[vars] mbx.mise.macos-x64.toml,mise.macos-x64.lock,.miserc.toml(auto_env), and the[tasks.lock]workaround. Plainmise locknow works everywhere.CONTRIBUTING.mdis updated.mise.lockgains a version-onlycargo:mbxentry and three mr-boxington baseline platform entries.Scope
Covers the mr-boxington and mbx install and lock flow only. Other tools and CI workflows are unchanged.
Blast radius
Linux CI installs with
--lockedandMISE_DISABLE_TOOLS=cargo:hk,mr-boxington.cargo:mbxis os-limited tomacos/x64, so it is skipped there. Linux, macOS arm64, and Windows were not verified locally.Verification
mise 2026.11.1 on Intel macOS:
mise lock,mise install, andmise install --lockedall exit 0. Before this change the first two exited 1.mise exec -- mbx --versionprintsmbx 1.29.2, and relocking is a fixed point.vars.mbxto 1.29.1 and runningmise lockupdated both entries and pruned the old ones (reverted afterwards).Related issue
Closes #138
Checklist
mise run test)mise run lint)BREAKING CHANGE:note is includedSummary by cubic
Fixes Intel macOS
mise installandmise lockexiting 1 becausemr-boxingtonships no darwin x86_64 release asset, and replaces the unrefreshable per-platform lockfile with a single one that works on every platform.Bug Fixes
mr-boxingtontolinux,macos/arm64, andwindows; Intel macOS installs the same version from crates.io viacargo:mbxinstead.[vars] mbx, so onemise lockrefreshes both on version bumps (closes build: keep mise.macos-x64.lock in sync when mr-boxington is bumped #138).mise.macos-x64.toml,mise.macos-x64.lock,.miserc.toml, and the[tasks.lock]workaround; updatesCONTRIBUTING.md.Written for commit 66e95aa. Summary will update on new commits.