Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .changeset/many-bananas-wish.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
---
Comment on lines +1 to +2

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.

🍌

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lol

Original file line number Diff line number Diff line change
Expand Up @@ -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),
},
],
Expand All @@ -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<InstallationMethod | ''>('', grouppedMethods[0].items) ||
// Note that the first item of grouped platforms is always the recommended one
nextItem<InstallationMethod | ''>('', groupedMethods[0].items) ||
nextItem<InstallationMethod | ''>('', parsedInstallMethods);

// This will never return an empty string as there should always be an item
Expand All @@ -75,7 +75,7 @@ const InstallationMethodDropdown: FC = () => {

return (
<Select<InstallationMethod | ''>
values={grouppedMethods}
values={groupedMethods}
value={release.installMethod}
loading={release.os === 'LOADING' || release.installMethod === ''}
ariaLabel={t('layouts.download.dropdown.platform')}
Expand Down
33 changes: 13 additions & 20 deletions apps/site/pages/en/about/previous-releases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -23,30 +23,23 @@ Full details regarding the Node.js release schedule are available [on GitHub](ht

<PreviousReleasesTable />

## 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.
4 changes: 2 additions & 2 deletions packages/i18n/src/locales/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -241,8 +241,8 @@
"packageManager": "مدير الحزم",
"unknown": "غير معروف",
"platformGroups": {
"official": "موصى به (رسمي)",
"unofficial": "المجتمع (غير رسمي)"
"recommended": "موصى به",
"community": "المجتمع"
}
},
"codeBox": {
Expand Down
4 changes: 2 additions & 2 deletions packages/i18n/src/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -242,8 +242,8 @@
"packageManager": "Package Manager",
"unknown": "Unknown",
"platformGroups": {
"official": "Recommended (Official)",
"unofficial": "Community (Unofficial)"
"recommended": "Recommended",
"community": "Community"
}
},
"codeBox": {
Expand Down
4 changes: 2 additions & 2 deletions packages/i18n/src/locales/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -240,8 +240,8 @@
"packageManager": "Gestionnaire de paquets",
"unknown": "Inconnu",
"platformGroups": {
"official": "Recommandé (officiel)",
"unofficial": "Communauté (non officielle)"
"recommended": "Recommandé",
"community": "Communauté"
}
},
"codeBox": {
Expand Down
4 changes: 2 additions & 2 deletions packages/i18n/src/locales/id.json
Original file line number Diff line number Diff line change
Expand Up @@ -242,8 +242,8 @@
"packageManager": "Manajer paket",
"unknown": "Tak diketahui",
"platformGroups": {
"official": "Direkomendasikan (Resmi)",
"unofficial": "Komunitas (Tidak Resmi)"
"recommended": "Direkomendasikan",
"community": "Komunitas"
}
},
"codeBox": {
Expand Down
4 changes: 2 additions & 2 deletions packages/i18n/src/locales/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -242,8 +242,8 @@
"packageManager": "パッケージマネージャー",
"unknown": "不明",
"platformGroups": {
"official": "推奨(公式)",
"unofficial": "コミュニティー(非公式)"
"recommended": "推奨",
"community": "コミュニティー"
}
},
"codeBox": {
Expand Down
4 changes: 2 additions & 2 deletions packages/i18n/src/locales/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,8 @@
"packageManager": "패키지 관리자",
"unknown": "알 수 없음",
"platformGroups": {
"official": "권장됨 (공식)",
"unofficial": "커뮤니티 (비공식)"
"recommended": "권장됨",
"community": "커뮤니티"
}
},
"codeBox": {
Expand Down
4 changes: 2 additions & 2 deletions packages/i18n/src/locales/pt-br.json
Original file line number Diff line number Diff line change
Expand Up @@ -231,8 +231,8 @@
"packageManager": "Gerenciador de Pacotes",
"unknown": "Desconhecido",
"platformGroups": {
"official": "Recomendado (Oficial)",
"unofficial": "Comunidade (Não Oficial)"
"recommended": "Recomendado",
"community": "Comunidade"
}
},
"codeBox": {
Expand Down
4 changes: 2 additions & 2 deletions packages/i18n/src/locales/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,8 @@
"packageManager": "Gestor de Pacote",
"unknown": "Desconhecido",
"platformGroups": {
"official": "Recomendado (Oficial)",
"unofficial": "Comunidade (Não Oficial)"
"recommended": "Recomendado",
"community": "Comunidade"
}
},
"codeBox": {
Expand Down
4 changes: 2 additions & 2 deletions packages/i18n/src/locales/ro.json
Original file line number Diff line number Diff line change
Expand Up @@ -208,8 +208,8 @@
"packageManager": "Manager de pachete",
"unknown": "Necunoscut",
"platformGroups": {
"official": "Recomandat (oficial)",
"unofficial": "Comunitate (neoficial)"
"recommended": "Recomandat",
"community": "Comunitate"
}
},
"codeBox": {
Expand Down
4 changes: 2 additions & 2 deletions packages/i18n/src/locales/ta.json
Original file line number Diff line number Diff line change
Expand Up @@ -231,8 +231,8 @@
"packageManager": "பேக்கேஜ் மேலாளர்",
"unknown": "தெரியவில்லை",
"platformGroups": {
"official": "பரிந்துரைக்கப்படும் (அதிகாரப்பூர்வமானது)",
"unofficial": "சமூகம் (அதிகாரப்பூர்வமற்றது)"
"recommended": "பரிந்துரைக்கப்படும்",
"community": "சமூகம்"
}
},
"codeBox": {
Expand Down
4 changes: 2 additions & 2 deletions packages/i18n/src/locales/uk.json
Original file line number Diff line number Diff line change
Expand Up @@ -242,8 +242,8 @@
"packageManager": "Менеджер пакетів",
"unknown": "Невідомо",
"platformGroups": {
"official": "Рекомендовані (офіційні)",
"unofficial": "Спільнотні (неофіційні)"
"recommended": "Рекомендовані",
"community": "Спільнотні"
}
},
"codeBox": {
Expand Down
4 changes: 2 additions & 2 deletions packages/i18n/src/locales/zh-cn.json
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,8 @@
"packageManager": "包管理器",
"unknown": "未知",
"platformGroups": {
"official": "推荐(官方)",
"unofficial": "社区(非官方)"
"recommended": "推荐",
"community": "社区"
}
},
"codeBox": {
Expand Down
4 changes: 2 additions & 2 deletions packages/i18n/src/locales/zh-tw.json
Original file line number Diff line number Diff line change
Expand Up @@ -157,8 +157,8 @@
"packageManager": "套件管理程式",
"unknown": "未知",
"platformGroups": {
"official": "推薦(官方)",
"unofficial": "社群(非官方)"
"recommended": "推薦",
"community": "社群"
}
},
"codeBox": {
Expand Down
Loading