Replace Rokit with Mise#251
Conversation
|
Caution Review failedThe pull request is closed. WalkthroughConsolidates tooling and workflows around Mise and Corepack. Replaces multi-step Node/pnpm/Rokit setup with Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Dev as Developer
participant GH as GitHub Actions
participant Mise as jdx/mise-action
participant Corepack as Corepack (pnpm)
participant Build as Build Steps
Dev->>GH: Push / PR / Tag
GH->>Mise: Setup toolchain (Node LTS, enable Corepack)
Mise-->>GH: Toolchain ready
GH->>Corepack: corepack pnpm install
Corepack-->>GH: deps installed
GH->>Build: Run compile/build (nlx rbxtsc / corepack pnpm prod:build)
Build-->>GH: artifacts / results
Note over GH,Build: Lint and other steps run via Corepack-wrapped pnpm
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (8)
✨ Finishing Touches🧪 Generate unit tests
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 |
There was a problem hiding this comment.
Actionable comments posted: 6
🧹 Nitpick comments (15)
README.md (1)
47-53: Document the Mise workflow in “How to use”.Without telling newcomers to run “mise install”, pnpm/rojo/etc. may be missing. Suggest adding a Mise step.
Apply:
1. Press the green `Use this template` button on the top right of the page to create a new repository. 2. Clone the repository to your local machine. -3. Run `pnpm install` to install all the dependencies. -4. Run `pnpm run dev:start` to start the development server. -5. Start coding! 🎉 +3. Install Mise and run `mise install` to install Node/pnpm and Roblox CLI tools. +4. Run `pnpm install` to install all the dependencies. +5. Run `pnpm run dev:start` to start the development server. +6. Start coding! 🎉.npmrc (1)
5-6: Be cautious with peer deps and global hoisting.
strict-peer-dependencies=falsecan hide real integration issues; consider keeping ittruein CI and relaxing locally if needed.public-hoist-pattern[]=*@rbxts*is fine, but do confirm it doesn’t cause duplicate versions of non-rbxts libs to leak into the public tree.If desired, I can script a quick “pnpm why” audit across rbxts packages to surface duplicates. Want that?
.husky/post-merge (1)
5-5: Run hooks inside Mise and avoid npx.Ensure Node/pnpm availability and pin dlx tool. Also fix the stale comment above (it mentions package-lock but you match pnpm-lock).
Apply:
-# matches only the package-lock.json inside project directory -npx git-pull-run --pattern "pnpm-lock.yaml" --command "corepack pnpm install" +# matches only the pnpm-lock.yaml inside project directory +mise x -- corepack pnpm dlx git-pull-run --pattern "pnpm-lock.yaml" --command "corepack pnpm install".husky/pre-commit (1)
1-1: Ensure hook uses the Mise toolchain.Wrap with
mise x --so devs without a global Node still pass hooks.-corepack pnpm lint-staged +mise x -- corepack pnpm lint-staged.github/workflows/ci.yaml (1)
25-25: Mise action pin looks solid; consider freezing pnpm in CI.Since Corepack is enabled via Mise, prefer explicit Corepack usage with a frozen lockfile to fail on drift.
- - name: Install dependencies - run: pnpm install + - name: Install dependencies + run: corepack pnpm install --frozen-lockfileOptional: tighten permissions for PRs (read-only) unless a job actually needs write.
I can propose a split-permissions snippet (PR vs. push) if you want.
pnpm-workspace.yaml (2)
56-56: Confirm onlyBuiltDependencies needs unrs-resolver.onlyBuiltDependencies limits native builds to this list. Please confirm unrs-resolver actually ships native code that must be built in CI; if not, drop it to speed installs.
62-63: Avoid duplicating hoist config across files.You now set publicHoistPattern here; if .npmrc also sets public-hoist-pattern, choose one source of truth (prefer pnpm-workspace.yaml) to prevent drift.
.github/workflows/release.yaml (4)
32-32: Add mise options for Corepack/caching.Provide Corepack and cache via inputs to reduce setup churn.
Apply this diff:
- - uses: jdx/mise-action@5ac50f778e26fac95da98d50503682459e86d566 # v3.2 + - uses: jdx/mise-action@5ac50f778e26fac95da98d50503682459e86d566 # v3.2 + with: + corepack: true + cache: true
44-44: Minor: keep script runner consistent.prod:build internally uses npm/npx. Prefer pnpm exec/bins to avoid pulling globals. Consider refactoring the package.json script to use pnpm exec rbxtsc and pnpm run darklua.
64-64: Mirror mise options in deploy job.Same optimization as build: enable Corepack and caching.
Apply this diff:
- - uses: jdx/mise-action@5ac50f778e26fac95da98d50503682459e86d566 # v3.2 + - uses: jdx/mise-action@5ac50f778e26fac95da98d50503682459e86d566 # v3.2 + with: + corepack: true + cache: true
83-101: Optional: harden IP polling.httpbin can return multiple IPs (comma-separated). Consider contains-match and a longer timeout to reduce flakes.
.github/workflows/release-development.yaml (2)
29-29: Add mise options for Corepack/caching (dev build).Same rationale as release workflow.
Apply this diff:
- - uses: jdx/mise-action@5ac50f778e26fac95da98d50503682459e86d566 # v3.2 + - uses: jdx/mise-action@5ac50f778e26fac95da98d50503682459e86d566 # v3.2 + with: + corepack: true + cache: true
61-61: Mirror mise options in deploy job (dev).Enable Corepack and caching here too.
Apply this diff:
- - uses: jdx/mise-action@5ac50f778e26fac95da98d50503682459e86d566 # v3.2 + - uses: jdx/mise-action@5ac50f778e26fac95da98d50503682459e86d566 # v3.2 + with: + corepack: true + cache: true.github/commit-instructions.md (1)
33-33: Fix typo in rules.“capitilization” → “capitalization”.
Apply this diff:
-# * No capitilization in the subject aside from issue references +# * No capitalization in the subject aside from issue references.vscode/settings.json (1)
31-34: Make the Node runtime path cross-platform.Backslashes limit this to Windows. Use forward slashes so it works on all OSes, or commit OS-specific settings separately.
Apply this diff:
- "debug.javascript.defaultRuntimeExecutable": { - "pwa-node": "${workspaceFolder}\\.vscode\\mise-tools\\node" - }, + "debug.javascript.defaultRuntimeExecutable": { + "pwa-node": "${workspaceFolder}/.vscode/mise-tools/node" + },
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (14)
.github/commit-instructions.md(1 hunks).github/workflows/ci.yaml(1 hunks).github/workflows/release-development.yaml(2 hunks).github/workflows/release.yaml(2 hunks).gitignore(1 hunks).husky/commit-msg(1 hunks).husky/post-merge(1 hunks).husky/pre-commit(1 hunks).npmrc(1 hunks).vscode/settings.json(1 hunks)README.md(1 hunks)mise.toml(1 hunks)package.json(1 hunks)pnpm-workspace.yaml(2 hunks)
🔇 Additional comments (8)
README.md (1)
76-76: Mise entry looks good and aligns with PR intent.Nice swap-in; link and alphabetical placement are correct.
.gitignore (1)
16-18: Good call ignoring Mise’s VS Code artifacts and .env.Prevents committing local tool shims and secrets.
mise.toml (2)
1-3: Path export is correct.Ensures local node bins are on PATH when running via Mise.
5-10: Pin Node and use stable Mantle
node = { version = "lts" }can silently upgrade; pin to an explicit LTS (e.g. 20.15.1) for deterministic CI/devmantle = "0.11.17-prerelease"is a prerelease; if a non-prerelease (e.g. 0.11.17 or later) exists, pin to it-node = { version = "lts", postinstall = "corepack enable" } +node = { version = "20.15.1", postinstall = "corepack enable" }Please verify available stable Mantle tag and update accordingly.
package.json (1)
85-85: Corepack pin looks good; ensure runners honor it.Nice move to a fully pinned pnpm with integrity. In CI, make sure Corepack is enabled by the tool installer (mise). If not, add corepack: true to the mise action or run corepack enable before install to avoid picking a different pnpm.
pnpm-workspace.yaml (1)
12-13: Reordering eslint is harmless.No functional impact; fine to keep.
.vscode/settings.json (2)
29-29: pnpm workspace default: good.Helps keep editor commands aligned with Corepack/pnpm.
36-40: Nice: Copilot commit guidance wired to the doc.Good integration to keep messages consistent with your conventions.
| - name: Setup Rokit | ||
| uses: CompeyDev/setup-rokit@d49be92bd9502180218c3f43e7988faa945217b0 # v0.1.2 | ||
|
|
There was a problem hiding this comment.
Remove Rokit step here as well.
To fully deprecate Rokit in development releases.
Apply this diff:
- - name: Setup Rokit
- uses: CompeyDev/setup-rokit@d49be92bd9502180218c3f43e7988faa945217b0 # v0.1.2📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - name: Setup Rokit | |
| uses: CompeyDev/setup-rokit@d49be92bd9502180218c3f43e7988faa945217b0 # v0.1.2 |
🤖 Prompt for AI Agents
.github/workflows/release-development.yaml around lines 37 to 39: remove the
"Setup Rokit" job step (the uses: CompeyDev/setup-rokit@... line and its name)
from the workflow so Rokit is no longer invoked for development releases; ensure
you also remove any related step-level keys (name, uses) and fix surrounding
indentation/sequence so the remaining steps form a valid steps list.
|
|
||
| - name: Compile | ||
| run: npx rbxtsc --verbose | ||
| run: nlx rbxtsc --verbose |
There was a problem hiding this comment.
🛠️ Refactor suggestion
Use pnpm exec instead of nlx.
nlx may not be present on the runner; pnpm exec is guaranteed after install.
Apply this diff:
- - name: Compile
- run: nlx rbxtsc --verbose
+ - name: Compile
+ run: corepack pnpm exec rbxtsc --verbose📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| run: nlx rbxtsc --verbose | |
| - name: Compile | |
| run: corepack pnpm exec rbxtsc --verbose |
🤖 Prompt for AI Agents
.github/workflows/release-development.yaml around line 41: the workflow uses
"nlx rbxtsc --verbose" which may not exist on the runner; replace the nlx
invocation with "pnpm exec rbxtsc --verbose" so the command runs via pnpm's
guaranteed exec shim after dependencies are installed.
| run: corepack pnpm install | ||
|
|
||
| - name: Install roblox-ts | ||
| run: pnpm add roblox-ts | ||
| run: corepack pnpm add roblox-ts | ||
|
|
There was a problem hiding this comment.
🛠️ Refactor suggestion
Prefer reproducible installs and avoid mutating deps.
- Use --frozen-lockfile to enforce the committed lock.
- Installing roblox-ts during CI is unnecessary if it’s already a devDependency; it also mutates lockfiles if saved.
Apply this diff:
- name: Install dependencies
- run: corepack pnpm install
+ run: corepack pnpm install --frozen-lockfile
- - name: Install roblox-ts
- run: corepack pnpm add roblox-ts
+ # roblox-ts should already be in devDependencies; no need to add here📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| run: corepack pnpm install | |
| - name: Install roblox-ts | |
| run: pnpm add roblox-ts | |
| run: corepack pnpm add roblox-ts | |
| - name: Install dependencies | |
| run: corepack pnpm install --frozen-lockfile | |
| # roblox-ts should already be in devDependencies; no need to add here |
🤖 Prompt for AI Agents
In .github/workflows/release.yaml around lines 35 to 39, replace the loose
install steps so CI uses the committed lockfile and doesn't mutate deps: change
the install command to run "corepack pnpm install --frozen-lockfile" and remove
the separate "corepack pnpm add roblox-ts" step (rely on roblox-ts being a
devDependency in package.json/lockfile); this enforces reproducible installs and
prevents modifying the lockfile during CI.
- Added .env.example for environment variable configuration - Updated release.yaml to remove Rokit setup and use Mise - Modified commit-msg hook for proper argument handling - Updated mise.toml to include environment file and additional tools - Added @antfu/ni to devDependencies in package.json - Updated pnpm-workspace.yaml with new catalog entry - Removed rokit.toml as it is no longer needed - Updated renovate.json to remove Rokit configuration
|
🥀 |
* docs(dev): update readme for rbxts-build instructions * chore(deps): update dependency @eslint-react/eslint-plugin to v1.8.2 * chore(deps): update dependency jacktabscode/asphalt to v0.8.1 * feat(ui): add profiler print function * chore(deps): update dependency rojo-rbx/rojo to v7.4.3 * chore(deps): update dependency @eslint-react/eslint-plugin to v1.9.0 * chore(deps): update actions/upload-artifact digest to 834a144 * chore(deps): update dependency @isentinel/eslint-config to v0.7.5 * chore(deps): update dependency lint-staged to v15.2.8 * chore(deps): update dependency @rbxts/types to v1.0.795 (#171) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * refactor(ui): remove default exports * chore(deps): update dependency @rbxts/types to v1.0.798 (#172) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @eslint-react/eslint-plugin to v1.9.1 * fix(deps): update dependency @rbxts/lapis to v0.3.4 * chore(deps): update pnpm to v9.7.0 * chore(deps): remove eslint.config.js bundler file * chore(deps): update commitlint monorepo to v19.4.0 * chore(deps): update dependency lune-org/lune to v0.8.7 * chore(deps): update compeydev/setup-rokit action to v0.1.1 * chore(deps): update compeydev/setup-rokit action to v0.1.2 * chore(deps): update dependency @rbxts/types to v1.0.799 * fix: circular dependency error * chore(deps): update dependency @rbxts/types to v1.0.800 (#189) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @rbxts/types to v1.0.801 (#192) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @rbxts/compiler-types to v2.3.0-types.2 * ci: remove self-hosted runner * ci: add missing open cloud key to release develop * ci: remove unnecessary provided auth key * ci: remove unnecessary provided auth key * ci: remove unnecessary gh cli install * ci(lint): eslint errors * chore(lint): update automatic custom class ordering * ci: fix release action * fix: preserve luau flags * build(deps): update dependencies and change to alternative packages * build(deps): update eslint config * chore(deps): update actions/setup-node digest to 0a44ba7 * chore(deps): update dependency rojo-rbx/rojo to v7.4.4 * chore(deps): update pnpm to v9.10.0 * chore(deps): update actions/upload-artifact digest to 5076954 * chore(deps): update dependency lune-org/lune to v0.8.8 * chore(deps): update pnpm to v9.11.0 * chore(deps): update dependency @rbxts/types to v1.0.809 (#199) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * build(deps): upgrade to roblox-ts v3.0.0 * chore(deps): update dependency eslint to v9.11.1 * fix(mtx): products being incorrectly handled * ci: fix lint-staged pre-commit linting all files * fix(deps): update dependency @rbxts/lapis to v0.3.6 * chore(deps): update dependency @rbxts/types to v1.0.810 * chore(deps): update dependency @rbxts/types to v1.0.811 (#212) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(mtx): receipt history not being saved Due to the fact that reflex is the source of truth, if we update the lapis document directly, then reflex will override this data as it doesn't know of this data. * feat(mtx): add product purchase metadata * feat(mtx): add ability to set game pass active from client * chore(deps): update pnpm to v9.12.2 * chore(deps): update dependency jiti to v2 * chore(deps): update dependency lune-org/lune to v0.8.9 * chore(deps): update dependency eslint to v9.13.0 * ci: fix deployment actions not working with github runners * chore(deps): update dependency @rbxts/types to v1.0.813 (#219) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency seaofvoices/darklua to v0.14.0 * chore(deps): update actions/setup-node digest to 39370e3 * chore(deps): update actions/upload-artifact digest to b4b15b8 * fix(deps): update dependency @rbxts/ui-labs to v2.3.0 * chore(deps): update dependency @eslint/config-inspector to v0.5.5 * chore(deps): update actions/checkout digest to 11bd719 * fix(deps): update dependency @rbxts/react to v17 * fix(deps): update dependency @rbxts/react-roblox to v17 * fix(deps): update dependency @rbxts/pretty-react-hooks to v0.6.1 * chore(deps): update dependency jacktabscode/asphalt to v0.9.1 * chore(deps): update actions/setup-node digest to 1d0ff46 * build(lint): update eslint-config to v0.10.0 * build(deps): update eslint-config to v1.0.0-beta.1 * build(deps): fix lockfile * style(deps): update eslint-config to v1.0.0 * feat(ci): down wireguard tunnel to cleanup * chore: lint files * Replace Rokit with Mise (#251) * ci: update compile command in release workflow * perf: optimize eslint performance with caching (#252) * chore(deps): update dependency ubi:seaofvoices/darklua to v0.17.1 (#258) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: update workflows to remove corepack references (#260) * style(lint): update eslint-config to v3.0.0 (#261) * chore: update renovate configuration * build(deps): bump package versions * chore(deps): update actions/checkout action to v5 (#259) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency ubi:rojo-rbx/rojo to v7.5.1 (#257) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update actions/upload-artifact digest to ea165f8 (#236) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update actions/download-artifact digest to d3f86a1 (#238) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency ubi:lune-org/lune to v0.10.2 (#256) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update ncipollo/release-action digest to b7eabc9 (#242) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update actions/download-artifact action to v5 (#250) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: remove deprecated shell script lines from post-merge hook * ci: update workflows to use composite actions * ci: update build environment to use ubuntu-latest * ci: pass in secret to fix missing secret issue * ci: move secrets to inputs * ci: add debug check * ci: fix incorrect input names * build: update catalog names for release workflow * build: update @isentinel/eslint-config to version 3.0.0-beta.8 Remove temporary action sorting from config * ci: remove packages write permission * ci: move wireguard ip to github variable This allows us to update the IP if necessary without having to make changes to the workflow file. * chore: update pnpm-lock.yaml * ci: update expected-ip input for deploy actions * docs: format header correctly * ci: resolve jq parse error in ip verification * chore(deps): update dependency ubi:jacktabscode/asphalt to v1 (#264) * docs: update commit instructions for clarity and formatting * chore(deps): update patches (#263) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * build: remove nmprc in favor of pnpm-workspace * chore: update post-merge script to include mise.toml check * chore: add packages section to pnpm-workspace.yaml * ci: remove catalog filter installation --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: 6ixfalls <23470032+6ixfalls@users.noreply.github.com>
Summary by CodeRabbit
Documentation
CI
Chores