1. May 18, 2021
  2. May 17, 2021
  3. May 16, 2021
  4. May 15, 2021
  5. May 14, 2021
  6. May 13, 2021
  7. May 12, 2021
    • Voltrex's avatar
      path: inline conditions · 89f592cc
      Voltrex authored
      This condition can be inlined in the first `if` statement since
      if the `path`'s length is 0, it'll be a empty string so we can
      return that as there's no need for an extra `if` statement.
      
      PR-URL: https://github.com/nodejs/node/pull/38613
      
      
      Reviewed-By: default avatarJames M Snell <jasnell@gmail.com>
      Reviewed-By: default avatarMichaël Zasso <targos@protonmail.com>
      Reviewed-By: default avatarRichard Lau <rlau@redhat.com>
      Reviewed-By: default avatarDarshan Sen <raisinten@gmail.com>
      Reviewed-By: default avatarLuigi Pinca <luigipinca@gmail.com>
      Reviewed-By: default avatarColin Ihrig <cjihrig@gmail.com>
      Reviewed-By: default avatarRich Trott <rtrott@gmail.com>
      89f592cc
    • Richard Lau's avatar
      build: add workaround for V8 builds · d206aa36
      Richard Lau authored
      V8's build toolchain is not compatible with Python 3 and the CI job
      that tests V8 needs to be run with Python 2. Add a fallback to
      `find_executable` from `distutils.spawn` to allow the configure
      script to run in the V8 test job.
      
      PR-URL: https://github.com/nodejs/node/pull/38632
      
      
      Reviewed-By: default avatarMichaël Zasso <targos@protonmail.com>
      Reviewed-By: default avatarDarshan Sen <raisinten@gmail.com>
      Reviewed-By: default avatarJames M Snell <jasnell@gmail.com>
      Reviewed-By: default avatarRich Trott <rtrott@gmail.com>
      d206aa36
    • Danielle Adams's avatar
      2021-05-11, Version 14.17.0 'Fermium' (LTS) · 16e00a15
      Danielle Adams authored
      Notable Changes:
      
      Diagnostics channel (experimental module):
      
      `diagnostics_channel` is a new experimental module that provides an API
      to create named channels to report arbitrary message data for
      diagnostics purposes.
      
      The module was initially introduced in Node.js v15.1.0 and is
      backported to v14.17.0 to enable testing it at a larger scale.
      
      With `diagnostics_channel`, Node.js core and module authors can publish
      contextual data about what they are doing at a given time. This could
      be the hostname and query string of a mysql query, for example. Just
      create a named channel with `dc.channel(name)` and call
      `channel.publish(data)` to send the data to any listeners to that
      channel.
      
      ```js
      const dc = require('diagnostics_channel');
      const channel = dc.channel('mysql.query');
      
      MySQL.prototype.query = function query(queryString, values, callback) {
        // Broadcast query information whenever a query is made
        channel.publish({
          query: queryString,
          host: this.hostname,
        });
      
        this.doQuery(queryString, values, callback);
      };
      ```
      
      Channels are like one big global event emitter but are split into
      separate objects to ensure they get the best performance. If nothing is
      listening to the channel, the publishing overhead should be as close to
      zero as possible. Consuming channel data is as easy as using
      `channel.subscribe(listener)` to run a function whenever a message is
      published to that channel.
      
      ```js
      const dc = require('diagnostics_channel');
      const channel = dc.channel('mysql.query');
      
      channel.subscribe(({ query, host }) => {
        console.log(`mysql query to ${host}: ${query}`);
      });
      ```
      
      The data captured can be used to provide context for what an app is
      doing at a given time. This can be used for things like augmenting
      tracing data, tracking network and filesystem activity, logging
      queries, and many other things. It's also a very useful data source
      for diagnostics tools to provide a clearer picture of exactly what the
      application is doing at a given point in the data they are presenting.
      
      Contributed by Stephen Belanger (https://github.com/nodejs/node/pull/34895).
      
      UUID support in the crypto module:
      
      The new `crypto.randomUUID()` method now allows to generate random
      [RFC 4122](https://www.rfc-editor.org/rfc/rfc4122.txt) Version 4
      UUID strings:
      
      ```js
      const { randomUUID } = require('crypto');
      
      console.log(randomUUID());
      // 'aa7c91a1-f8fc-4339-b9db-f93fc7233429'
      ```
      
      Contributed by James M Snell (https://github.com/nodejs/node/pull/36729).
      
      Experimental support for `AbortController` and `AbortSignal`:
      
      Node.js 14.17.0 adds experimental partial support for `AbortController`
      and `AbortSignal`.
      
      Both constructors can be enabled globally using the
      `--experimental-abortcontroller` flag.
      
      Additionally, several Node.js APIs have been updated to support
      `AbortSignal` for cancellation.
      It is not mandatory to use the built-in constructors with them. Any
      spec-compliant third-party alternatives should be compatible.
      
      `AbortSignal` support was added to the following methods:
      
      * `child_process.exec`
      * `child_process.execFile`
      * `child_process.fork`
      * `child_process.spawn`
      * `dgram.createSocket`
      * `events.on`
      * `events.once`
      * `fs.readFile`
      * `fs.watch`
      * `fs.writeFile`
      * `http.request`
      * `https.request`
      * `http2Session.request`
      * The promisified variants of `setImmediate` and `setTimeout`
      
      Other notable changes:
      
      * doc:
        * revoke deprecation of legacy url, change status to legacy (James M Snell) (https://github.com/nodejs/node/pull/37784)
        * add legacy status to stability index (James M Snell) (https://github.com/nodejs/node/pull/37784)
        * upgrade stability status of report API (Gireesh Punathil) (https://github.com/nodejs/node/pull/35654)
      * deps:
        * V8: Backport various patches for Apple Silicon support (BoHong Li) (https://github.com/nodejs/node/pull/38051)
        * update ICU to 68.1 (Michaël Zasso) (https://github.com/nodejs/node/pull/36187)
        * upgrade to libuv 1.41.0 (Colin Ihrig) (https://github.com/nodejs/node/pull/37360)
      * http:
        * add http.ClientRequest.getRawHeaderNames() (simov) (https://github.com/nodejs/node/pull/37660)
        * report request start and end with diagnostics\_channel (Stephen Belanger) (https://github.com/nodejs/node/pull/34895)
      * util:
        * add getSystemErrorMap() impl (eladkeyshawn) (https://github.com/nodejs/node/pull/38101)
      
      PR-URL: https://github.com/nodejs/node/pull/38507
      16e00a15
  8. May 11, 2021
  9. May 10, 2021
  10. May 09, 2021
  11. May 08, 2021