From 401b938c9dbf6538fb5de4aecbb9c3161d6d9547 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Wed, 28 Feb 2024 15:59:22 -0800 Subject: [PATCH 1/8] doc: add policy for distribution --- doc/contributing/distribution.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 doc/contributing/distribution.md diff --git a/doc/contributing/distribution.md b/doc/contributing/distribution.md new file mode 100644 index 00000000000000..0a5c1e33d9c746 --- /dev/null +++ b/doc/contributing/distribution.md @@ -0,0 +1,17 @@ +# Node.js Distribution Policy + +This document describes some policies around what is and is not included in the +Node.js distribution. + +## Inclusion + +Node.js includes many dependencies, such as V8, Undici and others; and comes +bundled with standalone tools such as `npm`. It is not a goal of the Node.js +project to provide a level playing field for all dependencies or bundled tools. +With limited resources, the Node.js project does not intend to bundle or +officially support multiple dependencies or tools that serve the same purpose. + +## Package managers + +The Node.js distribution will include `npm`, and will not include any other +package managers. From 29ac12fdf19e16cd812bbfbcc9060fd49aa0c15c Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Wed, 28 Feb 2024 16:15:05 -0800 Subject: [PATCH 2/8] Update doc/contributing/distribution.md Co-authored-by: Antoine du Hamel --- doc/contributing/distribution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/contributing/distribution.md b/doc/contributing/distribution.md index 0a5c1e33d9c746..f748c0da01b10b 100644 --- a/doc/contributing/distribution.md +++ b/doc/contributing/distribution.md @@ -13,5 +13,5 @@ officially support multiple dependencies or tools that serve the same purpose. ## Package managers -The Node.js distribution will include `npm`, and will not include any other +The Node.js distribution includes `npm`, and does not include any other package managers. From 63ad2501d98ef86bcf2210bf5b36f3bc3a99efa1 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Thu, 29 Feb 2024 16:16:26 -0800 Subject: [PATCH 3/8] Rewrite based on feedback --- doc/contributing/distribution.md | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/doc/contributing/distribution.md b/doc/contributing/distribution.md index f748c0da01b10b..663633b8554fc0 100644 --- a/doc/contributing/distribution.md +++ b/doc/contributing/distribution.md @@ -5,13 +5,20 @@ Node.js distribution. ## Inclusion -Node.js includes many dependencies, such as V8, Undici and others; and comes -bundled with standalone tools such as `npm`. It is not a goal of the Node.js -project to provide a level playing field for all dependencies or bundled tools. -With limited resources, the Node.js project does not intend to bundle or -officially support multiple dependencies or tools that serve the same purpose. +Node.js includes some external projects that the Node.js team does not maintain. +The fact of a project's inclusion should not imply anything about the project +relative to its competitors; in some cases, a project was added when it had no +competitors. While the Node.js team supports and encourages competition in the +JavaScript ecosystem, as a policy, the Node.js project does not include multiple +dependencies or tools that serve the same purpose. -## Package managers +The following user-accessible external projects are the ones chosen for their +particular purposes: -The Node.js distribution includes `npm`, and does not include any other -package managers. +* JavaScript engine: V8 +* Package manager: `npm` + +Being user-accessible, removal or replacement of these projects could happen +only as a semver-major change. In addition, Node.js includes external projects +as internal dependencies. These may be replaced or removed at any time, provided +that doing so is not a breaking change. From 91ecb244de977ebe4660546aa6e3c194c4820a1c Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Fri, 1 Mar 2024 10:39:56 -0800 Subject: [PATCH 4/8] Update doc/contributing/distribution.md Co-authored-by: Antoine du Hamel --- doc/contributing/distribution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/contributing/distribution.md b/doc/contributing/distribution.md index 663633b8554fc0..c8daf2d53ea911 100644 --- a/doc/contributing/distribution.md +++ b/doc/contributing/distribution.md @@ -8,7 +8,7 @@ Node.js distribution. Node.js includes some external projects that the Node.js team does not maintain. The fact of a project's inclusion should not imply anything about the project relative to its competitors; in some cases, a project was added when it had no -competitors. While the Node.js team supports and encourages competition in the +competitors. While the Node.js project supports and encourages competition in the JavaScript ecosystem, as a policy, the Node.js project does not include multiple dependencies or tools that serve the same purpose. From 4b754ea51f2698b55be92e2980b7730732dd3c82 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Fri, 1 Mar 2024 11:33:12 -0800 Subject: [PATCH 5/8] Update doc/contributing/distribution.md --- doc/contributing/distribution.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/contributing/distribution.md b/doc/contributing/distribution.md index c8daf2d53ea911..6c2153649765ad 100644 --- a/doc/contributing/distribution.md +++ b/doc/contributing/distribution.md @@ -17,6 +17,7 @@ particular purposes: * JavaScript engine: V8 * Package manager: `npm` +* Package manager version manager: Corepack Being user-accessible, removal or replacement of these projects could happen only as a semver-major change. In addition, Node.js includes external projects From 4595557da3f593871074d6eceb00a64911575ad4 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Fri, 1 Mar 2024 11:36:05 -0800 Subject: [PATCH 6/8] Update doc/contributing/distribution.md --- doc/contributing/distribution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/contributing/distribution.md b/doc/contributing/distribution.md index 6c2153649765ad..a8a2dd3fc28ded 100644 --- a/doc/contributing/distribution.md +++ b/doc/contributing/distribution.md @@ -5,7 +5,7 @@ Node.js distribution. ## Inclusion -Node.js includes some external projects that the Node.js team does not maintain. +The Node.js distribution includes some external projects that the Node.js project does not maintain. The fact of a project's inclusion should not imply anything about the project relative to its competitors; in some cases, a project was added when it had no competitors. While the Node.js project supports and encourages competition in the From 289da0ca06ee08189a38fb54e364fddd6a7de09b Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Fri, 1 Mar 2024 11:48:06 -0800 Subject: [PATCH 7/8] Lint, reduce use of "projects" --- doc/contributing/distribution.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/doc/contributing/distribution.md b/doc/contributing/distribution.md index a8a2dd3fc28ded..ec6f50f644e4f0 100644 --- a/doc/contributing/distribution.md +++ b/doc/contributing/distribution.md @@ -5,15 +5,16 @@ Node.js distribution. ## Inclusion -The Node.js distribution includes some external projects that the Node.js project does not maintain. -The fact of a project's inclusion should not imply anything about the project -relative to its competitors; in some cases, a project was added when it had no -competitors. While the Node.js project supports and encourages competition in the -JavaScript ecosystem, as a policy, the Node.js project does not include multiple -dependencies or tools that serve the same purpose. +The Node.js distribution includes some external software that the Node.js +project does not maintain. The choice to include a particular piece of software +should not imply anything about that software relative to its competitors; in +some cases, software was added when it had no competitors. While the Node.js +project supports and encourages competition in the JavaScript ecosystem, as a +policy, the Node.js project does not include multiple dependencies or tools that +serve the same purpose. -The following user-accessible external projects are the ones chosen for their -particular purposes: +The following user-accessible external tools or libraries are the ones chosen +for their particular purposes: * JavaScript engine: V8 * Package manager: `npm` From 8272fb771538ecb81b0c21293a9def1dbc67ed28 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Fri, 1 Mar 2024 14:08:13 -0800 Subject: [PATCH 8/8] Correct semverness --- doc/contributing/distribution.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/contributing/distribution.md b/doc/contributing/distribution.md index ec6f50f644e4f0..4727c03b6924e5 100644 --- a/doc/contributing/distribution.md +++ b/doc/contributing/distribution.md @@ -21,6 +21,7 @@ for their particular purposes: * Package manager version manager: Corepack Being user-accessible, removal or replacement of these projects could happen -only as a semver-major change. In addition, Node.js includes external projects -as internal dependencies. These may be replaced or removed at any time, provided +only as a semver-major change, unless the related feature or project is +documented as experimental. In addition, Node.js includes external projects as +internal dependencies. These may be replaced or removed at any time, provided that doing so is not a breaking change.