chore(npm): publish mise package#10183
Conversation
📝 WalkthroughWalkthroughThe release script now supports a separate per-platform npm prefix and a toggle to skip platform package publishing; the CI workflow calls the script with ChangesNPM Package Publishing with Primary/Platform Split
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 63d7522. Configure here.
Greptile SummaryThis PR introduces an unscoped
Confidence Score: 5/5Safe to merge — the two-pass publish strategy is well-structured, variable defaults are correctly set, and the second run properly clears the working directory before building the unscoped wrapper. The changes are limited to a release script and its workflow invocation. The new NPM_PLATFORM_PREFIX variable is wired consistently between where packages are named (platform package.json) and where they are looked up (installArchSpecificPackage.js). The PUBLISH_PLATFORM_PACKAGES=0 path correctly recreates the npm staging directory before writing the wrapper package, avoiding any leftover artifacts from the first run. No logic errors or broken contracts were found. No files require special attention. Important Files Changed
Reviews (3): Last reviewed commit: "Merge branch 'main' into chore/npm-mise-..." | Re-trigger Greptile |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
scripts/release-npm.sh (1)
44-64: ⚡ Quick winPlatform package name should use
NPM_PLATFORM_PREFIX, notNPM_PREFIX.The generated platform
package.jsonnames the package$NPM_PREFIX-$os-$arch(Line 46), but the install resolver ininstallArchSpecificPackage.jslooks it up via$NPM_PLATFORM_PREFIX(Lines 101, 107). Today these coincide because the platform-publishing run leavesNPM_PLATFORM_PREFIXdefaulted toNPM_PREFIX, so nothing breaks. However, since this PR introducesNPM_PLATFORM_PREFIXprecisely to decouple platform package naming, any run withPUBLISH_PLATFORM_PACKAGES=1andNPM_PLATFORM_PREFIX != NPM_PREFIXwould publish platform packages under one name while the resolver requests another, producing uninstallable packages. Aligning the producer with the consumer makes the new abstraction internally consistent.♻️ Use the platform prefix for platform package naming
- "name": "$NPM_PREFIX-$os-$arch", + "name": "$NPM_PLATFORM_PREFIX-$os-$arch",🤖 Prompt for 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. In `@scripts/release-npm.sh` around lines 44 - 64, The package.json producer in scripts/release-npm.sh currently writes "name": "$NPM_PREFIX-$os-$arch" but the consumer (installArchSpecificPackage.js) expects the platform package to be named with NPM_PLATFORM_PREFIX; update the here-doc that generates package.json to use NPM_PLATFORM_PREFIX (i.e. "name": "$NPM_PLATFORM_PREFIX-$os-$arch") so produced platform packages match the resolver (see NPM_PLATFORM_PREFIX and NPM_PREFIX and the package generation block that writes package.json).
🤖 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.
Nitpick comments:
In `@scripts/release-npm.sh`:
- Around line 44-64: The package.json producer in scripts/release-npm.sh
currently writes "name": "$NPM_PREFIX-$os-$arch" but the consumer
(installArchSpecificPackage.js) expects the platform package to be named with
NPM_PLATFORM_PREFIX; update the here-doc that generates package.json to use
NPM_PLATFORM_PREFIX (i.e. "name": "$NPM_PLATFORM_PREFIX-$os-$arch") so produced
platform packages match the resolver (see NPM_PLATFORM_PREFIX and NPM_PREFIX and
the package generation block that writes package.json).
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: dd7b7fae-8bef-4d02-a600-da94d884c094
📒 Files selected for processing (3)
.github/workflows/npm-publish.ymldocs/installing-mise.mdscripts/release-npm.sh
|
Addressed the PR feedback in 6017e85:
Re-ran:
This comment was generated by an AI coding assistant. |
Hyperfine Performance
|
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.5.16 x -- echo |
25.8 ± 1.0 | 24.4 | 37.0 | 1.00 ± 0.05 |
mise x -- echo |
25.7 ± 0.9 | 24.3 | 35.6 | 1.00 |
mise env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.5.16 env |
24.9 ± 0.6 | 23.9 | 30.2 | 1.01 ± 0.03 |
mise env |
24.6 ± 0.3 | 23.8 | 26.0 | 1.00 |
mise hook-env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.5.16 hook-env |
25.4 ± 0.4 | 24.6 | 28.7 | 1.00 |
mise hook-env |
25.5 ± 0.3 | 24.6 | 28.4 | 1.00 ± 0.02 |
mise ls
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.5.16 ls |
21.6 ± 0.3 | 20.8 | 22.7 | 1.00 |
mise ls |
21.7 ± 0.4 | 20.8 | 23.3 | 1.01 ± 0.02 |
xtasks/test/perf
| Command | mise-2026.5.16 | mise | Variance |
|---|---|---|---|
| install (cached) | 181ms | 176ms | +2% |
| ls (cached) | 89ms | 87ms | +2% |
| bin-paths (cached) | 94ms | 92ms | +2% |
| task-ls (cached) | 168ms | 168ms | +0% |

Summary
miseas the default npm install/npx package while keeping@jdxcode/misenoted as legacy@jdxcode/misepackage set first, then publish the unscopedmisewrapper@jdxcode/mise-<os>-<arch>platform packagesTrusted publishing settings
For the new
misenpm package, configure npm trusted publishing with:Tests
git diff --checkbash -n scripts/release-npm.shshellcheck scripts/release-npm.shThis PR was generated by an AI coding assistant.
Note
Medium Risk
Release workflow and install-time npm dependency wiring change; misconfiguration could break installs or publish the wrong package names until trusted publishing is set up for
mise.Overview
Adds a second npm publish in CI: first the existing
@jdxcode/misescoped platform packages, then an unscopedmisemeta-package that skips re-publishing per-OS/arch tarballs and installs via the existing@jdxcode/mise-<os>-<arch>packages.scripts/release-npm.shgainsNPM_PLATFORM_PREFIX(defaults toNPM_PREFIX) andPUBLISH_PLATFORM_PACKAGES(default on). When platform publish is off, only the wrapperpackage.jsonandinstallArchSpecificPackage.jsare built, with the installer resolving$NPM_PLATFORM_PREFIXinstead of$NPM_PREFIX.docs/installing-mise.mddocumentsnpm install -g mise,npx mise, and themisenpm page, while noting@jdxcode/miseremains published as legacy.Reviewed by Cursor Bugbot for commit 8fdfe60. Bugbot is set up for automated code reviews on this repo. Configure here.
Summary by CodeRabbit
Documentation
@jdxcode/misestill available).Chores