Bethany Griggs, Node.js Technical Steering Committee member, and Senior Software Engineer at Red Hat, describes in detail how new and experimental features are added to the Node.js project.
Griggs starts the talk with an introduction to Node.js, a highly decentralized open-source project, with no forward roadmap and a heavy activity flow in multiple directions. New features are added to the project based on the interests and requirements of the contributors. She introduces the Working Groups and Teams focused on different areas of the project and the Strategic Initiatives which help smooth operations of the project.
Next, Griggs discusses the project delivery schedule for Node.js. There are two major releases per year with even number releases being promoted to Long-Term Support (LTS). She mentions that each release has three defined release phases. During the Current phase, the release line picks up the non-major changes that land on the Node.js main branch. The Active phase incorporates only the new features, fixes, and updates that have been audited and approved by the LTS team. Only critical bug fixes are part of the Maintenance phase and new features are rarely added in this phase.
In the second half, Griggs introduces a Stability Index, ranging from 0 to 3, which allows users to decide on features to use in their applications. She discusses each index in detail with examples for each of these APIs.
Griggs explains that Stability Index 0 indicates a Deprecated API which may be removed in the future versions of Node.js. An API is first Documentation Deprecated and then elevated to a Run-time Deprecation. Stability Index 3 is for Legacy APIs, which are discouraged from being used in new applications. She assures users that Legacy APIs will not be removed by the project, so applications using these APIs will not be affected.
Experimental APIs have a Stability Index of 1 and may change even in the long-term support phase. She warns that users must use them cautiously in production workloads. She further explains that experimental APIs are ones that do not have an agreed-upon design and are later modified based on user feedback. Stability Index 2 is reserved for Stable APIs for which Semantic Versioning applies and compatibility is a priority. Experimental features only get promoted to stable when the main contributors have confidence in the API and no major changes are likely. She then introduces some new stable features of the project.
In her concluding remarks, Griggs encourages users to look at and provide feedback on the experimental features of the project, which helps the project in speeding up the process of promoting experimental features to stable features. She also warns against the use of experimental APIs in critical applications.
Broken down by section:
Panel Introduction 0:00
Introduction to OpenJS Foundation 1:09
What’s next? 3:07
Working Groups and Teams 4:10
Strategic Initiatives 5:06
Deprecated APIs 12:14
Legacy APIs 15:12
Experimental APIs 16:47
Stable APIs 25:31