Skip to content

chore(root): add optional mise toolchain config - #1894

Open
mmcc wants to merge 3 commits into
videojs:mainfrom
mmcc:tooling/mise
Open

chore(root): add optional mise toolchain config#1894
mmcc wants to merge 3 commits into
videojs:mainfrom
mmcc:tooling/mise

Conversation

@mmcc

@mmcc mmcc commented Jul 31, 2026

Copy link
Copy Markdown
Member

Adds a checked-in mise.toml so contributors who use mise get both Node and pnpm provisioned on cd, without making mise a requirement for anyone else.

The config is deliberately additive: Node resolves from .nvmrc via the idiomatic_version_file_enable_tools opt-in rather than a duplicate pin, and pnpm mirrors packageManager. CI and the nvm/Volta paths are untouched, so no toolchain source of truth moves.

pnpm is the one pin mise has to duplicate, since mise does not read packageManager. check:workspace gains a "mise tool pins" check that no-ops without mise.toml and otherwise catches a stale pnpm pin, a node pin added to [tools], or a missing idiomatic-version-file opt-in — the last of which would silently leave mise users with no Node pin at all.

mise.toml also puts the workspace node_modules/.bin on PATH and defines a single setup task; the pnpm scripts remain the documented interface.


Note

Low Risk
Contributor-only toolchain and docs; no runtime, CI, or application code changes.

Overview
Adds an optional mise path for contributors without replacing nvm/Volta or CI: a new root mise.toml pins pnpm to match packageManager, resolves Node from .nvmrc/.node-version (no duplicate Node pin in [tools]), prepends node_modules/.bin to PATH, loads .env.local, and defines a setup task (pnpm install + pnpm build:packages).

CONTRIBUTING.md now lists mise alongside NVM (Volta removed from the prereq list) and documents trust/install/setup flow; personal overrides go in gitignored mise.local.toml / mise.*.local.toml (added to .gitignore).

pnpm check:workspace gains check 11 — mise tool pins: no-op if mise.toml is missing; otherwise warns when pnpm drifts from packageManager, when node is pinned in [tools], or when idiomatic_version_file_enable_tools omits "node" (which would leave mise users without a Node pin).

Reviewed by Cursor Bugbot for commit 286e914. Bugbot is set up for automated code reviews on this repo. Configure here.

mmcc and others added 2 commits July 31, 2026 00:49
Adds a checked-in mise.toml so contributors who use mise get both Node
and pnpm provisioned on cd, without making mise a requirement for
anyone else.

The config is deliberately additive: Node resolves from .nvmrc via the
idiomatic_version_file_enable_tools opt-in rather than a duplicate pin,
and pnpm mirrors packageManager. CI and the nvm/Volta paths are
untouched, so no toolchain source of truth moves.

pnpm is the one pin mise has to duplicate, since mise does not read
packageManager. check:workspace gains a "mise tool pins" check that
no-ops without mise.toml and otherwise catches a stale pnpm pin, a node
pin added to [tools], or a missing idiomatic-version-file opt-in — the
last of which would silently leave mise users with no Node pin at all.

mise.toml also puts the workspace node_modules/.bin on PATH and defines
a single setup task; the pnpm scripts remain the documented interface.
@vercel

vercel Bot commented Jul 31, 2026

Copy link
Copy Markdown

@mmcc is attempting to deploy a commit to the Mux Team on Vercel.

A member of the Team first needs to authorize it.

@netlify

netlify Bot commented Jul 31, 2026

Copy link
Copy Markdown

Deploy Preview for vjs10-site ready!

Name Link
🔨 Latest commit 286e914
🔍 Latest deploy log https://app.netlify.com/projects/vjs10-site/deploys/6a6bf56bcff80800085369e9
😎 Deploy Preview https://deploy-preview-1894--vjs10-site.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 286e914. Configure here.

Comment thread mise.toml
# mise is not required. `.node-version`/`.nvmrc` (Node) and `packageManager`
# (pnpm) stay the source of truth, so nvm, Volta, and CI never drift from this
# file. See "Using mise" in CONTRIBUTING.md.
min_version = "2025.1.0"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Incorrect mise min_version floor

Low Severity

min_version is set to 2025.1.0, but idiomatic_version_file_enable_tools only exists since mise 2025.4.6. Versions in between pass the floor, warn on an unknown field, and never get the loud failure this pin is meant to provide.

Suggested change
min_version = "2025.1.0"
min_version = "2025.4.6"
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 286e914. Configure here.

}

// Without the opt-in, mise ignores the Node version files and pins no Node.
if (!/idiomatic_version_file_enable_tools\s*=\s*\[[^\]]*["']node["']/.test(settings ?? '')) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Settings check matches comments

Medium Severity

The idiomatic-version-file check matches the assignment anywhere in the [settings] body, including comments. Commenting out idiomatic_version_file_enable_tools = ["node"] still satisfies the regex, so check:workspace can pass while mise users get no Node pin.

Suggested change
if (!/idiomatic_version_file_enable_tools\s*=\s*\[[^\]]*["']node["']/.test(settings ?? '')) {
if (!/^\s*idiomatic_version_file_enable_tools\s*=\s*\[[^\]]*["']node["']/m.test(settings ?? '')) {
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 286e914. Configure here.

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.

3 participants