From 90b77ca6ecec806b2bea6f466161786ce2168342 Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Thu, 10 Sep 2020 11:19:44 -0400 Subject: [PATCH 1/8] doc: add technical values document As part of the [next-10](https://github.com/nodejs/next-10) we found we needed to capture the project's technical values/priorities as a starting point before discussing key technologies/areas for the next 10 years of Node.js This is a first cut that the team put together. The discussion took place in a few meetings as well as this [PR](https://github.com/nodejs/next-10/pull/11). We believe the doc should live in the core node repository as it is intended to reflect the agreement of the collaborator base. I think this is a good starting point but we also acknowledge that only a small subset of the Node.js collaborators have participated/commented so far. This PR should be a good way to get additional review/input from the larger set of Node.js collaborators. Signed-off-by: Michael Dawson --- README.md | 2 + TECHNICAL_VALUES_AND_PRIORITIZATION.md | 66 ++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 TECHNICAL_VALUES_AND_PRIORITIZATION.md diff --git a/README.md b/README.md index 0d2d047ebac29b..90c4a8c465261d 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,7 @@ For information on reporting security vulnerabilities in Node.js, see * [Contributing to the project][] * [Working Groups][] * [Strategic Initiatives][] +* [Technical values and prioritization][] ## Current Project Team Members @@ -635,3 +636,4 @@ Other keys used to sign some previous releases: [OpenJS Foundation]: https://openjsf.org/ [Working Groups]: https://github.com/nodejs/TSC/blob/master/WORKING_GROUPS.md [Strategic Initiatives]: https://github.com/nodejs/TSC/blob/master/Strategic-Initiatives.md +[Technical values and prioritization]: TECHNICAL_VALUES_AND_PRIORITIZATION.md diff --git a/TECHNICAL_VALUES_AND_PRIORITIZATION.md b/TECHNICAL_VALUES_AND_PRIORITIZATION.md new file mode 100644 index 00000000000000..746f03e0bd8b72 --- /dev/null +++ b/TECHNICAL_VALUES_AND_PRIORITIZATION.md @@ -0,0 +1,66 @@ +# Technical values and priorities + +The project uses these technical values to establish priorities and guide +collaboration. + +## Values and priority level + +This is only a subset of the overall priorities, listing only +those which are at the top of the priority list. Anything on this +list is very important for the project despite the relative priorities shown. + +* Priority 1 - Developer experience +* Priority 2 - Stability +* Priority 3 - Operational qualities +* Priority 4 - Node.js maintainer experience +* Priority 5 - Technology and API currency + +## Value descriptions + +### 1 - Developer experience +We value ensuring that developers are productive and enjoy developing +with Node.js. Some key elements of this include: +* Approachability (both technical and community) +* Great documentation +* Bundling friction-reducing APIs and components, even though + they could be provided externally +* Enabling/supporting external packages to ensure overall developer experience + +### 2 - Stability +Whenever possible, we seek to insure that currently-working code continues to +work. We want to earn the trust of developers and end-users. Therefore, we value +stability. +Some key elements of this include: +* Backwards compatibility +* Predictable and stable releases +* A strong safety net, including testing how changes + in Node.js affect popular packages +* Careful consideration of what goes into long term support (LTS) releases + +### 3 - Operational qualities +We value keeping Node.js safe, performant, and lightweight. +We value enabling the ability to investigate and debug problems in +development and production. Some key elements of this include: +* High throughput (speed) +* Fast startup +* Small binary size +* Small memory footprint +* High-quality debugging tools +* Diagnostic tooling (profilers, heapdumps, coredumps, etc.) +* Responsible security practices + +### 4 - Node.js maintainer experience +We value the productivity and happiness of the Node.js maintainers. +Some key elements of this include: +* Approachability of the codebase +* Good internal documentation and guides +* Low-friction policies and processes +* Good CI and tooling to make maintainers productive + +### 5 - Technology and API currency +We value providing developers with modern APIs and technologies +following existing standards whenever possible. +Some key elements of this include: +* Participating in standards work and organizations +* Web API compatibility +* Supporting and exposing new technologies and standards through early adoption From f92d1bd9c85592fde320591befe72b7ef7dc7bb5 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Sun, 13 Sep 2020 06:19:19 -0700 Subject: [PATCH 2/8] fixup! doc: add technical values document --- README.md | 4 ++-- .../guides/technical-values.md | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename TECHNICAL_VALUES_AND_PRIORITIZATION.md => doc/guides/technical-values.md (100%) diff --git a/README.md b/README.md index 90c4a8c465261d..ecacab8921ceba 100644 --- a/README.md +++ b/README.md @@ -634,6 +634,6 @@ Other keys used to sign some previous releases: [Contributing to the project]: CONTRIBUTING.md [Node.js Website]: https://nodejs.org/ [OpenJS Foundation]: https://openjsf.org/ -[Working Groups]: https://github.com/nodejs/TSC/blob/master/WORKING_GROUPS.md [Strategic Initiatives]: https://github.com/nodejs/TSC/blob/master/Strategic-Initiatives.md -[Technical values and prioritization]: TECHNICAL_VALUES_AND_PRIORITIZATION.md +[Technical values and prioritization]: doc/guides/technical-values.md +[Working Groups]: https://github.com/nodejs/TSC/blob/master/WORKING_GROUPS.md diff --git a/TECHNICAL_VALUES_AND_PRIORITIZATION.md b/doc/guides/technical-values.md similarity index 100% rename from TECHNICAL_VALUES_AND_PRIORITIZATION.md rename to doc/guides/technical-values.md From d52db1de4d2f08e7a6c567a6e563a84378170a23 Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Mon, 14 Sep 2020 17:42:01 -0400 Subject: [PATCH 3/8] Update doc/guides/technical-values.md Co-authored-by: Rich Trott --- doc/guides/technical-values.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guides/technical-values.md b/doc/guides/technical-values.md index 746f03e0bd8b72..4d9757104bd2cc 100644 --- a/doc/guides/technical-values.md +++ b/doc/guides/technical-values.md @@ -46,7 +46,7 @@ development and production. Some key elements of this include: * Small binary size * Small memory footprint * High-quality debugging tools -* Diagnostic tooling (profilers, heapdumps, coredumps, etc.) +* Robust diagnostic tools (profilers, etc.) * Responsible security practices ### 4 - Node.js maintainer experience From e27b301b91531e3f6a990da11c77a46113cef1f2 Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Mon, 14 Sep 2020 17:42:18 -0400 Subject: [PATCH 4/8] Update doc/guides/technical-values.md Co-authored-by: Rich Trott --- doc/guides/technical-values.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guides/technical-values.md b/doc/guides/technical-values.md index 4d9757104bd2cc..3ca199f21f20bf 100644 --- a/doc/guides/technical-values.md +++ b/doc/guides/technical-values.md @@ -28,7 +28,7 @@ with Node.js. Some key elements of this include: ### 2 - Stability Whenever possible, we seek to insure that currently-working code continues to -work. We want to earn the trust of developers and end-users. Therefore, we value +work. We seek to keep the trust of developers and end-users. Therefore, we value stability. Some key elements of this include: * Backwards compatibility From b1c87decc208c17ef4dc7359700d3f9e113071fb Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Mon, 14 Sep 2020 17:45:54 -0400 Subject: [PATCH 5/8] Update doc/guides/technical-values.md Co-authored-by: Rich Trott --- doc/guides/technical-values.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/doc/guides/technical-values.md b/doc/guides/technical-values.md index 3ca199f21f20bf..24be75804e2bd6 100644 --- a/doc/guides/technical-values.md +++ b/doc/guides/technical-values.md @@ -5,10 +5,6 @@ collaboration. ## Values and priority level -This is only a subset of the overall priorities, listing only -those which are at the top of the priority list. Anything on this -list is very important for the project despite the relative priorities shown. - * Priority 1 - Developer experience * Priority 2 - Stability * Priority 3 - Operational qualities From ac3fef800d06f7022f7a38be24d788a2e812bc4f Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Mon, 14 Sep 2020 17:48:29 -0400 Subject: [PATCH 6/8] squash: address comments --- doc/guides/technical-values.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guides/technical-values.md b/doc/guides/technical-values.md index 24be75804e2bd6..e9df3fa861a952 100644 --- a/doc/guides/technical-values.md +++ b/doc/guides/technical-values.md @@ -28,7 +28,7 @@ work. We seek to keep the trust of developers and end-users. Therefore, we value stability. Some key elements of this include: * Backwards compatibility -* Predictable and stable releases +* Stable releases on a predictable schedule * A strong safety net, including testing how changes in Node.js affect popular packages * Careful consideration of what goes into long term support (LTS) releases From 3bc57462b34f364e36f7dd108ed868f4d1dcfa7d Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Thu, 17 Sep 2020 13:17:23 -0400 Subject: [PATCH 7/8] Update doc/guides/technical-values.md --- doc/guides/technical-values.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guides/technical-values.md b/doc/guides/technical-values.md index e9df3fa861a952..0faa464d0042ab 100644 --- a/doc/guides/technical-values.md +++ b/doc/guides/technical-values.md @@ -9,7 +9,7 @@ collaboration. * Priority 2 - Stability * Priority 3 - Operational qualities * Priority 4 - Node.js maintainer experience -* Priority 5 - Technology and API currency +* Priority 5 - Up to date Technology and APIs ## Value descriptions From 5cdf202f584ad7aa66818d1cb8881cd0f785ef9a Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Thu, 17 Sep 2020 13:17:53 -0400 Subject: [PATCH 8/8] Update doc/guides/technical-values.md --- doc/guides/technical-values.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guides/technical-values.md b/doc/guides/technical-values.md index 0faa464d0042ab..b912f7610b8471 100644 --- a/doc/guides/technical-values.md +++ b/doc/guides/technical-values.md @@ -53,7 +53,7 @@ Some key elements of this include: * Low-friction policies and processes * Good CI and tooling to make maintainers productive -### 5 - Technology and API currency +### 5 - Up to date Technology and APIs We value providing developers with modern APIs and technologies following existing standards whenever possible. Some key elements of this include: