v14.13.0 proposal by MylesBorins · Pull Request #35419 · nodejs/node

@MylesBorins

Listing all the steps can be confusing an make it seem like
the releaser is meant to run each of these steps manually. In fact
I personally did that my first release.

Let's put those steps in a details block to make it more obvious
that it is informational and not steps to follow

PR-URL: #35260
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Ruy Adorno <ruyadorno@github.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michaël Zasso <targos@protonmail.com>

@panva @MylesBorins

PR-URL: #35246
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>

@ctavan @MylesBorins

The node process crashes when trying to parse a multiline import
statement for named exports of a CommonJS module:

    TypeError: Cannot read property '0' of null
          at ModuleJob._instantiate (internal/modules/esm/module_job.js:112:77)
          at async ModuleJob.run (internal/modules/esm/module_job.js:137:5)
          at async Loader.import (internal/modules/esm/loader.js:165:24)
          at async rejects.name (file:///***/node/test/es-module/test-esm-cjs-named-error.mjs:56:3)
          at async waitForActual (assert.js:721:5)
          at async rejects (assert.js:830:25),

The reason is that the regexp that is currently used to decorate the
original error fails for multi line import statements.

Unfortunately the undecorated error stack only contains the single line
which causes the import to fail:

    file:///***/node/test/fixtures/es-modules/package-cjs-named-error/multi-line.mjs:2
      comeOn,
      ^^^^^^
    SyntaxError: The requested module './fail.cjs' does not provide an export named 'comeOn'
        at ModuleJob._instantiate (internal/modules/esm/module_job.js:98:21)
        at async ModuleJob.run (internal/modules/esm/module_job.js:141:5)
        at async Loader.import (internal/modules/esm/loader.js:165:24)
        at async rejects.name (file:///***/node/test/es-module/test-esm-cjs-named-error.mjs:56:3)
        at async waitForActual (assert.js:721:5)
        at async rejects (assert.js:830:25)

Hence, for multiline import statements we cannot create an equivalent
piece of code that uses default import followed by an object
destructuring assignment.

In any case the node process should definitely not crash. So until we
have a more sophisticated way of extracting the entire problematic
multiline import statement, show the code example only for single-line
imports where the current regexp approach works well.

Refs: #35259

PR-URL: #35275
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>

@aduh95 @MylesBorins

PR-URL: #35244
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Shelley Vohr <codebytere@gmail.com>

@aduh95 @MylesBorins

PR-URL: #35244
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Shelley Vohr <codebytere@gmail.com>

@clarkkozak @MylesBorins

+ description of `socket.readyState`

Note: YAML tag found in commit e697cfb

Co-authored-by: Michael Auderer <mike@silverstone.io>

PR-URL: #35262
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>

@tlhunter @MylesBorins

Fixing a heading rendering bug

PR-URL: #35310
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>

@MylesBorins

We checkout build as a subdirectory as part of CI and
if you run `make test` instead of `make test-ci` you get
loads of errors about markdown link breaks. Ignore this
directory as we don't need to examine another repo

PR-URL: #35315
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>

@Trott @MylesBorins

PR-URL: #35276
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>

@Trott @MylesBorins

PR-URL: #35283
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>

@MylesBorins

During testing, and interfacing with child_processes, I found that the
child_process.signalCode property to be the string representation of
the signal, not number.

PR-URL: #35223
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Rich Trott <rtrott@gmail.com>

@aduh95 @MylesBorins

This part of the docs aims to contain documentation regarding package
configuration that covers both ESM and CJS realms.

* Move Enabling section
* Update Enabling section
* Remove -u flag
* Package scopes do not carry through `node_modules` folders

Refs: nodejs/modules#539

Co-authored-by: Geoffrey Booth <webmaster@geoffreybooth.com>>
Co-authored-by: Guy Bedford <guybedford@gmail.com>

PR-URL: #34748
Reviewed-By: Derek Lewis <DerekNonGeneric@inf.is>
Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com>
Reviewed-By: Guy Bedford <guybedford@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Ruy Adorno <ruyadorno@github.com>

@aduh95 @MylesBorins

PR-URL: #34932
Reviewed-By: Mary Marchini <oss@mmarchini.me>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Derek Lewis <DerekNonGeneric@inf.is>
Reviewed-By: Myles Borins <myles.borins@gmail.com>

@aduh95 @MylesBorins

Fixes: #33143

PR-URL: #34970
Reviewed-By: Guy Bedford <guybedford@gmail.com>
Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>

@guybedford @MylesBorins

PR-URL: #34718
Reviewed-By: Jan Krems <jan.krems@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>

@Trott @MylesBorins

* Use parallel construction in the two sentences
* Backticks around _package.json_ to match rest of file
* Add comma for readability
* Own the recommendation ("we recommend")

PR-URL: #35254
Reviewed-By: Jan Krems <jan.krems@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Guy Bedford <guybedford@gmail.com>

@addaleax @MylesBorins

Refs: #35320 (comment)

PR-URL: #35328
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>

@Trott @MylesBorins

Showing all the steps isn't usually useful and makes it seem like the
collaborator is meant to follow the manual steps. I've seen this happen
during at least one onboarding. The section is also a bit long to
comfortably scroll over quickly to find the next section.

Let's put those steps in a details block to make it more obvious that it
is there for unusual situations only.

Co-authored-by: Shelley Vohr <codebytere@gmail.com>

PR-URL: #35296
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>

@Flarna @MylesBorins

Calling napi_make_callback() with no async_context is not resulting in
using the current async context instead an empty context (id 0) is
used.

Using NULL is like using node::Makecallback without async_context which
is deprecated since Node.js 10 (DEP0099).

PR-URL: #35321
Fixes: #35188
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gabriel Schulhof <gabriel.schulhof@intel.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>

@tniessen @MylesBorins

The size of arrays is measured in bytes in C, not in the number of
elements. The napi_get_cb_info function takes the length of the
array, that is, the number of elements it can contain, and not its size.

PR-URL: #35300
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Gabriel Schulhof <gabriel.schulhof@intel.com>

@MylesBorins

Mention null termination handling in the string size accounting and
string truncation.

PR-URL: #35322
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michael Dawson <midawson@redhat.com>

@guybedford @MylesBorins

PR-URL: #35311
Reviewed-By: Jan Krems <jan.krems@gmail.com>

@codebytere @MylesBorins

PR-URL: #35324
Refs: https://github.com/c-ares/c-ares/releases/tag/cares-1_16_1
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>

@addaleax @MylesBorins

`AddLinkedBinding()` can be used to load old-style Node.js addons, but
currently not N-API addons. There’s no good reason not to support
N-API addons as well, so add that.

PR-URL: #35301
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Zeyu Yang <himself65@outlook.com>

@korniltsev @MylesBorins

Pass SA_SIGINFO to sa_flags so the TrapWebAssemblyOrContinue is treated
as sa_sigaction, not sa_handler, otherwise siginfo_t* info contains
some garbage

PR-URL: #35282
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Minwoo Jung <nodecorelab@gmail.com>

@Trott @MylesBorins

Prior to this change, none of the child_process tests checked the
signalCode property for a value other than null. Add a check to an
existing test.

PR-URL: #35327
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>

@NickNaso @MylesBorins

Node.js version 14.12.0 released the N-API version 7, but it's not
present on the N-API version matrix. This change  should fix the problem
in the documentation.

PR-URL: #35319
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>

@danielleadams @MylesBorins

Adds an extra step with instructions for exporting a gpg key to be
uploaded to the key server.

PR-URL: #35298
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>

@cjihrig @MylesBorins

Notable changes:

- The UV_UDP_MMSG_FREE flag has been added.
- UV__EPROTO has been remapped from 4046 to -4046 for
  consistency with other error codes.
- On Windows, UTF-16 surrogate pairs are no longer
  replaced with the Unicode replacement character.
- uv_timer_get_due_in() has been added.

PR-URL: #35333
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>

@PoojaDurgad @MylesBorins

PR-URL: #34921
Reviewed-By: Harshitha K P <harshitha014@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>