63 lines
2.2 KiB
Markdown
63 lines
2.2 KiB
Markdown
|
# Technical values and priorities
|
||
|
|
||
|
The project uses these technical values to establish priorities and guide
|
||
|
collaboration.
|
||
|
|
||
|
## Values and priority level
|
||
|
|
||
|
* Priority 1 - Developer experience
|
||
|
* Priority 2 - Stability
|
||
|
* Priority 3 - Operational qualities
|
||
|
* Priority 4 - Node.js maintainer experience
|
||
|
* Priority 5 - Up to date Technology and APIs
|
||
|
|
||
|
## 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 seek to keep the trust of developers and end-users. Therefore, we value
|
||
|
stability.
|
||
|
Some key elements of this include:
|
||
|
* Backwards compatibility
|
||
|
* 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
|
||
|
|
||
|
### 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
|
||
|
* Robust diagnostic tools (profilers, 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 - 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:
|
||
|
* Participating in standards work and organizations
|
||
|
* Web API compatibility
|
||
|
* Supporting and exposing new technologies and standards through early adoption
|