From c0cbf734dcef8758f24499f3fab83f2df7ba054f Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sun, 3 Mar 2024 09:44:55 -0800 Subject: [PATCH 1/8] doc: state that removing npm is a non-goal --- doc/contributing/technical-priorities.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/doc/contributing/technical-priorities.md b/doc/contributing/technical-priorities.md index c2576edad4d03a..e58d91fcb4cc84 100644 --- a/doc/contributing/technical-priorities.md +++ b/doc/contributing/technical-priorities.md @@ -160,3 +160,18 @@ and integration with other systems. As TypeScript usage continues to grow and gains more prominence in the ecosystem, enhancing its support is essential for delivering an improved developer experience for newcomers and experienced users alike. + +## Non-goals + +The following are not considered technical priorities for the project: + +* **Unbundling `npm`**. When `npm` was included in the Node.js distribution, it + was the only JavaScript package manager available, and it was provided as a + way to help developers easily install other JavaScript software. `npm` is also + the reference implementation for the `npm` registry, which is the de facto + primary source for most JavaScript software. Today, `npm` is one of many + high-quality options. However, the potential removal of `npm` would be a very + disruptive breaking change, even as a semver-major change, and therefore it is + not a goal of the Node.js project to work toward such a goal. The `npm` + library included with the Node.js distribution can be freely used as a + dependency of other parts of the Node.js distribution. From bb627bd9f18f3885f700c7ab5230b4d1c2aaab72 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sun, 3 Mar 2024 11:31:06 -0800 Subject: [PATCH 2/8] Update doc/contributing/technical-priorities.md Co-authored-by: Antoine du Hamel --- doc/contributing/technical-priorities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/contributing/technical-priorities.md b/doc/contributing/technical-priorities.md index e58d91fcb4cc84..efe46450a148f2 100644 --- a/doc/contributing/technical-priorities.md +++ b/doc/contributing/technical-priorities.md @@ -168,7 +168,7 @@ The following are not considered technical priorities for the project: * **Unbundling `npm`**. When `npm` was included in the Node.js distribution, it was the only JavaScript package manager available, and it was provided as a way to help developers easily install other JavaScript software. `npm` is also - the reference implementation for the `npm` registry, which is the de facto + the reference implementation for the npm registry, which is the de facto primary source for most JavaScript software. Today, `npm` is one of many high-quality options. However, the potential removal of `npm` would be a very disruptive breaking change, even as a semver-major change, and therefore it is From 4dc9e127b82ae202dfc9a69de722263d81a0e76f Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Mon, 4 Mar 2024 12:57:24 -0800 Subject: [PATCH 3/8] rewrite per feedback --- doc/contributing/technical-priorities.md | 27 ++++++++++++------------ 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/doc/contributing/technical-priorities.md b/doc/contributing/technical-priorities.md index efe46450a148f2..b7f00a92fa680e 100644 --- a/doc/contributing/technical-priorities.md +++ b/doc/contributing/technical-priorities.md @@ -161,17 +161,16 @@ As TypeScript usage continues to grow and gains more prominence in the ecosystem, enhancing its support is essential for delivering an improved developer experience for newcomers and experienced users alike. -## Non-goals - -The following are not considered technical priorities for the project: - -* **Unbundling `npm`**. When `npm` was included in the Node.js distribution, it - was the only JavaScript package manager available, and it was provided as a - way to help developers easily install other JavaScript software. `npm` is also - the reference implementation for the npm registry, which is the de facto - primary source for most JavaScript software. Today, `npm` is one of many - high-quality options. However, the potential removal of `npm` would be a very - disruptive breaking change, even as a semver-major change, and therefore it is - not a goal of the Node.js project to work toward such a goal. The `npm` - library included with the Node.js distribution can be freely used as a - dependency of other parts of the Node.js distribution. +## Package management + +The ability to easily install and manage dependencies and development tools is a +key part of the developer experience, and therefore Node.js must provide a +package manager as part of its distribution. Node.js includes npm for this +purpose. This is for historical reasons—when npm was added in 2011, it was the +only JavaScript package manager—and because it is the reference implementation +for the npm registry, which is the de facto primary source for most JavaScript +software. In accordance with our [policy][distribution-policy] of not including +multiple dependencies or tools that serve the same purpose, the Node.js project +does not include any other package managers. + +[distribution-policy]: ./distribution.md From 3d8497794d6207a54502cb956332bc0d11ec0f29 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Mon, 4 Mar 2024 13:20:59 -0800 Subject: [PATCH 4/8] Update doc/contributing/technical-priorities.md Co-authored-by: Antoine du Hamel --- doc/contributing/technical-priorities.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/contributing/technical-priorities.md b/doc/contributing/technical-priorities.md index b7f00a92fa680e..e92fbe0f0e0446 100644 --- a/doc/contributing/technical-priorities.md +++ b/doc/contributing/technical-priorities.md @@ -166,8 +166,8 @@ developer experience for newcomers and experienced users alike. The ability to easily install and manage dependencies and development tools is a key part of the developer experience, and therefore Node.js must provide a package manager as part of its distribution. Node.js includes npm for this -purpose. This is for historical reasons—when npm was added in 2011, it was the -only JavaScript package manager—and because it is the reference implementation +purpose. This is for historical reasons — when `npm` was added in 2011, it was the +only JavaScript package manager — and because it is the reference implementation for the npm registry, which is the de facto primary source for most JavaScript software. In accordance with our [policy][distribution-policy] of not including multiple dependencies or tools that serve the same purpose, the Node.js project From fa145b33eb2abc69b7fce8d97b6c6b38a537f31b Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Mon, 4 Mar 2024 13:22:11 -0800 Subject: [PATCH 5/8] Update doc/contributing/technical-priorities.md Co-authored-by: Antoine du Hamel --- doc/contributing/technical-priorities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/contributing/technical-priorities.md b/doc/contributing/technical-priorities.md index e92fbe0f0e0446..da45d2e4170239 100644 --- a/doc/contributing/technical-priorities.md +++ b/doc/contributing/technical-priorities.md @@ -164,7 +164,7 @@ developer experience for newcomers and experienced users alike. ## Package management The ability to easily install and manage dependencies and development tools is a -key part of the developer experience, and therefore Node.js must provide a +key part of the user experience, and for that reason Node.js must provide a package manager as part of its distribution. Node.js includes npm for this purpose. This is for historical reasons — when `npm` was added in 2011, it was the only JavaScript package manager — and because it is the reference implementation From a6d9acbeb1283802257fbacc43f23a45b1ceb644 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Mon, 4 Mar 2024 13:27:37 -0800 Subject: [PATCH 6/8] Update doc/contributing/technical-priorities.md Co-authored-by: Antoine du Hamel --- doc/contributing/technical-priorities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/contributing/technical-priorities.md b/doc/contributing/technical-priorities.md index da45d2e4170239..5f84b5303b8925 100644 --- a/doc/contributing/technical-priorities.md +++ b/doc/contributing/technical-priorities.md @@ -165,7 +165,7 @@ developer experience for newcomers and experienced users alike. The ability to easily install and manage dependencies and development tools is a key part of the user experience, and for that reason Node.js must provide a -package manager as part of its distribution. Node.js includes npm for this +package manager as part of its distribution. Node.js includes `npm` for this purpose. This is for historical reasons — when `npm` was added in 2011, it was the only JavaScript package manager — and because it is the reference implementation for the npm registry, which is the de facto primary source for most JavaScript From ae7d1693b4583b86ac065d6cd97011432fe42787 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Mon, 4 Mar 2024 13:36:29 -0800 Subject: [PATCH 7/8] lint --- doc/contributing/technical-priorities.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/contributing/technical-priorities.md b/doc/contributing/technical-priorities.md index 5f84b5303b8925..33fda99c9b3750 100644 --- a/doc/contributing/technical-priorities.md +++ b/doc/contributing/technical-priorities.md @@ -166,11 +166,11 @@ developer experience for newcomers and experienced users alike. The ability to easily install and manage dependencies and development tools is a key part of the user experience, and for that reason Node.js must provide a package manager as part of its distribution. Node.js includes `npm` for this -purpose. This is for historical reasons — when `npm` was added in 2011, it was the -only JavaScript package manager — and because it is the reference implementation -for the npm registry, which is the de facto primary source for most JavaScript -software. In accordance with our [policy][distribution-policy] of not including -multiple dependencies or tools that serve the same purpose, the Node.js project -does not include any other package managers. +purpose. This is for historical reasons — when `npm` was added in 2011, it was +the only JavaScript package manager — and because it is the reference +implementation for the npm registry, which is the de facto primary source for +most JavaScript software. In accordance with our [policy][distribution-policy] +of not including multiple dependencies or tools that serve the same purpose, the +Node.js project does not include any other package managers. [distribution-policy]: ./distribution.md From 07ff4a5120b0f0df871589245e9d462c4639d673 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Mon, 4 Mar 2024 14:04:56 -0800 Subject: [PATCH 8/8] Update doc/contributing/technical-priorities.md --- doc/contributing/technical-priorities.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/contributing/technical-priorities.md b/doc/contributing/technical-priorities.md index 33fda99c9b3750..a11ae0e556987f 100644 --- a/doc/contributing/technical-priorities.md +++ b/doc/contributing/technical-priorities.md @@ -171,6 +171,7 @@ the only JavaScript package manager — and because it is the reference implementation for the npm registry, which is the de facto primary source for most JavaScript software. In accordance with our [policy][distribution-policy] of not including multiple dependencies or tools that serve the same purpose, the -Node.js project does not include any other package managers. +Node.js project does not include any other package managers; though it may +include other software to download other package managers. [distribution-policy]: ./distribution.md