diff --git a/.changeset/many-bananas-wish.md b/.changeset/many-bananas-wish.md new file mode 100644 index 0000000000000..a845151cc8400 --- /dev/null +++ b/.changeset/many-bananas-wish.md @@ -0,0 +1,2 @@ +--- +--- diff --git a/apps/site/components/Downloads/Release/InstallationMethodDropdown.tsx b/apps/site/components/Downloads/Release/InstallationMethodDropdown.tsx index 4cc89b2149d2a..478ead9f91ed1 100644 --- a/apps/site/components/Downloads/Release/InstallationMethodDropdown.tsx +++ b/apps/site/components/Downloads/Release/InstallationMethodDropdown.tsx @@ -23,15 +23,15 @@ const InstallationMethodDropdown: FC = () => { ); // We group Platforms on the Platform Dropdown to provide the User - // understanding of what is recommended/official and what is not. - const grouppedMethods = useMemo( + // understanding of what is recommended and what is not. + const groupedMethods = useMemo( () => [ { - label: t('layouts.download.dropdown.platformGroups.official'), + label: t('layouts.download.dropdown.platformGroups.recommended'), items: parsedInstallMethods.filter(({ recommended }) => recommended), }, { - label: t('layouts.download.dropdown.platformGroups.unofficial'), + label: t('layouts.download.dropdown.platformGroups.community'), items: parsedInstallMethods.filter(({ recommended }) => !recommended), }, ], @@ -47,8 +47,8 @@ const InstallationMethodDropdown: FC = () => { if (release.os !== 'LOADING' && release.installMethod === '') { const installationMethod = // Sets either the utmost recommended platform or the first non-disabled one - // Note that the first item of groupped platforms is always the recommended one - nextItem('', grouppedMethods[0].items) || + // Note that the first item of grouped platforms is always the recommended one + nextItem('', groupedMethods[0].items) || nextItem('', parsedInstallMethods); // This will never return an empty string as there should always be an item @@ -75,7 +75,7 @@ const InstallationMethodDropdown: FC = () => { return ( - values={grouppedMethods} + values={groupedMethods} value={release.installMethod} loading={release.os === 'LOADING' || release.installMethod === ''} ariaLabel={t('layouts.download.dropdown.platform')} diff --git a/apps/site/pages/en/about/previous-releases.mdx b/apps/site/pages/en/about/previous-releases.mdx index 83988d91ac758..6156ecda4e97d 100644 --- a/apps/site/pages/en/about/previous-releases.mdx +++ b/apps/site/pages/en/about/previous-releases.mdx @@ -23,30 +23,23 @@ Full details regarding the Node.js release schedule are available [on GitHub](ht -## Official vs. Community Installation Methods +## Recommended and community installation methods -The Node.js website provides several non-interactive installation methods, including command-line interfaces (CLIs), operating system (OS) package managers (e.g., `brew`), and Node.js version managers (e.g., `nvm`). +The Node.js website provides several non-interactive installation methods on the Downloads page, including command-line interfaces (CLIs), operating system (OS) package managers (e.g., `brew`), and Node.js version managers (e.g., `nvm`). -To highlight and promote community contributions, the Node.js project introduced a revised Downloads page categorizing installation methods as either “Official” or “Community.” This provides users with increased flexibility and choice. To ensure clarity, we’ve defined criteria for each category. +To highlight and promote community contributions, the Node.js project introduced a revised Downloads page categorizing installation methods as either “Recommended” or “Community.” This provides users with increased flexibility and choice, while keeping a short, curated list for those who want a straightforward starting point. -### Official Installation Methods +Anyone can propose a new installation method for the Downloads page. While the Node.js project makes the final call on what gets listed, proposals are evaluated against the criteria below. -Installation methods designated as “Official” must meet the following requirements: +“Recommended” methods are selected for their reliability and close alignment with official releases, and meet the following criteria (in addition to all “Community” criteria): -| Requirements (Official Installation Methods) | -| :------------------------------------------------------------------------------------------------------------------------------- | -| New Node.js releases must be available simultaneously with the official release. | -| Project maintainers must have a close relationship with the Node.js project, including direct communication channels. | -| Installation method must download official binaries bundled by the Node.js project. | -| Installation method must not build from source when pre-built binaries are available, nor should it alter the official binaries. | +- “Recommended” methods make new Node.js releases available simultaneously with the official release. +- “Recommended” methods use the official Node.js binaries without alteration, only building from source when pre-built binaries are not available. +- “Recommended” methods allow developers to install and use multiple versions of Node.js on a system concurrently. +- “Recommended” methods have a close relationship with the Node.js project, including direct communication channels. -### Community Installation Methods +“Community” methods are additional installation methods also available on the Downloads page, and meet the following criteria: -Community installation methods included on the self-service download page (located at /download) must also adhere to a minimum set of criteria: - -- **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). -- **Broad OS Support:** Cannot be limited to a subset of OS distributions or versions. - - For example, an installation method claiming compatibility with “Windows” must function on “Windows 10”, “Windows 11”, and all their editions (including server versions). - - Similarly, an installation method claiming compatibility with “Linux” must be installable on all major Linux distributions, not just a specific subset. It cannot rely on distribution-specific package managers like `apt` or `dnf`. -- **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. +- “Community” methods must support all currently supported, non-End-of-Life (EOL) Node.js versions. +- “Community” methods must function on at least one officially supported Operating System (OS), and must not be limited to a subset of OS distributions or versions. +- “Community” methods must be free to use and open source, must not be sold as a commercial product, and must not be a paid service. diff --git a/packages/i18n/src/locales/ar.json b/packages/i18n/src/locales/ar.json index 893b890f9a1a5..e74eacb506f59 100644 --- a/packages/i18n/src/locales/ar.json +++ b/packages/i18n/src/locales/ar.json @@ -241,8 +241,8 @@ "packageManager": "مدير الحزم", "unknown": "غير معروف", "platformGroups": { - "official": "موصى به (رسمي)", - "unofficial": "المجتمع (غير رسمي)" + "recommended": "موصى به", + "community": "المجتمع" } }, "codeBox": { diff --git a/packages/i18n/src/locales/en.json b/packages/i18n/src/locales/en.json index baa59378ee880..d14610dd9be10 100644 --- a/packages/i18n/src/locales/en.json +++ b/packages/i18n/src/locales/en.json @@ -242,8 +242,8 @@ "packageManager": "Package Manager", "unknown": "Unknown", "platformGroups": { - "official": "Recommended (Official)", - "unofficial": "Community (Unofficial)" + "recommended": "Recommended", + "community": "Community" } }, "codeBox": { diff --git a/packages/i18n/src/locales/fr.json b/packages/i18n/src/locales/fr.json index a456379bdc348..2abc02cd123f9 100644 --- a/packages/i18n/src/locales/fr.json +++ b/packages/i18n/src/locales/fr.json @@ -240,8 +240,8 @@ "packageManager": "Gestionnaire de paquets", "unknown": "Inconnu", "platformGroups": { - "official": "Recommandé (officiel)", - "unofficial": "Communauté (non officielle)" + "recommended": "Recommandé", + "community": "Communauté" } }, "codeBox": { diff --git a/packages/i18n/src/locales/id.json b/packages/i18n/src/locales/id.json index aba64d1fec422..65903676df2ad 100644 --- a/packages/i18n/src/locales/id.json +++ b/packages/i18n/src/locales/id.json @@ -242,8 +242,8 @@ "packageManager": "Manajer paket", "unknown": "Tak diketahui", "platformGroups": { - "official": "Direkomendasikan (Resmi)", - "unofficial": "Komunitas (Tidak Resmi)" + "recommended": "Direkomendasikan", + "community": "Komunitas" } }, "codeBox": { diff --git a/packages/i18n/src/locales/ja.json b/packages/i18n/src/locales/ja.json index b628d2a5b150c..1a69880f2049d 100644 --- a/packages/i18n/src/locales/ja.json +++ b/packages/i18n/src/locales/ja.json @@ -242,8 +242,8 @@ "packageManager": "パッケージマネージャー", "unknown": "不明", "platformGroups": { - "official": "推奨(公式)", - "unofficial": "コミュニティー(非公式)" + "recommended": "推奨", + "community": "コミュニティー" } }, "codeBox": { diff --git a/packages/i18n/src/locales/ko.json b/packages/i18n/src/locales/ko.json index 0deeb0c13a912..83e79fef59ad9 100644 --- a/packages/i18n/src/locales/ko.json +++ b/packages/i18n/src/locales/ko.json @@ -129,8 +129,8 @@ "packageManager": "패키지 관리자", "unknown": "알 수 없음", "platformGroups": { - "official": "권장됨 (공식)", - "unofficial": "커뮤니티 (비공식)" + "recommended": "권장됨", + "community": "커뮤니티" } }, "codeBox": { diff --git a/packages/i18n/src/locales/pt-br.json b/packages/i18n/src/locales/pt-br.json index 0ac8d454608c5..2e04116fc4d95 100644 --- a/packages/i18n/src/locales/pt-br.json +++ b/packages/i18n/src/locales/pt-br.json @@ -231,8 +231,8 @@ "packageManager": "Gerenciador de Pacotes", "unknown": "Desconhecido", "platformGroups": { - "official": "Recomendado (Oficial)", - "unofficial": "Comunidade (Não Oficial)" + "recommended": "Recomendado", + "community": "Comunidade" } }, "codeBox": { diff --git a/packages/i18n/src/locales/pt.json b/packages/i18n/src/locales/pt.json index 3207cfbfd4ccb..5221a9e92b97b 100644 --- a/packages/i18n/src/locales/pt.json +++ b/packages/i18n/src/locales/pt.json @@ -132,8 +132,8 @@ "packageManager": "Gestor de Pacote", "unknown": "Desconhecido", "platformGroups": { - "official": "Recomendado (Oficial)", - "unofficial": "Comunidade (Não Oficial)" + "recommended": "Recomendado", + "community": "Comunidade" } }, "codeBox": { diff --git a/packages/i18n/src/locales/ro.json b/packages/i18n/src/locales/ro.json index 6515a8242350d..acc43a2998d26 100644 --- a/packages/i18n/src/locales/ro.json +++ b/packages/i18n/src/locales/ro.json @@ -208,8 +208,8 @@ "packageManager": "Manager de pachete", "unknown": "Necunoscut", "platformGroups": { - "official": "Recomandat (oficial)", - "unofficial": "Comunitate (neoficial)" + "recommended": "Recomandat", + "community": "Comunitate" } }, "codeBox": { diff --git a/packages/i18n/src/locales/ta.json b/packages/i18n/src/locales/ta.json index 6601f5fdb1251..b4a9311634cff 100644 --- a/packages/i18n/src/locales/ta.json +++ b/packages/i18n/src/locales/ta.json @@ -231,8 +231,8 @@ "packageManager": "பேக்கேஜ் மேலாளர்", "unknown": "தெரியவில்லை", "platformGroups": { - "official": "பரிந்துரைக்கப்படும் (அதிகாரப்பூர்வமானது)", - "unofficial": "சமூகம் (அதிகாரப்பூர்வமற்றது)" + "recommended": "பரிந்துரைக்கப்படும்", + "community": "சமூகம்" } }, "codeBox": { diff --git a/packages/i18n/src/locales/uk.json b/packages/i18n/src/locales/uk.json index b23e0d7301dcb..0b0451b53a868 100644 --- a/packages/i18n/src/locales/uk.json +++ b/packages/i18n/src/locales/uk.json @@ -242,8 +242,8 @@ "packageManager": "Менеджер пакетів", "unknown": "Невідомо", "platformGroups": { - "official": "Рекомендовані (офіційні)", - "unofficial": "Спільнотні (неофіційні)" + "recommended": "Рекомендовані", + "community": "Спільнотні" } }, "codeBox": { diff --git a/packages/i18n/src/locales/zh-cn.json b/packages/i18n/src/locales/zh-cn.json index 1e7d1117fb59c..00ff78479673f 100644 --- a/packages/i18n/src/locales/zh-cn.json +++ b/packages/i18n/src/locales/zh-cn.json @@ -132,8 +132,8 @@ "packageManager": "包管理器", "unknown": "未知", "platformGroups": { - "official": "推荐(官方)", - "unofficial": "社区(非官方)" + "recommended": "推荐", + "community": "社区" } }, "codeBox": { diff --git a/packages/i18n/src/locales/zh-tw.json b/packages/i18n/src/locales/zh-tw.json index 57f3ed76edd2d..12f93f3e71fb0 100644 --- a/packages/i18n/src/locales/zh-tw.json +++ b/packages/i18n/src/locales/zh-tw.json @@ -157,8 +157,8 @@ "packageManager": "套件管理程式", "unknown": "未知", "platformGroups": { - "official": "推薦(官方)", - "unofficial": "社群(非官方)" + "recommended": "推薦", + "community": "社群" } }, "codeBox": {