Skip to content

feat: migrate from Volta to Mise for Node.js version management#468

Merged
dejanvasic85 merged 3 commits intomainfrom
claude/update-node-version-Kg3Ix
Apr 19, 2026
Merged

feat: migrate from Volta to Mise for Node.js version management#468
dejanvasic85 merged 3 commits intomainfrom
claude/update-node-version-Kg3Ix

Conversation

@dejanvasic85
Copy link
Copy Markdown
Owner

@dejanvasic85 dejanvasic85 commented Apr 19, 2026

Summary

This PR migrates the project's Node.js version management from Volta to Mise, updating all CI/CD workflows and configuration files accordingly.

Key Changes

  • CI/CD Workflows: Updated all GitHub Actions workflows (ci.yml, crawl.yml, deploy-sanity.yml) to use jdx/mise-action@v4 instead of volta-cli/action@v5
  • Version Configuration:
    • Removed volta configuration from package.json
    • Added new .mise.toml file with Node.js version pinned to 24.12.0
  • Documentation: Updated README.md to reflect Node.js 24 requirement (changed from "18+")
  • Renovate Configuration: Updated renovate.json to use mise package manager instead of volta for Node version updates

Implementation Details

  • Node.js version remains consistent at 24.12.0 across all environments
  • Mise is configured via .mise.toml following standard Mise conventions
  • All workflows maintain the same functionality with the new tool
  • Renovate will now track Node.js updates through Mise configuration

https://claude.ai/code/session_018PhmQ2eJwnh1qp8tpJgc4w

Summary by CodeRabbit

  • Chores
    • Updated development environment tooling configuration.
    • Updated Node.js version requirement to 24.

claude added 3 commits April 19, 2026 11:04
Volta is unmaintained; mise is the recommended replacement.
- Add .mise.toml pinning node 24.12.0
- Remove volta section from package.json
- Replace volta-cli/action@v5 with jdx/mise-action@v4 in all workflows
- Update renovate.json matchManagers from volta to mise

https://claude.ai/code/session_018PhmQ2eJwnh1qp8tpJgc4w
Copilot AI review requested due to automatic review settings April 19, 2026 12:41
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 19, 2026

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

Project Deployment Actions Updated (UTC)
williamstownsc Ready Ready Preview, Comment Apr 19, 2026 0:41am

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 19, 2026

📝 Walkthrough

Walkthrough

Migrated toolchain management from Volta to mise across GitHub Actions workflows and configuration files. Replaced volta-cli/action@v5 with jdx/mise-action@v4, added .mise.toml for Node.js version pinning, removed Volta configuration from package.json, and updated Renovate rules and documentation accordingly.

Changes

Cohort / File(s) Summary
GitHub Actions Workflows
.github/workflows/ci.yml, .github/workflows/crawl.yml, .github/workflows/deploy-sanity.yml
Replaced volta-cli/action@v5 with jdx/mise-action@v4 in the setup step across all three workflows for unified toolchain provisioning.
Toolchain Configuration
.mise.toml, package.json, renovate.json
Added new .mise.toml file pinning Node.js to 24.12.0; removed volta configuration from package.json; updated Renovate packageRules to match mise instead of volta for dependency management.
Documentation
README.md
Updated Node.js version requirement from "18+" to "24" in development prerequisites section.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • PR #395: Modifies .github/workflows/crawl.yml with workflow setup changes related to toolchain management.
  • PR #232: Previously introduced Volta configuration to .github/workflows/crawl.yml; this PR replaces it with mise as the successor toolchain setup.

Poem

🐰 Volta's gone, now mise takes the stage,
With Node.js twenty-four on every page,
Workflows unified, configuration clean,
The fastest toolchain change we've seen! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: migrate from Volta to Mise for Node.js version management' clearly and accurately summarizes the main change: replacing Volta with Mise for Node.js version management across CI/CD workflows, configuration files, and documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/update-node-version-Kg3Ix

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 and usage tips.

@dejanvasic85 dejanvasic85 changed the title Migrate from Volta to Mise for Node.js version management feat: migrate from Volta to Mise for Node.js version management Apr 19, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Migrates the repo’s Node.js version management from Volta to Mise, aligning local development and CI/CD to a single .mise.toml-pinned Node version.

Changes:

  • Replaced Volta with jdx/mise-action@v4 across all GitHub Actions workflows.
  • Removed Volta configuration from package.json and introduced .mise.toml pinning Node 24.12.0.
  • Updated Renovate config to track Node updates via Mise and adjusted README Node prerequisite wording.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
renovate.json Switches Node-related Renovate manager matching from volta to mise.
package.json Removes the volta Node pin configuration.
package-lock.json Lockfile metadata adjustments (adds dev: true on platform-specific optional deps).
README.md Updates documented Node prerequisite to Node 24.
.mise.toml Adds Mise tool pin for Node 24.12.0.
.github/workflows/deploy-sanity.yml Uses Mise action instead of Volta for Sanity deploy workflow.
.github/workflows/crawl.yml Uses Mise action instead of Volta for crawl automation workflow.
.github/workflows/ci.yml Uses Mise action instead of Volta for CI and E2E workflows.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md
### Prerequisites

- Node.js 18+ installed
- Node.js 24 installed
Copy link

Copilot AI Apr 19, 2026

Choose a reason for hiding this comment

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

README prereq says "Node.js 24 installed", but the repo now pins Node to 24.12.0 in .mise.toml. To avoid contributors installing a different 24.x (or using a different version in CI), align the README with the pinned version and/or document using Mise (e.g. install Mise + run mise install) as the source of truth.

Suggested change
- Node.js 24 installed
- Mise installed, then run `mise install` to use the pinned project tool versions
- If you are not using Mise, install Node.js 24.12.0

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
README.md (1)

50-50: Mention Mise so contributors use the checked-in Node pin.

This now says only “Node.js 24”, but the repo pins 24.12.0 in .mise.toml. Pointing contributors to mise install avoids local drift within the 24.x line.

📝 Proposed README tweak
-- Node.js 24 installed
+- Node.js 24 installed, preferably via Mise: run `mise install` to use the version pinned in `.mise.toml`
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 50, Update the README's Node requirement line (currently
"Node.js 24") to direct contributors to use the repository's pinned Node version
in .mise.toml by running the provided tool; specifically, reference the
checked-in pin (24.12.0) and instruct users to run "mise install" (or the repo's
mise workflow) to install the correct Node runtime rather than relying on a
loose "Node.js 24" description.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@renovate.json`:
- Around line 42-46: The rule currently applies to Mise files and accepts Node
26 even though 26 isn't LTS yet; update the renovate rule by either removing
"mise" from the matchManagers array (leave ["npm"]) or narrow the
allowedVersions regex in the allowedVersions property to exclude 26 (e.g. remove
26 from the alternation) so only true LTS majors (20,22,24,28,30,32,34,36,38,40)
are matched until Node 26 reaches LTS; adjust the "matchManagers" and/or
"allowedVersions" keys accordingly.

---

Nitpick comments:
In `@README.md`:
- Line 50: Update the README's Node requirement line (currently "Node.js 24") to
direct contributors to use the repository's pinned Node version in .mise.toml by
running the provided tool; specifically, reference the checked-in pin (24.12.0)
and instruct users to run "mise install" (or the repo's mise workflow) to
install the correct Node runtime rather than relying on a loose "Node.js 24"
description.
🪄 Autofix (Beta)

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: defaults

Review profile: CHILL

Plan: Pro

Run ID: 84f57396-a2f5-4fe2-87c4-c7559ec69e07

📥 Commits

Reviewing files that changed from the base of the PR and between f31feda and 7c5c174.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (7)
  • .github/workflows/ci.yml
  • .github/workflows/crawl.yml
  • .github/workflows/deploy-sanity.yml
  • .mise.toml
  • README.md
  • package.json
  • renovate.json
💤 Files with no reviewable changes (1)
  • package.json

Comment thread renovate.json
Comment on lines 42 to 46
"description": "Node and types - LTS versions only",
"matchPackageNames": ["node", "@types/node"],
"groupName": "node and types",
"matchManagers": ["volta", "npm"],
"matchManagers": ["mise", "npm"],
"allowedVersions": "/^(20|22|24|26|28|30|32|34|36|38|40)\\./"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

git ls-files renovate.json

Repository: dejanvasic85/williamstownsc

Length of output: 84


🌐 Web query:

Node.js 26 release schedule LTS timeline 2026

💡 Result:

Node.js 26 (v26.x) release schedule and LTS timeline: - Initial release (26.0.0, enters "Current" phase): April 22, 2026 (scheduled; as of 2026-04-19, the release PR is open and not yet shipped). - Enters Active LTS: October 28, 2026. - Enters Maintenance LTS: October 20, 2027. - End of Life: April 30, 2029. Node.js 26 is the last version following the traditional even-numbered LTS model (April release, 6 months Current, then LTS). Starting with Node.js 27, the schedule evolves to one major release per year in April, all becoming LTS after 6 months, with an alpha phase beginning the prior October.

Citations:


🌐 Web query:

Renovate Mise manager node package support documentation

💡 Result:

Renovate supports the Mise (mise-en-place) manager for automated dependency updates in Mise configuration files. This includes updating tool versions like Node.js in mise.toml files. Key details from official documentation: Supported file patterns (default): /{,.}mise{,.}.toml /{,.}mise/config{,.}.toml /.config/mise{,.}.toml /.config/mise/{mise,config}{,.}.toml /.config/mise/conf.d/.toml /.rtx{,.}.toml (legacy) Renovate updates only the primary (first) version listed for each tool. Secondary versions require manual updates. It supports Mise's default registry tool short names (e.g., node), using Mise registry for versioning. Recent fixes include renaming packageName from 'nodejs' to 'node' for consistency (v43+), expanded file patterns (2026), and added assorted tools (2025). Limitations: No support for certain backends like asdf/vfox plugins, aqua http packages, or lockfile support yet. For Node specifically: Renovate extracts and updates 'node' versions in Mise files, aligning with other managers like asdf.

Citations:


🏁 Script executed:

cat -n renovate.json | sed -n '40,48p'

Repository: dejanvasic85/williamstownsc

Length of output: 390


Tighten the "LTS only" rule before Renovate manages .mise.toml.

matchManagers: ["mise", "npm"] applies this rule to Mise configuration files, but the current regex permits 26.x immediately while Node.js 26 does not enter LTS until October 2026. This contradicts the rule description and can auto-upgrade CI/local tooling to a Current release. References: Renovate Mise manager docs and official Node.js schedule.

🛡️ Conservative fix until Node 26 reaches LTS
 		{
 			"description": "Node and types - LTS versions only",
 			"matchPackageNames": ["node", "@types/node"],
 			"groupName": "node and types",
 			"matchManagers": ["mise", "npm"],
-			"allowedVersions": "/^(20|22|24|26|28|30|32|34|36|38|40)\\./"
+			"allowedVersions": "/^(20|22|24)\\./"
 		}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@renovate.json` around lines 42 - 46, The rule currently applies to Mise files
and accepts Node 26 even though 26 isn't LTS yet; update the renovate rule by
either removing "mise" from the matchManagers array (leave ["npm"]) or narrow
the allowedVersions regex in the allowedVersions property to exclude 26 (e.g.
remove 26 from the alternation) so only true LTS majors
(20,22,24,28,30,32,34,36,38,40) are matched until Node 26 reaches LTS; adjust
the "matchManagers" and/or "allowedVersions" keys accordingly.

@dejanvasic85 dejanvasic85 merged commit ab59316 into main Apr 19, 2026
9 checks passed
@dejanvasic85 dejanvasic85 deleted the claude/update-node-version-Kg3Ix branch April 19, 2026 13:15
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