Skip to content

feat: add ASDF as community install option#8847

Closed
7487 wants to merge 2 commits intonodejs:mainfrom
7487:fix/add-asdf-option
Closed

feat: add ASDF as community install option#8847
7487 wants to merge 2 commits intonodejs:mainfrom
7487:fix/add-asdf-option

Conversation

@7487
Copy link
Copy Markdown

@7487 7487 commented Apr 26, 2026

Description

Add ASDF (Another Setup Tool) as a community-maintained version manager option on the Node.js download page.

ASDF is a cross-platform version manager that supports Node.js along with many other languages/tools. It's widely used in the developer community and missing from the list of community install options.

Changes

  • Add ASDF entry to constants.json installMethods array with appropriate metadata (icon, URL, platform compatibility)
  • Add i18n translation string for ASDF description across all 12 locale files that include the platformInfo section

Co-Authored-By: Claude Opus 4.7 [email protected]

- Add ASDF entry to constants.json installMethods array
- Add i18n strings for ASDF across all 12 locale files with platformInfo

Co-Authored-By: Claude Opus 4.7 <[email protected]>
@7487 7487 requested a review from a team as a code owner April 26, 2026 08:21
Copilot AI review requested due to automatic review settings April 26, 2026 08:21
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 26, 2026

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

Project Deployment Actions Updated (UTC)
nodejs-org Ready Ready Preview Apr 26, 2026 9:00am

Request Review

@cursor
Copy link
Copy Markdown

cursor Bot commented Apr 26, 2026

PR Summary

Low Risk
Low risk: this only extends download-page configuration and localized strings, with no changes to runtime logic, security, or data handling.

Overview
Adds ASDF to the download page installMethods list in apps/site/util/download/constants.json (with icon, URL, and OS compatibility) so it can be selected as a community install method.

Adds the new i18n key layouts.download.codeBox.platformInfo.asdf across supported locale JSON files (and adjusts a couple of foundationName translations) to display ASDF’s platform description.

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

@github-actions
Copy link
Copy Markdown
Contributor

👋 Codeowner Review Request

The following codeowners have been identified for the changed files:

Team reviewers: @nodejs/nodejs-website

Please review the changes when you have a chance. Thank you! 🙏

@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!

}
,{
"id": "ASDF",
"icon": "asdf",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing icon component causes runtime crash

High Severity

The "icon": "asdf" value references a non-existent export from @node-core/ui-components/Icons/InstallationMethod. That module only exports Choco, Docker, FNM, Homebrew, N, NVM, and Volta — there is no asdf (or ASDF) export. The createIcon function will resolve IconModule["asdf"] to undefined, and React will crash when attempting to render <undefined />.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit c21dac7. Configure here.

"choco": "Chocolatey est un gestionnaire de paquets pour Windows.",
"docker": "Docker est une plateforme de conteneurisation.",
"n": "\"n\" est un gestionnaire de versions Node.js multiplateforme.",
"asdf": "ASDF is a cross-platform version manager.",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Non-English locales have untranslated ASDF descriptions

Medium Severity

The asdf description string is English ("ASDF is a cross-platform version manager.") in all 11 non-English locale files (fr, id, ja, ko, pt-br, pt, ro, ta, uk, zh-cn, zh-tw). Every other entry in those files is properly translated into the respective language, so this breaks the localized user experience.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit c21dac7. Configure here.

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

Adds ASDF as a community-maintained installation method on the site’s Node.js download page, along with a new platformInfo i18n string used in the download UI footer.

Changes:

  • Adds an ASDF entry to the download installMethods constants list (id, icon, URL, OS compatibility, info key).
  • Adds layouts.download.codeBox.platformInfo.asdf string entries across multiple locale JSON files.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 15 comments.

Show a summary per file
File Description
packages/i18n/src/locales/zh-tw.json Adds platformInfo.asdf string (currently English).
packages/i18n/src/locales/zh-cn.json Adds platformInfo.asdf string (currently English).
packages/i18n/src/locales/uk.json Adds platformInfo.asdf string (currently English).
packages/i18n/src/locales/ta.json Adds platformInfo.asdf string (currently English).
packages/i18n/src/locales/ro.json Adds platformInfo.asdf string (currently English).
packages/i18n/src/locales/pt.json Adds platformInfo.asdf string (currently English).
packages/i18n/src/locales/pt-br.json Adds platformInfo.asdf string (currently English).
packages/i18n/src/locales/ko.json Adds platformInfo.asdf string (currently English); also modifies docker line for comma.
packages/i18n/src/locales/ja.json Adds platformInfo.asdf string (currently English).
packages/i18n/src/locales/id.json Adds platformInfo.asdf string (currently English).
packages/i18n/src/locales/fr.json Adds platformInfo.asdf string (currently English).
packages/i18n/src/locales/en.json Adds the new English source string for platformInfo.asdf.
apps/site/util/download/constants.json Adds ASDF to installMethods list (id/icon/url/info/compatibility).

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

Comment on lines +192 to +196
"id": "ASDF",
"icon": "asdf",
"name": "ASDF",
"compatibility": {
"os": ["MAC", "LINUX", "WIN"]
Copy link

Copilot AI Apr 26, 2026

Choose a reason for hiding this comment

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

The new install method introduces a new id ("ASDF"). Please also update the InstallationMethod union in apps/site/types/release.ts to include this value; otherwise parts of the UI state and dropdown typing rely on unsafe casts and can get out of sync.

Copilot uses AI. Check for mistakes.
Comment on lines 190 to +200
}
,{
"id": "ASDF",
"icon": "asdf",
"name": "ASDF",
"compatibility": {
"os": ["MAC", "LINUX", "WIN"]
},
"url": "https://github.com/asdf-vm/asdf",
"info": "layouts.download.codeBox.platformInfo.asdf"
}
Copy link

Copilot AI Apr 26, 2026

Choose a reason for hiding this comment

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

The array item separator is formatted as ,{ on its own line. This is valid JSON but inconsistent with the surrounding style and makes diffs harder to read. Prefer ending the previous object with a trailing comma and starting the next object on a new, properly indented line.

Suggested change
}
,{
"id": "ASDF",
"icon": "asdf",
"name": "ASDF",
"compatibility": {
"os": ["MAC", "LINUX", "WIN"]
},
"url": "https://github.com/asdf-vm/asdf",
"info": "layouts.download.codeBox.platformInfo.asdf"
}
},
{
"id": "ASDF",
"icon": "asdf",
"name": "ASDF",
"compatibility": {
"os": ["MAC", "LINUX", "WIN"]
},
"url": "https://github.com/asdf-vm/asdf",
"info": "layouts.download.codeBox.platformInfo.asdf"
}

Copilot uses AI. Check for mistakes.
"choco": "Chocolatey é um gerenciador de pacotes para Windows.",
"docker": "Docker é uma plataforma de conteinerização.",
"n": "\"n\" é um gerenciador de versões do Node.js multiplataforma.",
"asdf": "ASDF is a cross-platform version manager.",
Copy link

Copilot AI Apr 26, 2026

Choose a reason for hiding this comment

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

This new pt-BR locale string is still in English. Please translate it to Brazilian Portuguese to keep platformInfo localized.

Suggested change
"asdf": "ASDF is a cross-platform version manager.",
"asdf": "\"ASDF\" é um gerenciador de versões multiplataforma.",

Copilot uses AI. Check for mistakes.
"choco": "ChocolateyはWIndows用のパッケージマネージャーです。",
"docker": "Dockerはコンテナー化に関するプラットフォームです。",
"n": "\"n\"はクロスプラットフォームに対応したNode.jsのバージョンマネージャーです。",
"asdf": "ASDF is a cross-platform version manager.",
Copy link

Copilot AI Apr 26, 2026

Choose a reason for hiding this comment

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

This new Japanese locale string is still in English. Please provide a Japanese translation for consistency with the rest of platformInfo.

Suggested change
"asdf": "ASDF is a cross-platform version manager.",
"asdf": "\"ASDF\"はクロスプラットフォームに対応したバージョンマネージャーです。",

Copilot uses AI. Check for mistakes.
"choco": "Chocolatey 是 Windows 的套件管理程式。",
"docker": "Docker 是一款容器化平台。",
"n": "「n」是跨平台的 Node.js 版本管理程式。",
"asdf": "ASDF is a cross-platform version manager.",
Copy link

Copilot AI Apr 26, 2026

Choose a reason for hiding this comment

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

This new zh-tw locale string is still in English. Please translate it to Traditional Chinese to match the rest of platformInfo (the other entries here are localized).

Suggested change
"asdf": "ASDF is a cross-platform version manager.",
"asdf": "ASDF」是跨平台的版本管理程式。",

Copilot uses AI. Check for mistakes.
"choco": "Chocolatey est un gestionnaire de paquets pour Windows.",
"docker": "Docker est une plateforme de conteneurisation.",
"n": "\"n\" est un gestionnaire de versions Node.js multiplateforme.",
"asdf": "ASDF is a cross-platform version manager.",
Copy link

Copilot AI Apr 26, 2026

Choose a reason for hiding this comment

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

This new French locale string is still in English. Please translate it to French to match the other localized strings in platformInfo.

Suggested change
"asdf": "ASDF is a cross-platform version manager.",
"asdf": "\"ASDF\" est un gestionnaire de versions multiplateforme.",

Copilot uses AI. Check for mistakes.
"choco": "Chocolatey 是一款 Windows 软件包管理器。",
"docker": "Docker 是一个容器化平台。",
"n": "\"n\" 是一个跨平台的 Node.js 版本管理器。",
"asdf": "ASDF is a cross-platform version manager.",
Copy link

Copilot AI Apr 26, 2026

Choose a reason for hiding this comment

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

This new zh-cn locale string is still in English. Please translate it to Simplified Chinese to keep platformInfo localized.

Suggested change
"asdf": "ASDF is a cross-platform version manager.",
"asdf": "ASDF 是一个跨平台的版本管理器。",

Copilot uses AI. Check for mistakes.
"choco": "Chocolatey — це менеджер пакетів для Windows.",
"docker": "Docker — це платформа контейнеризації.",
"n": "«n» — це кросплатформний менеджер версій Node.js.",
"asdf": "ASDF is a cross-platform version manager.",
Copy link

Copilot AI Apr 26, 2026

Choose a reason for hiding this comment

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

This new Ukrainian locale string is still in English. Please provide a Ukrainian translation for consistency with the rest of platformInfo.

Suggested change
"asdf": "ASDF is a cross-platform version manager.",
"asdf": "«ASDF» — це кросплатформний менеджер версій.",

Copilot uses AI. Check for mistakes.
"choco": "Chocolatey என்பது Windows இற்கான பேக்கேஜ் மேலாளர்.",
"docker": "Docker என்பது containerization தளம்.",
"n": "\"n\" குறுக்கு-பிளாட்ஃபார்ம் Node பதிப்பு மேலாளர்.",
"asdf": "ASDF is a cross-platform version manager.",
Copy link

Copilot AI Apr 26, 2026

Choose a reason for hiding this comment

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

This new Tamil locale string is still in English. Please translate it to Tamil so the platformInfo block remains localized.

Suggested change
"asdf": "ASDF is a cross-platform version manager.",
"asdf": "ASDF என்பது ஒரு குறுக்கு-பிளாட்ஃபார்ம் பதிப்பு மேலாளர்.",

Copilot uses AI. Check for mistakes.
"brew": "Homebrew는 macOS와 Linux용 패키지 관리자입니다.",
"choco": "Chocolatey는 Windows용 패키지 관리자입니다.",
"docker": "Docker는 컨테이너화 플랫폼입니다. "
"docker": "Docker는 컨테이너화 플랫폼입니다. ",
Copy link

Copilot AI Apr 26, 2026

Choose a reason for hiding this comment

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

While touching this line to add the trailing comma, consider removing the trailing space inside the string value (it will render as an extra space in the UI).

Suggested change
"docker": "Docker는 컨테이너화 플랫폼입니다. ",
"docker": "Docker는 컨테이너화 플랫폼입니다.",

Copilot uses AI. Check for mistakes.
- fr.json: revert "Fondation OpenJS" back to "OpenJS Foundation"
- ta.json: revert Tamil translation back to "OpenJS Foundation"

Per previous PR nodejs#6847, OpenJS Foundation is a proper noun and should
not be translated in any locale.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
Copy link
Copy Markdown

@cursor cursor Bot left a comment

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 and found 2 potential issues.

There are 4 total unresolved issues (including 2 from previous reviews).

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 2c29d15. Configure here.

"icon": "asdf",
"name": "ASDF",
"compatibility": {
"os": ["MAC", "LINUX", "WIN"]
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

ASDF incorrectly listed as Windows-compatible

Medium Severity

The ASDF compatibility includes "WIN" in its os array, but ASDF does not natively support Windows — it only works through WSL2. Every other Unix-based version manager in the list (nvm, fnm, n, brew) correctly limits compatibility to ["MAC", "LINUX"]. Including "WIN" will cause ASDF to appear as an installation option for Windows users, who will then find it doesn't work on their platform.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 2c29d15. Configure here.

"legal": "Copyright © <foundationName>OpenJS Foundation</foundationName> et les contributeurs Node.js. Tous droits réservés.\nLa <foundationName>OpenJS Foundation</foundationName> détient des marques déposées et utilise des marques commerciales.\nPour consulter la liste des marques de la <foundationName>OpenJS Foundation</foundationName>, veuillez vous référer à notre <trademarkPolicy>Politique relative aux marques</trademarkPolicy> ainsi qu’à la <trademarkList>Liste des marques</trademarkList>.\nLes marques et logos qui ne figurent pas dans la <trademarkList>liste des marques de la OpenJS Foundation</trademarkList> sont des marques commerciales™ ou des marques déposées® appartenant à leurs détenteurs respectifs. Leur utilisation n’implique aucune affiliation ni approbation de leur part.",
"links": {
"foundationName": "Fondation OpenJS",
"foundationName": "OpenJS Foundation",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Unrelated locale changes revert translated foundation name

Low Severity

In fr.json, foundationName was changed from the French translation "Fondation OpenJS" to the English "OpenJS Foundation". Similarly in ta.json, it was changed from the Tamil "OpenJS நிறுவனம்" to "OpenJS Foundation". These are unrelated to the ASDF feature and appear to be accidental reversions of localized strings back to English.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 2c29d15. Configure here.

@avivkeller
Copy link
Copy Markdown
Member

Duplicate of #8800

@avivkeller avivkeller marked this as a duplicate of #8800 Apr 26, 2026
@avivkeller avivkeller closed this Apr 26, 2026
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