Skip to content

Commit d59f6b0

Browse files
committed
fixup! doc: update V8 ABI release policy
Signed-off-by: RafaelGSS <rafael.nunu@hotmail.com>
1 parent 2b05131 commit d59f6b0

1 file changed

Lines changed: 19 additions & 14 deletions

File tree

‎doc/contributing/releases.md‎

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1379,20 +1379,25 @@ in the registry. Also include a change to the registry in your commit to
13791379
reflect the newly used value. Ensure that the release commit removes the
13801380
`-pre` suffix for the major version being prepared.
13811381

1382-
Starting with Node.js 27, V8 updates may land during the Alpha and Current
1383-
phases of a release line even if they require a `NODE_MODULE_VERSION` bump.
1384-
Such changes should still be labeled as semver-major on the default branch.
1385-
When they are promoted to the release line, they may land in semver-minor
1386-
releases as long as the ABI change is clearly documented in the release notes.
1387-
1388-
The native addon ABI is frozen when a release line enters LTS. After LTS
1389-
promotion, V8 updates that require a `NODE_MODULE_VERSION` bump are only
1390-
permitted in exceptional cases such as security fixes. They are not permitted
1391-
in Maintenance releases.
1392-
1393-
This policy applies to addons that depend on the V8, Node.js, or other
1394-
non-Node-API native interfaces. Node-API remains the recommended interface for
1395-
native addons that require ABI stability across Node.js versions.
1382+
Starting with Node.js 27, changes that break the native addon ABI and require
1383+
a `NODE_MODULE_VERSION` bump, such as V8 updates, may land during the Alpha and
1384+
Current phases of a release line. Such changes should still be labeled as
1385+
semver-major on the default branch. When they are promoted to the release line,
1386+
they may land in semver-minor releases as long as the ABI change is clearly
1387+
documented in the release notes. If the change also removes or modifies APIs
1388+
that addons use, so that addons need source changes rather than only a
1389+
rebuild, the release notes should say so.
1390+
1391+
Once a release line enters LTS, ABI-breaking changes are strongly discouraged.
1392+
They should only land when they are necessary, such as for security fixes, and
1393+
when there is no way to make the change without breaking the ABI. Changes that
1394+
are not necessary for an LTS line, such as adding fields to a struct to expose
1395+
more information in a diagnostic API, do not meet this bar. In practice, this
1396+
means V8 is not updated on a release line after it enters LTS.
1397+
1398+
This policy applies to addons that depend on V8, Node.js, or other non-Node-API
1399+
native interfaces. Node-API remains the recommended interface for native addons
1400+
that require ABI stability across Node.js versions.
13961401

13971402
### Test releases and release candidates
13981403

0 commit comments

Comments
 (0)