Skip to content

chore: minimize mise tools for pre-commit checks - #4384

Merged
sxlijin merged 6 commits into
canaryfrom
sxlijin/minimize-mise-ci-precommit
Aug 13, 2026
Merged

sxlijin merged 6 commits into
canaryfrom
sxlijin/minimize-mise-ci-precommit

Conversation

@sxlijin

@sxlijin sxlijin commented Aug 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • retain the shared ./.github/actions/setup-mise composite and its narrow per-job install_args
  • configure the composite's single jdx/[email protected] invocation with fetch_from_github: false
  • make setup-mise append MISE_TASK_RUN_AUTO_INSTALL=false to $GITHUB_ENV, preventing every subsequent CI step from auto-installing undeclared mise tools
  • log that auto-install is disabled and that CI workflows must explicitly install the mise dependencies they use
  • pin clang-format so the C++ formatting hook does not depend on the runner image

Root cause

The pre-commit hooks invoke tasks through mise run. Mise auto-installs configured tools before running tasks by default, and jdx/mise-action exports MISE_YES=1. As a result, the first task invocation tried to install the entire inherited root mise.toml toolset even though setup used narrow install_args. External GitHub 503s for unrelated sccache, Java, and Ruby then failed the job after all hooks had passed.

The fix preserves narrow tool installation through the shared composite and disables mise task auto-install globally for all steps after setup-mise. This makes each workflow's install_args the explicit tool contract instead of allowing later mise run calls to expand it implicitly.

Validation

  • confirmed all 21 in-scope workflow callers use ./.github/actions/setup-mise with their prior install_args
  • confirmed setup-mise's single jdx/[email protected] call sets fetch_from_github: false
  • confirmed setup-mise logs disabling MISE_TASK_RUN_AUTO_INSTALL, all CI workflows must explicitly install the mise deps they use
  • confirmed setup-mise appends MISE_TASK_RUN_AUTO_INSTALL=false to $GITHUB_ENV
  • repository check-yaml hook passed the composite action and affected workflow
  • python3 -m unittest discover -s scripts/tests -p 'test_*.py' -v passed all 49 tests
  • git diff --check passed
  • actionlint reported no new errors; its three warnings are pre-existing in ci.yaml

Linear: B-1522

Source failure: https://github.com/BoundaryML/baml/actions/runs/31635586472/job/94250484725?pr=3358

Summary by CodeRabbit

  • Chores
    • Added clang-format to the development tool environment.
    • Improved development environment setup reliability and caching.
    • Updated continuous integration tooling to include Node.js and clang-format.
    • Disabled automatic task tool installation during CI checks for more consistent validation.

@vercel

vercel Bot commented Aug 12, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
beps Ready Ready Preview Aug 12, 2026 11:52pm
promptfiddle2 Ready Ready Preview Aug 12, 2026 11:52pm

Request Review

@coderabbitai

coderabbitai Bot commented Aug 12, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: a37cefe7-8977-454f-832d-07c63ffa15cd

📥 Commits

Reviewing files that changed from the base of the PR and between 91ea093 and 65adfa0.

📒 Files selected for processing (1)
  • .github/actions/setup-mise/action.yml

📝 Walkthrough

Walkthrough

The Mise environment pins clang-format. The shared setup action updates its cache and action settings and disables automatic task dependency installation. The prek CI job includes Node and clang-format.

Changes

Unified Mise CI setup

Layer / File(s) Summary
Toolchain configuration
mise.toml, .github/actions/setup-mise/action.yml
Mise pins clang-format at version 22.1.7. The shared action updates the Mise action version, cache prefix, remote-version timeout, and GitHub fetching setting.
prek CI integration
.github/workflows/ci.yaml, .github/actions/setup-mise/action.yml
The prek job includes Node and clang-format. The shared action disables automatic Mise task dependency installation with MISE_TASK_RUN_AUTO_INSTALL=false.

Estimated code review effort: 2 (Simple) | ~10 minutes

Mergeability Score: ⚪ Minimal · up to 65adf

The PR makes CI tool installation explicit and pins clang-format for more predictable checks; no actionable merge-blocking risk remains after normal checks and review.

Possibly related PRs

Poem

A rabbit checks the tools in line,
clang-format is pinned just fine.
Mise fetches only what tasks need,
prek hops forward at full speed.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: reducing Mise tools used for pre-commit checks.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch sxlijin/minimize-mise-ci-precommit

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

⏭️ Performance benchmarks were skipped

Perf benchmarks (CodSpeed) are opt-in on pull requests — they no longer run on every push. They always run automatically after merge to canary/main.

To run them on this PR, do any of the following, then push a commit (or re-run CI):

  • Add RUN_CODSPEED=1 to the PR description, or
  • Include run-perf or /perf in the PR title or any commit message.

@vercel
vercel Bot temporarily deployed to Preview – beps August 12, 2026 21:49 Inactive
@sxlijin sxlijin changed the title ci: minimize mise tools for pre-commit checks chore: minimize mise tools for pre-commit checks Aug 12, 2026
@sxlijin
sxlijin marked this pull request as ready for review August 12, 2026 21:51
@vercel
vercel Bot temporarily deployed to Preview – beps August 12, 2026 21:53 Inactive
@vercel
vercel Bot temporarily deployed to Preview – beps August 12, 2026 22:02 Inactive

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci.yaml:
- Around line 455-457: Restore the job-specific install_args for every listed
mise-action site: in .github/workflows/ci.yaml at 455-457, 832-834, and 931-933
use cargo:prek python uv node clang-format, node npm:pnpm protoc protoc-gen-go,
and ast-grep respectively; in .github/workflows/cargo-tests.reusable.yaml at
87-89, 189-191, 284-286, 384-386, 856-858, 1070-1072, 1173-1175, and 1249-1251
restore sccache direnv cargo:cargo-nextest, the applicable matrix.install-args,
sccache direnv, and snapshot-specific sccache direnv python uv cargo:cargo-insta
cargo:cargo-nextest values; restore sccache direnv or sccache direnv clang in
.github/workflows/size-gate.reusable.yaml at 61-63, 146-148, 235-237, 337-339,
and 436-438; and restore github:rustwasm/wasm-pack in
.github/workflows/wasm-pack-tests.reusable.yaml:68-70 and
.github/workflows/webview-tests.reusable.yaml:51-53, 106-108, and 151-153.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 931892e2-dbff-4d3c-8be0-486c54baeaf5

📥 Commits

Reviewing files that changed from the base of the PR and between 55e1789 and 2957e70.

📒 Files selected for processing (5)
  • .github/workflows/cargo-tests.reusable.yaml
  • .github/workflows/ci.yaml
  • .github/workflows/size-gate.reusable.yaml
  • .github/workflows/wasm-pack-tests.reusable.yaml
  • .github/workflows/webview-tests.reusable.yaml

Comment thread .github/workflows/ci.yaml Resolved
@vercel
vercel Bot temporarily deployed to Preview – beps August 12, 2026 22:08 Inactive
@vercel
vercel Bot temporarily deployed to Preview – beps August 12, 2026 22:14 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 August 12, 2026 22:20 Inactive
@github-actions

github-actions Bot commented Aug 12, 2026 •

Copy link
Copy Markdown

Binary size checks passed

✅ 7 passed

Artifact Platform File Gzip Gated on Baseline Delta Status
✅ baml-cli Linux 🔒 26.2 MB 11.1 MB file 27.4 MB -1.2 MB (-4.4%) OK
✅ packed-program Linux 🔒 16.9 MB 6.8 MB file 18.6 MB -1.7 MB (-8.9%) OK
✅ baml-cli macOS 🔒 20.4 MB 9.7 MB file 21.3 MB -913.9 KB (-4.3%) OK
✅ packed-program macOS 🔒 13.3 MB 6.0 MB file 14.5 MB -1.2 MB (-8.1%) OK
✅ baml-cli Windows 🔒 21.9 MB 9.9 MB file 23.0 MB -1.1 MB (-4.7%) OK
✅ packed-program Windows 🔒 14.1 MB 6.1 MB file 15.5 MB -1.4 MB (-9.1%) OK
✅ bridge_wasm WASM 15.5 MB 🔒 4.2 MB gzip 4.6 MB -438.1 KB (-9.5%) OK

🔒 = the size this artifact is GATED on (ceiling + delta). Binaries gate on file size (installed binary); WASM gates on gzip (download size). The other size is shown for information only.


Generated by cargo size-gate · workflow run

@vercel
vercel Bot temporarily deployed to Preview – beps August 12, 2026 23:44 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 August 12, 2026 23:52 Inactive
@sxlijin
sxlijin enabled auto-merge August 12, 2026 23:56
@sxlijin
sxlijin added this pull request to the merge queue Aug 13, 2026
Merged via the queue into canary with commit affb2dd Aug 13, 2026
87 checks passed
@sxlijin
sxlijin deleted the sxlijin/minimize-mise-ci-precommit branch August 13, 2026 00:16

This branch was previously deployed

2 inactive deployments
Preview – promptfiddle2 — 65adfa06 Deployed Aug 12, 2026 by vercel[bot]
Preview – beps — 65adfa06 Deployed Aug 12, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant