feat: add 0install as an installation method on the downloads page - #9026
feat: add 0install as an installation method on the downloads page#9026bastianeicher wants to merge 1 commit into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryLow Risk Overview The download UI gains a new Reviewed by Cursor Bugbot for commit 572ff80. Bugbot is set up for automated code reviews on this repo. Configure here. |
There was a problem hiding this comment.
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
ZeroInstallinstallation-method icon and exported it through the UI icon index (plus Storybook coverage). - Added
ZEROINSTALLto the downloads install-method constants and theInstallationMethodtype 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.
| # 0install has specific installation instructions for each operating system. | ||
| # Please refer to the official documentation at https://get.0install.net/. |
There was a problem hiding this comment.
PRs should only modify the English language content.
There was a problem hiding this comment.
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 adddoes not support a--versionflag (per 0install CLI docs, version constraints are handled via0install 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}
|
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. Thank you! |
There was a problem hiding this comment.
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/heightattributes 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}
>
This comment was marked as outdated.
This comment was marked as outdated.
|
Please only update the english site |
|
3ff16a6 to
0f5fa0b
Compare
There was a problem hiding this comment.
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 addcommands use--command=...for npm/npx. The published 0install man pages and user guide foradddocument the form0install add NAME URIand do not list--commandas a supported option foradd, 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}
0f5fa0b to
732e67f
Compare
0install allows running apps two different ways: One-shot without adding to the PATH Run current latest: Run specific version: Add to PATH Install latest and auto-update: Install specific version and only manually update: |
732e67f to
ffc417f
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
packages/ui-components/src/Icons/InstallationMethod/ZeroInstall.tsx:9
- This SVG icon component doesn’t set a default
width/heighton the root<svg>, while the other installation-method icons in this folder do. If a consumer renders the icon without passing explicit dimensions, it will fall back to the browser’s default SVG size and appear inconsistent with the rest of the icon set.
<svg
xmlns="http://www.w3.org/2000/svg"
xmlnsXlink="http://www.w3.org/1999/xlink"
viewBox="0 0 68 68"
{...props}
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort 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 ffc417f. Configure here.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (2)
packages/ui-components/src/Icons/InstallationMethod/ZeroInstall.tsx:9
- Other InstallationMethod icons provide a default
width/height(typically 32x32). Without defaults, rendering this icon without explicit sizing can fall back to browser defaults and produce inconsistent icon sizing.
xmlns="http://www.w3.org/2000/svg"
xmlnsXlink="http://www.w3.org/1999/xlink"
viewBox="0 0 68 68"
{...props}
>
apps/site/util/download/constants.json:205
- This introduces a new installation method with an
iconstring that must match an exported component name. There are existing unit tests forINSTALL_METHODSicon wiring, but they don’t cover this new method, so a typo iniconwould fail at runtime without being caught.
"id": "ZEROINSTALL",
"icon": "ZeroInstall",
"name": "0install",
"compatibility": {
"os": ["WIN", "MAC", "LINUX"]
ffc417f to
9615516
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 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:9
- In the Windows (PowerShell) branch,
npm config set prefixis currently fed$env:appdata\npmdirectly. Building the path this way is brittle in PowerShell; useJoin-Pathso the prefix is computed as a single argument and doesn’t rely on string concatenation/parsing rules.
npm config set prefix ${props.os === 'WIN' ? '$env:appdata\\npm' : '~/.npm-global'}
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.
9615516 to
572ff80
Compare

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
Check List
pnpm formatto ensure the code follows the style guide.pnpm testto check if all tests are passing.pnpm buildto check if the website builds without errors.