Skip to content

Latest commit

 

History

History
174 lines (126 loc) · 6.18 KB

CONSTITUENCY-NEEDS.md

File metadata and controls

174 lines (126 loc) · 6.18 KB

Needs of the Node.js Constituencies

Need Users Ops AppDev LibDev Orgs NodeMaint
Good understanding of the direction of the project X X X X X X
Ability to affect the direction of the project X X X X X X
Consumable APIs and docs X X X X
Predictable and stable releases X X X X X
Innovation at a consumable pace X X X X X
Easy Installation X
Easy issue reporting, resolution and collaboration X X X X X
Broad deployment platform support X X X
Broad desktop platform support X X X X
Consistent and intuitive error handling X X X X
Runtime diagnostic tooling X X
Development time diagnostic tooling X X
Relevant APIs in core X X
Module/dependency info and management X X X X
Ways to fund their work X X
Ability to assess impact of changes they make X X
Reasonable resource usage/performance X X X X X
Good security and CVE practices in the project X X X X X
Better CVE management in the ecosystem X X X X X
Good CI infrastructure and experience in the project X
Supportive Collaborators and Environment in the project X
Better ways to build consensus in the project X
Easy contribution workflow X X
Ability to embed and bundle the Node.js runtime X
A well maintained and secure standard library X X X
Assets that show Node.js is a good choice X X X X

Good understanding of the direction of the project

  • An understanding of the work happening in the Node.js project (what features do I have to look forward to, what's the project direction). Changes between releases. Info on how new changes affect end users/developers
  • Confidence in the health of the project upkeep and leadership
  • Confidence that the project is well run and will continue being maintained/successful

Ability to affect the direction of the project

  • The ability to discover when important decisions are being made by the project.
  • A seat at the table when important decisions are being made.
  • Ability to advocate for work (bug fixes and features) that unblocks customers
  • A level playing field so that they have equal opportunity to contribute as other people and/or organizations

Consumable APIs and docs

  • APIs and Docs which are up to date and simple to understand and use
  • Example code for one or more use cases of the APIs

Predictable and stable releases

  • Predictable release schedule to be able to plan upgrades
  • Compatibility and stability when possible across releases to minimize upgrade work
  • Stability across runtime versions

Innovation at a consumable pace

  • Right balance between "move fast" and stability
  • Stability while still trying out new things
  • Advance notice and time to prepare for deprecations

Easy Installation

  • Ability to easily install/consume Node.js in different environments
    • raw OS, containers, cloud platforms, etc.
  • Ability to easily manage/install different versions of Node.js in the same environment and to switch between different versions.

Easy issue reporting, resolution and collaboration

  • A good path to report issues to the project, and the ability to collaborate/contribute to the project to get them addressed
  • A clear understanding of how to interact with the Node.js project

Broad deployment platform support

  • Broad platform support for deployment OS and processor architectures

Broad desktop platform support

  • Platform support that covers key desktop OS (Windows, Linux and macOS)

Consistent and intuitive error handling

  • Error handling:
    • Traceability through tooling
    • Full async stack traces
    • System state reporting
    • etc.

Runtime diagnostic tooling

  • Diagnostics Tools
  • Diagnostic signals
  • Monitoring tools
  • Observability

Development time diagnostic tooling

  • Debuggability
  • Instrumentability

Relevant APIs in core

  • APIs in key areas across the different types of applications, CLI, web, cloud native, etc.
  • APIs which are complete enough that they can be used without additional dependencies

Module/dependency info and management

  • Information and easy ways to gather information about modules they depend on.
  • Improved functionality and tooling for managing installation of modules/dependencies.

Ways to fund their work

  • Channels through which they can fund their work

Ability to asses impact of changes they make

  • Tools to evaluate impact of updates they make on other packages/applications

Reasonable resource usage/performance

  • Resonable resource usage (cpu, memory etc.)
  • Performance

Good security and CVE practices in the project

  • Good management, reporting and updates for security issues
  • Good process/handling of CVE's by the project

Better CVE management in the ecosystem

  • Better ways to deal with reported vulnerabilties
  • Better systems of keeping track of dependencies (updates, vulnerabilities and their relevancy, etc)

Good CI infrastructure and experience in the project

  • Good user experience with CI
  • Easier ways for collaborators to add/modify CI jobs
  • Make it easier for collaborators to understand failures in the CI
  • Reasonable build time

Supportive collaborators and environment in the project

  • More internals guides
  • Sympathetic collaborators

Better ways to build consensus in the project

  • Better ways to build consensus for what new features/APIs should be added to Node.js
  • Easier ways to resolve disagreements
  • Ability to push changes without burning out

Easy contribution workflow

  • More contribution workflow automation

Ability to embed and bundle the Node.js runtime

  • APIs for being able to embed the Node.js runtime in another process/program
  • The ability to bundle Node.js and additional components into a single binary

A well maintained and secure standard library

  • An additional set of libraries that provide an API surface that is commonly needed and while not part of core come with the same level of maintenance, security and trust as the core runtime.

Assets that show Node.js is a good choice

  • Assets to help demonstrate Node.js is a good choice and that an organization should invest in using and supporting it.
  • Assets to help champions within an orgazation advocate for investing in the Node.js project.