Skip to content

feat: add 0install as an installation method on the downloads page - #9026

Open
bastianeicher wants to merge 1 commit into
nodejs:mainfrom
bastianeicher:feat/add-zeroinstall-package-manager
Open

feat: add 0install as an installation method on the downloads page#9026
bastianeicher wants to merge 1 commit into
nodejs:mainfrom
bastianeicher:feat/add-zeroinstall-package-manager

Conversation

@bastianeicher

@bastianeicher bastianeicher commented Jul 28, 2026

Copy link
Copy Markdown

Description

0install is a cross-platform decentralized package manager. Applications are packaged as "feeds": XML files listing available versions, where to download them, and how to extract and execute them. The 0install project maintains a feed for Node.js: https://apps.0install.net/javascript/node.xml

This adds 0install alongside the other community installation methods such as asdf and Chocolatey.

Validation

nodejs_0install

Check List

  • I have read the Contributing Guidelines and made commit messages that follow the guideline.
  • I have run pnpm format to ensure the code follows the style guide.
  • I have run pnpm test to check if all tests are passing.
  • I have run pnpm build to check if the website builds without errors.
  • I've covered new added functionality with unit tests if necessary.

@bastianeicher
bastianeicher requested a review from a team as a code owner July 28, 2026 11:13
Copilot AI lite review requested due to automatic review settings July 28, 2026 11:13
@vercel

vercel Bot commented Jul 28, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
nodejs-org Ready Ready Preview Aug 7, 2026 5:03pm

Request Review

@cursor

cursor Bot commented Jul 28, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Download-page content and types only; no auth, runtime Node changes, or official installer logic.

Overview
Adds 0install as a community install option on the Node.js download page, alongside tools like asdf and Chocolatey.

Users on Windows, macOS, and Linux can pick it from the install-method dropdown and get OS-specific copy-paste commands: install 0install (winget vs curl script), wire up node / npm / npx from the official 0install Node feed (with pinned version on Unix), and set npm global prefix plus PATH. Wiring includes a new ZEROINSTALL install-method type, an entry in download constants, English platform blurb, a ZeroInstall SVG icon in the design system, and the zeroinstall.bash snippet consumed by the existing snippet loader.

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

Comment thread apps/site/snippets/en/download/zeroinstall.bash Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds 0install as a community installation method on the Downloads page, including a new UI icon and snippet logic to support installing pnpm via 0install’s feed instead of Corepack.

Changes:

  • Added a new ZeroInstall installation-method icon and exported it through the UI icon index (plus Storybook coverage).
  • Added ZEROINSTALL to the downloads install-method constants and the InstallationMethod type union.
  • Introduced a new 0install download snippet and adjusted snippet processing to skip Corepack installation when using ZEROINSTALL + PNPM; updated the English pnpm snippet accordingly.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packages/ui-components/src/Icons/InstallationMethod/ZeroInstall.tsx Adds the 0install SVG icon component.
packages/ui-components/src/Icons/InstallationMethod/index.ts Exports the new ZeroInstall icon.
packages/ui-components/design/platform-logos.stories.tsx Displays the new icon in the design Storybook.
packages/i18n/src/locales/en.json Adds English platform info text for 0install.
apps/site/util/download/constants.json Registers ZEROINSTALL as a new install method (name/icon/url/info).
apps/site/types/release.ts Extends the InstallationMethod union with ZEROINSTALL.
apps/site/snippets/en/download/zeroinstall.bash Adds the English 0install installation snippet.
apps/site/snippets/en/download/pnpm.bash Uses 0install feed for pnpm when installMethod === 'ZEROINSTALL'.
apps/site/components/Downloads/Release/ReleaseCodeBox.tsx Skips Corepack-install snippet when using ZEROINSTALL + PNPM.

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

Comment thread packages/ui-components/src/Icons/InstallationMethod/ZeroInstall.tsx Outdated
Comment thread apps/site/snippets/en/download/zeroinstall.bash Outdated
Comment thread apps/site/snippets/en/download/pnpm.bash Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

apps/site/snippets/en/download/zeroinstall.bash:7

  • 0install add does not support a --version flag (per 0install CLI docs, version constraints are handled via 0install select --version=... / selections). As written, these commands will likely fail with an unknown option error, breaking the generated download snippet for 0install.

If you don't intend to pin an exact version here, remove the --version templating from the add commands (or switch to the documented 0install select flow if pinning is required).

0install add node https://apps.0install.net/javascript/node.xml${props.os === 'WIN' ? '' : ' --version=' + props.release.version}
0install add npm https://apps.0install.net/javascript/node.xml --command=npm${props.os === 'WIN' ? '' : ' --version=' + props.release.version}
0install add npx https://apps.0install.net/javascript/node.xml --command=npx${props.os === 'WIN' ? '' : ' --version=' + props.release.version}

Copilot AI review requested due to automatic review settings July 28, 2026 11:56
@github-actions

Copy link
Copy Markdown
Contributor

Note

Your Pull Request seems to be updating Translations of the Node.js Website.

Whilst we appreciate your intent; Any Translation update should be done through our Crowdin Project.
We recommend giving a read on our Translation Guidelines.

Thank you!

Comment thread apps/site/snippets/en/download/zeroinstall.bash

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

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

Comments suppressed due to low confidence (1)

packages/ui-components/src/Icons/InstallationMethod/ZeroInstall.tsx:9

  • This new SVG icon component omits default width/height attributes on the root <svg>, unlike the other InstallationMethod icons in this folder (they default to 32×32). Without explicit sizing props, the browser default (300×150) can cause inconsistent rendering in consumers.
  <svg
    xmlns="http://www.w3.org/2000/svg"
    xmlnsXlink="http://www.w3.org/1999/xlink"
    viewBox="0 0 68 68"
    {...props}
  >

Comment thread apps/site/snippets/en/download/zeroinstall.bash
@MikeMcC399

This comment was marked as outdated.

@avivkeller

Copy link
Copy Markdown
Member

Please only update the english site

@avivkeller

Copy link
Copy Markdown
Member
  • Version Support: Must support all currently supported, non-End-of-Life (EOL) Node.js versions.
  • OS Compatibility: Must function on at least one officially supported Operating System (OS).
  • Free and Open Source: Must be free to use and open source, must not be sold as a commercial product, and must not be a paid service.

Comment thread apps/site/snippets/es/download/pnpm.bash Outdated
Copilot AI review requested due to automatic review settings July 28, 2026 15:53
@bastianeicher
bastianeicher force-pushed the feat/add-zeroinstall-package-manager branch from 3ff16a6 to 0f5fa0b Compare July 28, 2026 15:53
Comment thread apps/site/components/Downloads/Release/ReleaseCodeBox.tsx Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

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

Comments suppressed due to low confidence (1)

apps/site/snippets/en/download/zeroinstall.bash:6

  • These 0install add commands use --command=... for npm/npx. The published 0install man pages and user guide for add document the form 0install add NAME URI and do not list --command as a supported option for add, which makes this snippet likely to fail for users on some 0install versions/platforms.
0install add node https://apps.0install.net/javascript/node.xml${props.os === 'WIN' ? '' : ' --version=' + props.release.version}
0install add npm https://apps.0install.net/javascript/node.xml --command=npm${props.os === 'WIN' ? '' : ' --version=' + props.release.version}
0install add npx https://apps.0install.net/javascript/node.xml --command=npx${props.os === 'WIN' ? '' : ' --version=' + props.release.version}

Comment thread apps/site/components/Downloads/Release/ReleaseCodeBox.tsx Outdated
Copilot AI review requested due to automatic review settings July 28, 2026 16:45
@bastianeicher
bastianeicher force-pushed the feat/add-zeroinstall-package-manager branch from 0f5fa0b to 732e67f Compare July 28, 2026 16:45
Comment thread apps/site/snippets/en/download/zeroinstall.bash Outdated
Comment thread apps/site/snippets/en/download/zeroinstall.bash
Comment thread packages/ui-components/src/Icons/InstallationMethod/ZeroInstall.tsx
Comment thread apps/site/snippets/en/download/zeroinstall.bash
Copilot AI review requested due to automatic review settings July 30, 2026 23:17
@bastianeicher
bastianeicher force-pushed the feat/add-zeroinstall-package-manager branch from ac15bab to 5f9dd72 Compare July 30, 2026 23:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings July 30, 2026 23:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@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 1 potential issue.

Fix All in Cursor

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

Reviewed by Cursor Bugbot for commit 7692e1b. Configure here.

Comment thread apps/site/snippets/en/download/zeroinstall.bash
@avivkeller

Copy link
Copy Markdown
Member

@bastianeicher Sorry to make you do this but you have to rebase, we recently changed some directory things. No need to resolve conflicts, just git rebase origin/main :-)

Comment thread apps/site/snippets/en/download/zeroinstall.bash
Comment thread apps/site/snippets/en/download/zeroinstall.bash Outdated
Copilot AI review requested due to automatic review settings July 31, 2026 11:48

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings July 31, 2026 11:54
@bastianeicher
bastianeicher force-pushed the feat/add-zeroinstall-package-manager branch from b9a138a to dd73fcf Compare July 31, 2026 11:54

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@bastianeicher

Copy link
Copy Markdown
Author

@bastianeicher Sorry to make you do this but you have to rebase, we recently changed some directory things. No need to resolve conflicts, just git rebase origin/main :-)

@avivkeller Done 👍

Copilot AI review requested due to automatic review settings August 4, 2026 07:54
@bastianeicher
bastianeicher force-pushed the feat/add-zeroinstall-package-manager branch from dd73fcf to 537cf53 Compare August 4, 2026 07:54

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.

Suppressed comments (1)

packages/ui-components/src/Icons/InstallationMethod/ZeroInstall.tsx:10

  • Other InstallationMethod icons define a default width/height on the root <svg> (e.g. Docker/N/NVM). ZeroInstall currently relies entirely on callers to pass sizing props, which can lead to inconsistent default rendering when it’s used without explicit dimensions.
  <svg
    xmlns="http://www.w3.org/2000/svg"
    xmlnsXlink="http://www.w3.org/1999/xlink"
    viewBox="0 0 68 68"
    {...props}

0install is a cross-platform decentralized package manager.
Applications are packaged as "feeds": XML files listing available
versions, where to download them, and how to extract and execute
them. The 0install project maintains a feed for Node.js:
https://apps.0install.net/javascript/node.xml

This adds 0install alongside the other community installation
methods such as asdf and Chocolatey.
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.

4 participants