Skip to content

nvm: Update to version 2.0.0, adapt to the new version, add arm64 support - #8497

Open
deuteros-gex wants to merge 8 commits into
ScoopInstaller:masterfrom
deuteros-gex:nvm2
Open

nvm: Update to version 2.0.0, adapt to the new version, add arm64 support#8497
deuteros-gex wants to merge 8 commits into
ScoopInstaller:masterfrom
deuteros-gex:nvm2

Conversation

@deuteros-gex

@deuteros-gex deuteros-gex commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Relates to nvm-windows/nvm#1385
closes #8485

  • Use conventional PR title: <manifest-name[@version]|chore>: <general summary of the pull request>
  • I have read the Contributing Guide

For now the support is pretty early stage, during my test:

  1. After the any version of nodejs is installed
    a proxy.exe binary would be generated adjacent to the NodeJS installation directory, which can only be deleted with priviledge
PS C:\Users\Anth-Z790\AppData\Local\Author Software\nvm> rm -Force .\proxy.exe
Remove-Item: Access to the path 'C:\Users\Anth-Z790\AppData\Local\Author Software\nvm\proxy.exe' is denied.

If the nodejs installation resides in the nvm installation directory, the corresponding proxy.exe either, leaving the whole nvm install hard to remove

PS C:\scoop\apps\nvm2\current> remove-item -force  .\proxy.exe
Remove-Item: Access to the path 'C:\scoop\apps\nvm2\current\proxy.exe' is denied.
  1. the NodeJS installation folder cannot be persisted inside the nvm scoop dir
PS C:\scoop\buckets\Anthony> nvm install 24
FAILED v24.21.0: unable to finalize version directory ACLs for v24.21.0: refusing version directory C:\scoop\apps\nvm2\current\nvm-install\v24.21.0: writable by other users (possible plant)
1 version(s) failed to install

So the following tricks cannot be impletmented for now, i.e. the nodejs installled by nvm has to be somewhere other than inside the nvm directory. I believe the default path %LOCALAPPDATA%\Author Software\nvm\installsshould be honored
https://docs.nvm-windows.com/cfg/core#mode-and-install-location

    "pre_uninstall": [
        "if(!(test-path \"$dir\\nvm-install\")) {",
        " New-Item -ItemType Directory -path \"$dir\\nvm-install\" ",
        "}",
        "nvm config set root=\"$dir\\nvm-install\""
    ],
    
    "persist": [
        "nvm-install"
    ],

@deuteros-gex

Copy link
Copy Markdown
Contributor Author

/verify

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

All changes look good.

Wait for review from human collaborators.

nvm

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown

Review Change StackReview 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: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 24365666-85af-416d-9893-cce64b5db6a0

📥 Commits

Reviewing files that changed from the base of the PR and between 76a40d0 and 11a60e4.

📒 Files selected for processing (1)
  • bucket/nvm.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • bucket/nvm.json

Included review availability: Your plan provides up to 4 included reviews per hour; 2 remain after this review.


Summary by CodeRabbit

  • Updates
    • Updated NVM for Windows to version 2.0.0.
    • Switched to architecture-specific installers for 64-bit and ARM64 systems.
    • Updated automatic update links and installation configuration.
    • Added .nodejs path management during installation and uninstallation.
    • Replaced legacy environment-variable and persistence configuration with registry-based guidance.

Walkthrough

The NVM manifest updates version 2.0.0, uses architecture-specific InnoSetup installers, adds arm64 support, manages the per-user .nodejs path through install scripts, and updates autoupdate URLs.

Changes

NVM manifest update

Layer / File(s) Summary
Installer distribution and architecture support
bucket/nvm.json
The manifest updates NVM to version 2.0.0, changes the metadata, enables InnoSetup, replaces the archive with architecture-specific installers, removes 32-bit support, and adds arm64 support.
Environment configuration and autoupdate
bucket/nvm.json
The manifest sets the installation path to ., adds and removes the per-user .nodejs path during installation lifecycle scripts, and updates autoupdate URLs for amd64 and arm64 installers.

Priority: ➖ Normal

Severity of issue fixed: Medium

Merge Risk: 🟡 Moderate · up to 11a60

NVM installations can leave Node.js unavailable from PATH, and global installs can expose one user's NVM location to other users. These installation-path issues should be corrected before merge.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Issue #8485 requests an nvm manifest for version 2.0.0, the nvm-windows/nvm repository, and adaptation for the new release. bucket/nvm.json sets version 2.0.0, updates homepage and release U…
Out of Scope Changes check ✅ Passed The whole-PR diff changes only bucket/nvm.json. The installer, architecture, path, configuration, and autoupdate changes directly support the version 2.0.0 update and breaking-change adaptation requ…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Title check ✅ Passed The title clearly summarizes the primary changes: updating nvm to version 2.0.0 and adding arm64 support. It follows the repository's conventional title format.
Description check ✅ Passed The description includes issue references, both required checklist items, and relevant technical details about the nvm 2.0.0 adaptation, proxy.exe removal issue, ACL restrictions, and installation pat…

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.

@coderabbitai coderabbitai 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.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: ea1e1e59-0b9e-4c5d-b3a7-4289bdf8d0ff

📥 Commits

Reviewing files that changed from the base of the PR and between 861354f and 964352b.

📒 Files selected for processing (1)
  • bucket/nvm.json

Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review.

Comment thread bucket/nvm.json
@deuteros-gex deuteros-gex changed the title nvm@2.0.0: Adapt to the new version nvm@2.0.0: Adapt to the new version, add arm64 support Sep 9, 2026
@deuteros-gex

Copy link
Copy Markdown
Contributor Author

/verify

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

All changes look good.

Wait for review from human collaborators.

nvm

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

Comment thread bucket/nvm.json Outdated
Comment thread bucket/nvm.json Outdated
deuteros-gex and others added 3 commits September 12, 2026 18:14
Co-authored-by: z-Fng <54583083+z-Fng@users.noreply.github.com>
Co-authored-by: z-Fng <54583083+z-Fng@users.noreply.github.com>
@deuteros-gex

Copy link
Copy Markdown
Contributor Author

/verify

@github-actions

This comment was marked as outdated.

@deuteros-gex
deuteros-gex requested a review from z-Fng September 12, 2026 10:23

@coderabbitai coderabbitai 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.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 506b6fb5-8fa3-4f95-a1a2-7f20fb2e7107

📥 Commits

Reviewing files that changed from the base of the PR and between 71aa82b and 76a40d0.

📒 Files selected for processing (1)
  • bucket/nvm.json

Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review.

Comment thread bucket/nvm.json
@deuteros-gex

Copy link
Copy Markdown
Contributor Author

/verify

@github-actions

This comment was marked as outdated.

@z-Fng z-Fng changed the title nvm@2.0.0: Adapt to the new version, add arm64 support nvm: Update to version 2.0.0, adapt to the new version, add arm64 support Sep 12, 2026
@z-Fng

z-Fng commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

/verify

@github-actions

Copy link
Copy Markdown
Contributor

All changes look good.

Wait for review from human collaborators.

nvm

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

@z-Fng

z-Fng commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

2. the NodeJS installation folder cannot be persisted inside the nvm scoop dir

@deuteros-gex How about setting root to $persist_dir instead of $dir? This preserves the existing Node.js installation and avoids unnecessary data loss. At the same time, we can warn the user for elevation during a purge uninstall to safely and cleanly delete the data.

    "post_install": [
        "Add-Path -Path \"$persist_dir\\.nodejs\" -Global:$global",
        "nvm config set root=\"$persist_dir\\nodejs\""
    ],
    "pre_uninstall": "Remove-Path -Path \"$persist_dir\\.nodejs\" -Global:$global",
    "persist": "nodejs",

@deuteros-gex

Copy link
Copy Markdown
Contributor Author
  1. the NodeJS installation folder cannot be persisted inside the nvm scoop dir

@deuteros-gex How about setting root to $persist_dir instead of $dir? This preserves the existing Node.js installation and avoids unnecessary data loss. At the same time, we can warn the user for elevation during a purge uninstall to safely and cleanly delete the data.

    "post_install": [
        "Add-Path -Path \"$persist_dir\\.nodejs\" -Global:$global",
        "nvm config set root=\"$persist_dir\\nodejs\""
    ],
    "pre_uninstall": "Remove-Path -Path \"$persist_dir\\.nodejs\" -Global:$global",
    "persist": "nodejs",

LGTM
Before this instance, I've never thought of leveraging the persist dir directly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: nvm@2.0.0 new version available

2 participants