profile
viewpoint
Michaël Zasso targos Zakodium Sàrl Switzerland

mcollina/make-promises-safe 454

A node.js module to make the use of promises safe

Slynova-Org/flydrive 183

☁️ Flexible and Fluent framework-agnostic driver based system to manage storage in Node.js

ES-Community/nsecure 72

Node.js security CLI / API that allow you to deeply analyze the dependency tree of a given package / directory

mcollina/stream-iterators-utils 28

Utility belt for using async iterators with streams

NPellet/jsGraph 23

Dynamic graphing library

nodejs/v8 18

The official mirror of the V8 git repository

ES-Community/ndbg 7

Node.js CLI debugging tools

ES-Community/ex-luminous 3

Ex-luminous Game - Created for Ludum Dare 45

issue closednodejs/node

Update npm version shipped with Node 12

Node 12 shipped with npm 6.14.4, but this npm version have bug. Users ask update npm version shipped with Node 12.

What is the expected behavior?

npm version 6.14.5 shipped with Node 12

What do you see instead?

npm version 6.14.4 shipped with Node 12

closed time in 2 hours

burashka

issue commentnodejs/node

Promise-friendly stream.pipeline and stream.finished

I added stream.finished to the title :)

targos

comment created time in 2 hours

issue commentnodejs/node

Promise-friendly stream.pipeline

When you do that, do you need to access the returned stream as well or is a Promise that gets settled when the callback version currently does?

I've personally never used the return value, but it doesn't mean we shouldn't expose it somehow

targos

comment created time in 2 hours

pull request commentnodejs/node

deps: update V8 to 8.4

If we just drop VS2017, we won't be able to do this V8 update on Node 14.

targos

comment created time in 2 hours

issue commentnodejs/node

New label suggestion: `awaiting release`

Btw I'm not really fond of the idea if it cannot be automated. We already don't use manual labels correctly enough (for example, semver-minor is often forgotten).

mmarchini

comment created time in 2 hours

issue commentnodejs/node

New label suggestion: `awaiting release`

I prefer to close issues as soon as they are fixed on master (or the staging branch if they only apply to a specific release line).

What about something like fixed-in-vx.y labels to support multiple release lines?

mmarchini

comment created time in 2 hours

issue closednodejs/node-v8

Compiler error with VS2017

https://ci.nodejs.org/job/node-compile-windows/33891/nodes=win-vs2017/console

09:52:37 c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\type_traits(616): error C2139: 'v8::internal::JSAggregateError': an undefined class is not allowed as an argument to compiler intrinsic type trait '__is_convertible_to' [C:\workspace\node-compile-windows\node\tools\v8_gypfiles\v8_initializers.vcxproj]
09:52:37   c:\workspace\node-compile-windows\node\out\release\obj\global_intermediate\torque-output-root\torque-generated\internal-class-definitions-tq.h(109): note: see declaration of 'v8::internal::JSAggregateError'
09:52:37   c:\workspace\node-compile-windows\node\deps\v8\src\codegen\tnode.h(262): note: see reference to class template instantiation 'std::is_convertible<T,v8::internal::Object>' being compiled
09:52:37           with
09:52:37           [
09:52:37               T=v8::internal::JSAggregateError
09:52:37           ]
09:52:37   c:\workspace\node-compile-windows\node\out\release\obj\global_intermediate\torque-output-root\torque-generated\exported-macros-assembler-tq.cc(1418): note: see reference to class template instantiation 'v8::internal::is_subtype<v8::internal::JSAggregateError,v8::internal::JSAggregateError>' being compiled
09:52:37   c:\workspace\node-compile-windows\node\deps\v8\src\codegen\x64\register-x64.h(153): note: see reference to class template instantiation 'v8::internal::RegisterBase<v8::internal::XMMRegister,16>' being compiled
09:52:37   c:\workspace\node-compile-windows\node\deps\v8\src\codegen\x64\register-x64.h(53): note: see reference to class template instantiation 'v8::internal::RegisterBase<v8::internal::Register,16>' being compiled

closed time in 2 hours

targos

issue commentnodejs/node-v8

Compiler error with VS2017

Moving over to https://github.com/nodejs/node/pull/33579#issuecomment-634548584

targos

comment created time in 2 hours

pull request commentnodejs/node

deps: update V8 to 8.4

/cc @nodejs/platform-windows can we work around this error with VS2017?

09:04:25   exported-macros-assembler-tq.cc
09:04:25 c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\type_traits(616): error C2139: 'v8::internal::JSAggregateError': an undefined class is not allowed as an argument to compiler intrinsic type trait '__is_convertible_to' [C:\workspace\node-compile-windows\node\tools\v8_gypfiles\v8_initializers.vcxproj]
09:04:25   c:\workspace\node-compile-windows\node\out\release\obj\global_intermediate\torque-output-root\torque-generated\internal-class-definitions-tq.h(109): note: see declaration of 'v8::internal::JSAggregateError'
09:04:25   c:\workspace\node-compile-windows\node\deps\v8\src\codegen\tnode.h(262): note: see reference to class template instantiation 'std::is_convertible<T,v8::internal::Object>' being compiled
09:04:25           with
09:04:25           [
09:04:25               T=v8::internal::JSAggregateError
09:04:25           ]
09:04:25   c:\workspace\node-compile-windows\node\out\release\obj\global_intermediate\torque-output-root\torque-generated\exported-macros-assembler-tq.cc(1418): note: see reference to class template instantiation 'v8::internal::is_subtype<v8::internal::JSAggregateError,v8::internal::JSAggregateError>' being compiled
09:04:25   c:\workspace\node-compile-windows\node\deps\v8\src\codegen\x64\register-x64.h(153): note: see reference to class template instantiation 'v8::internal::RegisterBase<v8::internal::XMMRegister,16>' being compiled
09:04:25   c:\workspace\node-compile-windows\node\deps\v8\src\codegen\x64\register-x64.h(53): note: see reference to class template instantiation 'v8::internal::RegisterBase<v8::internal::Register,16>' being compiled
targos

comment created time in 2 hours

issue openednodejs/node

Promise-friendly stream.pipeline

I often use stream.pipeline in async functions, and it's always a bit painful to have to promisify it. What about exporting a promisified version from the stream module directly? I haven't opened an issue or PR before because I don't have a good idea for the name, but maybe somebody else does!

@nodejs/streams

created time in 2 hours

Pull request review commentnodejs/node

lib: initial experimental AbortController implementation

 The objects listed here are specific to Node.js. There are [built-in objects][] that are part of the JavaScript language itself, which are also globally accessible. +## Class: `AbortController`+<!--YAML+added: REPLACEME+-->++> Stability: 1 - Experimental++<!-- type=global -->++A utility class used to signal cancelation in selected `Promise`-based APIs.+The API is based on the Web API [`AbortController`][].++```js+const ac = new AbortController();++ac.signal.on('abort', () => console.log('Aborted!'));
ac.signal.addEventListener('abort', () => console.log('Aborted!'));
jasnell

comment created time in 3 hours

push eventtargos/lucid

Harminder virk

commit sha 761142752d8575e2e1943ee7dccb976b16c29084

chore: update dependencies

view details

Harminder virk

commit sha 117ec61a3398c3bccab7681282e3840b76408b4c

improvement: register health checker only when one or more connections are using it

view details

Harminder virk

commit sha 21f01d64f5e0aeee9f2d7cee137974e5db2ac115

improvement: streamline query logging by disabling knex logger and user event emitter

view details

Harminder virk

commit sha 3d3a8f45fec0a46d4e5f0461c93b85dc47e8d448

feat: add findBy and findByOrFail methods

view details

Harminder virk

commit sha eaff60a81b86ddd2b7115298fd5bf4c174f051cb

improvement: protect preload method to be called from a deleted instance

view details

Harminder virk

commit sha ea7166c3949772e571da62fda3c39cd39699a4e0

feat: query.delete method, it is an alias for the existing .del method

view details

Harminder virk

commit sha 7091bab1922d9dac5c7ff0e5a46e6706f5d7cdd7

improvement: serialize datetime to iso string

view details

Harminder virk

commit sha 2a32e5971bd259a6bb9fbc6a7e4e84f27b7596ff

chore(release): 8.0.3

view details

Harminder virk

commit sha d0c5c80ed308b241ca909356f7e496e6cc868afc

chore: update dependencies

view details

Harminder virk

commit sha 77f6043fd4816a4c16b190cb4a6d55fe779fa3e1

fix: pretty sql queries with propert formatting

view details

Harminder virk

commit sha d39424ac40522a413a065c56380d2b2a6fefe15f

chore(release): 8.0.4

view details

Harminder virk

commit sha bfdf53a20f2a330c15c8d9f12d798cf6c25b3d2a

fix: use for of loop to iterate over registered connections FIXES: #536

view details

Harminder virk

commit sha 2623e667a83bfcbf90726807264b876365c6faad

fix: update mysql config type to accept mysql2 as a client type intersection doesn't allow merging properties of two different types, hence union a union within a single type FIXES: #528

view details

Harminder virk

commit sha 7d40daf8570bfc9b820b73af0082e0820f3b46c5

improvement: making ddl queries compute the query method and not the pretty printer

view details

Harminder virk

commit sha 789f038c044da992dabbf4a0d6d6932a8290eec0

feat: add `useTransaction` and `useConnection` methods The methods can be used through chainable API to use a custom connection or transaction during the `model.save` or `model.delete` call

view details

Harminder virk

commit sha 1bdf5e698960e5e0f9a8e766ccfb4d748ae5c7b6

improvement: allow whereNot contraints for the unique and the exists rules If the value inside key-value pair is an array, then we will apply a whereIn or whereNotIn clause

view details

Harminder virk

commit sha c8bb42b307dbfd5600dc60f74202f50268d72287

chore(release): 8.0.5

view details

Harminder virk

commit sha d3d4f92ca712bbcd8fcd26ebfd9abfc37cf2aad8

improvement: adding support to pick and omit fields during serialize process This does changes the existing API, but since the existing API is never documented, we can take the leverage to change, test and then document the new API

view details

Harminder virk

commit sha db55512a642369bcee3e1319b6846492a9074b65

chore(release): 8.1.0

view details

Harminder virk

commit sha ed90d3a72c208ec2694ba610305ea02464008efc

chore: update dependencies

view details

push time in 3 hours

push eventnodejs/node

Kirill Shatskiy

commit sha 8f10bb2da5bcf166fa1b414055f03352bbdb8126

esm: share package.json cache between ESM and CJS loaders Refs: https://github.com/nodejs/node/issues/30674 PR-URL: https://github.com/nodejs/node/pull/33229 Reviewed-By: Guy Bedford <guybedford@gmail.com> Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com>

view details

bcoe

commit sha 458677f5ef2bd35da920246bb266502ea76bb66c

errors: print original exception context When --enable-source-maps is set, the error context displayed above the stack trace now shows original source rather than transpiled. PR-URL: https://github.com/nodejs/node/pull/33491 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>

view details

Daniel Bevenius

commit sha c072124814ca45e2f51afe0d5e202b0df6db9b4b

src: use MaybeLocal::FromMaybe to return exception This commit suggests using MaybeLocal::FromMaybe to return the exception string, passing in a default value (an empty Local<Value>) which will be used if the exception object is empty. PR-URL: https://github.com/nodejs/node/pull/33514 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>

view details

cjihrig

commit sha 2d2d210db7ebf554c310dc1196c44ba30976d0f0

deps: uvwasi: cherry-pick 9e75217 Original commit message: poll_oneoff: add missing uv_run() in cleanup This allows ASAN to pass. PR-URL: https://github.com/nodejs/node/pull/33521 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>

view details

cjihrig

commit sha a4e6ef7b11d4846c2aa74ae04e24846bf151b7d7

wasi: refactor and enable poll_oneoff() test This commit refactors and enables the poll_oneoff() WASI test. The refactor includes testing additional cases, as well as some platform specific checks. PR-URL: https://github.com/nodejs/node/pull/33521 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>

view details

cjihrig

commit sha 698267c01a6bbb912b76457ade9b0939315d9e65

wasi: simplify WASI memory management This commit migrates the WASI C++ code from UncheckedCalloc() to std::vectors. PR-URL: https://github.com/nodejs/node/pull/33525 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>

view details

cjihrig

commit sha e278e3176ac460fc555834cbec2406d3c7334ef6

tools: update ESLint to 7.1.0 Update ESLint to 7.1.0 PR-URL: https://github.com/nodejs/node/pull/33526 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com> Reviewed-By: Zeyu Yang <himself65@outlook.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>

view details

Derek Lewis

commit sha 549812a9a0a697dbc41d7669fba649bf37b50b83

doc: normalize Bash code block info strings Prior to this commit, Bash fenced code blocks in Markdown files had inconsistent info strings. This has been corrected to standardize on the less-obscure variant. PR-URL: https://github.com/nodejs/node/pull/33510 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Derek Lewis

commit sha 84e4425f810191f65be1b46ee466e06b9d5fe9ed

doc: normalize C code block info strings Prior to this commit, C fenced code blocks in Markdown files had inconsistent info strings. This has been corrected to standardize on the lowercase variant, which matches the others, is the typical file extension for C files, and is the CSS class used by highlight.js despite representing a minority of appearances in the doc/api/ dir. Stats: > 'C' => 181, > 'c' => 3, Refs: https://github.com/highlightjs/highlight.js/pull/2577 PR-URL: https://github.com/nodejs/node/pull/33507 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Derek Lewis

commit sha 5632ff66cdfd770083a4a5223ca4348d05b1eb39

doc: normalize shell code block info strings Prior to this commit, shell fenced code blocks in Markdown files had inconsistent info strings. This has been corrected to standarize on the one with the highest frequency in the doc/api/ dir. Stats: > 'console' => 54, > 'shell' => 2, PR-URL: https://github.com/nodejs/node/pull/33486 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Ben Bucksch

commit sha 2f00ca42bff04773bd787ec70ba83027f22442eb

crypto: fix wrong error message When calling `crypto.sign()`, if the `key` parameter object is missing the `key` property, the error message is wrong. Before the fix: TypeError [ERR_INVALID_ARG_TYPE]: The "key" argument must be of type string or an instance of Buffer, TypedArray, DataView, or KeyObject. Received an instance of Object Expected: TypeError [ERR_INVALID_ARG_TYPE]: The "key.key property" argument must be of type string or an instance of Buffer, TypedArray, DataView, or KeyObject. Received undefined This seems like a copy&paste bug. Somebody copied from the end of the function, where this is correct, to here, where it's wrong. PR-URL: https://github.com/nodejs/node/pull/33482 Fixes: https://github.com/nodejs/node/issues/33480 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org>

view details

Ruben Bridgewater

commit sha e24731cb70386899a746da59fcc2bb68df3545ff

util: fix inspection of class instance prototypes To achieve this, some internal custom inspect functions had to be changed. They relied upon the former behavior. Signed-off-by: Ruben Bridgewater <ruben@bridgewater.de> PR-URL: https://github.com/nodejs/node/pull/33449 Fixes: https://github.com/nodejs/node/issues/33419 Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>

view details

Osher

commit sha e30a65193792d76e204e4558a404b7e9d5a12f41

http: tidy up exposure of header validation PR-URL: https://github.com/nodejs/node/pull/33371 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Thomas

commit sha 5e4c025567c688f3e7bd1d253619edafafbb7fcf

build: fix makefile script on windows On Windows there is a program "find.exe" located in C:\Windows\System32, which is usually in the PATH before MSYS version of that program (required for running makefile). The Windows version of the program uses different CLI syntax, which results in errors like "File not found - *node_modules*" This commit specifies the full path to the program, which is also properly handled by MSYS on Windows. PR-URL: https://github.com/nodejs/node/pull/33136 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>

view details

Eli Schwartz

commit sha b21556d28b7be3921fa99089c61a7938811e25d1

build: fix inability to detect correct python command in configure The "which" utility is not guaranteed to be installed, and if it is, its behavior is not portable. Conversely, the "command -v" shell builtin is required to exist in all POSIX 2008 compliant shells, and is thus guaranteed to work everywhere. Examples of open-source shells likely to be installed as /bin/sh on Linux, which implement the 12-year-old standard: ash, bash, busybox, dash, ksh, mksh and zsh. Signed-off-by: Eli Schwartz <eschwartz@archlinux.org> PR-URL: https://github.com/nodejs/node/pull/32925 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Matheus Marchini <mat@mmarchini.me> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

himself65

commit sha 5007611294bfcfe7af8648a69bd19d1b014c84bd

src: use const in constant args.Length() PR-URL: https://github.com/nodejs/node/pull/33555 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>

view details

Michaël Zasso

commit sha dcc112b7f7e7543e57b279d95a5bbb24ef771652

2020-05-26, Version 12.17.0 'Erbium' (LTS) Notable changes: * ECMAScript Modules - `--experimental-modules` flag removal * AsyncLocalStorage API (experimental) * REPL previews * REPL reverse-i-search * REPL substring-based search * Error monitoring * Monitoring `error` events * Monitoring uncaught exceptions * File system APIs * New function: `fs.readv` * Optional parameters in `fs.read` * Console `groupIndentation` option * `maxStringLength` option for `util.inspect()` * Stable N-API release 6 * Stable diagnostic reports * Increase of the default server headers timeout * New `--trace-sigint` CLI flag * Various crypto APIs now support Diffie-Hellman secrets * Added support for the `dns.ALL` flag in `dns.lookup()` * Added a new experimental API to interact with Source Map V3 data * Added support for passing a `transferList` along with `workerData` to the `Worker` constructor PR-URL: https://github.com/nodejs/node/pull/33197

view details

Robert Nagy

commit sha 9949a2e1e3100c4ff1f228bac57c1af95cdc3e9d

test: make flaky test stricter Make assertions in flaky test stricter to possibly make it easier to determine the root cause. Refs: https://github.com/nodejs/node/issues/4066 PR-URL: https://github.com/nodejs/node/pull/33539 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>

view details

Michaël Zasso

commit sha 50d0c8843b1e0feecfcd55b72a3f7f2315084331

deps: update V8 to 8.5.45

view details

Michaël Zasso

commit sha 245705e2e4e68bfd60c77654b056224046594b4f

build: reset embedder string to "-node.0"

view details

push time in 5 hours

pull request commentnodejs/node

deps: update V8 to 8.4

/cc @nodejs/platform-smartos

08:51:20 ../deps/v8/src/base/platform/platform-posix.cc: In static member function 'static void* v8::base::Stack::GetStackStart()':
08:51:20 ../deps/v8/src/base/platform/platform-posix.cc:978:15: error: 'pthread_getattr_np' was not declared in this scope
08:51:20    int error = pthread_getattr_np(pthread_self(), &attr);
08:51:20                ^~~~~~~~~~~~~~~~~~
08:51:20 ../deps/v8/src/base/platform/platform-posix.cc:978:15: note: suggested alternative: 'pthread_getname_np'
08:51:20    int error = pthread_getattr_np(pthread_self(), &attr);
08:51:20                ^~~~~~~~~~~~~~~~~~
08:51:20                pthread_getname_np
08:51:20 make[2]: *** [tools/v8_gypfiles/v8_libbase.target.mk:145: /home/iojs/build/workspace/node-test-commit-smartos/nodes/smartos18-64/out/Release/obj.target/v8_libbase/deps/v8/src/base/platform/platform-posix.o] Error 1

I fixed a similar error upstream for FreeBSD. The trick was to #include <pthread_np.h>.

targos

comment created time in 5 hours

PR opened nodejs/node

deps: update V8 to 8.4

Stable release: Tue, Jul 14, 2020

+72983 -39522

0 comment

1396 changed files

pr created time in 5 hours

create barnchtargos/node

branch : v8-84

created branch time in 5 hours

issue commentnodejs/modules

Cancellation and ESM?

import() is not a function. It's a syntax error to pass more than one parameter, so this feature would definitely have to come from the spec/V8.

benjamingr

comment created time in 21 hours

push eventnodejs/nodejs.org

Michaël Zasso

commit sha e2aa129f5555842b2e8deb74162c512d0199ac69

Blog: v12.17.0 release post (#3194) Refs: https://github.com/nodejs/node/pull/33197

view details

push time in a day

delete branch nodejs/nodejs.org

delete branch : 12.17.0

delete time in a day

PR merged nodejs/nodejs.org

Blog: v12.17.0 release post

Refs: https://github.com/nodejs/node/pull/33197

+725 -0

0 comment

1 changed file

targos

pr closed time in a day

delete branch nodejs/node

delete branch : v12.17.0-proposal

delete time in a day

release nodejs/node

v12.17.0

released time in a day

PR opened nodejs/nodejs.org

Blog: v12.17.0 release post

Refs: https://github.com/nodejs/node/pull/33197

+725 -0

0 comment

1 changed file

pr created time in a day

create barnchnodejs/nodejs.org

branch : 12.17.0

created branch time in a day

push eventtargos/node

Ruben Bridgewater

commit sha 1acc14baf9ca1cc52f001fbe0453c2a540571c21

repl: add builtinModules This adds an alias to `_builtinLibs` that is documented and should as such also be accessed publicly. It does not contain any underscored modules. Signed-off-by: Ruben Bridgewater <ruben@bridgewater.de> PR-URL: https://github.com/nodejs/node/pull/33295 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com>

view details

Dan Fabulich

commit sha 842a895ebff5917edded3b283049dc0f8fbe4c64

cli: support --experimental-top-level-await in NODE_OPTIONS PR-URL: https://github.com/nodejs/node/pull/33495 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Michaël Zasso <targos@protonmail.com>

view details

Bartosz Sosnowski

commit sha 4a911d46fe8f325b81e1cf39d1d62fd98788a7df

fs: unify style in preprocessSymlinkDestination Removes the else after return to match rest of the style of the function. PR-URL: https://github.com/nodejs/node/pull/33496 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Deep310

commit sha 928473f689f1bc9a2fcb1fc0c55573b4d5994735

doc: fixed a grammatical error in path.md It said, " The path.basename() methods returns the last portion....". "Methods" was wrong and it is fixed to "method". PR-URL: https://github.com/nodejs/node/pull/33489 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Dominykas Blyžė

commit sha 78eb420fed154b7729283a3d63c99fa9989ffbea

deps: V8: cherry-pick 548f6c81d424 Original commit message: [runtime] Don't track transitions for certainly detached maps Previously such maps were marked as prototype, but that has bad performance / memory characteristics if objects are used as dictionaries. Bug: b:148346655, v8:10339 Change-Id: I287c5664c8b7799a084669aaaffe3affcf73e95f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2179322 Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#67537} Refs: https://github.com/v8/v8/commit/548f6c81d4246736a7feafd7995fdf6f24ed1149 PR-URL: https://github.com/nodejs/node/pull/33484 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Matheus Marchini <mat@mmarchini.me> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Derek Lewis

commit sha 9dd7557c7d934931378593aca48bb0ac08b50920

doc: normalize C++ code block info strings Prior to this commit, C++ fenced code blocks in Markdown files had inconsistent info strings. This has been corrected to standarize on the one with the highest frequency in the doc/api/ dir. Stats: > 'cpp' => 19, > 'C++' => 6, > 'c++' => 3, PR-URL: https://github.com/nodejs/node/pull/33483 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

dfabulich

commit sha c39467cb4782e559c106d3d527bb0bd87439bbaa

doc: mention --experimental-top-level-await flag PR-URL: https://github.com/nodejs/node/pull/33473 Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

Alhadis

commit sha f14229e7040b376b4934f8d0c98520bb3ed798fc

doc: eliminate dead space in API section's sidebar This commit improves overall usability on desktop by removing the "dead" (non-interactive) regions between links in the API section's navigation. No visible changes have been made; this enhancement is purely tactile in nature. PR-URL: https://github.com/nodejs/node/pull/33469 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Anna Henningsen

commit sha b18d8dde847e1bff188c6cfb2d65a96209146c2c

Revert "n-api: detect deadlocks in thread-safe function" This reverts commit d26ca06c16f497ffa5ac4845a27922d5058a9318 because it breaks running the tests in debug mode, as `v8::Isolate::GetCurrent()` is not allowed if no `Isolate` is active on the current thread. Refs: https://github.com/nodejs/node/pull/33276 Refs: https://github.com/nodejs/node/pull/32860 PR-URL: https://github.com/nodejs/node/pull/33453 Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Gabriel Schulhof <gabriel.schulhof@intel.com>

view details

Ben Noordhuis

commit sha 9ad8b4d3934325def5949dab19667d6e5452bbdf

wasi: relax WebAssembly.Instance type check Instances coming from different VM contexts don't pass `instanceof` type checks because each context has its own copy of the built-in globals. After review of the relevant code it seems like it should be safe to relax the type check and that is what this commit does: `wasi.start()` now accepts any input that walks and quacks like a WebAssembly.Instance or WebAssembly.Memory instance. Fixes: https://github.com/nodejs/node/issues/33415 PR-URL: https://github.com/nodejs/node/pull/33431 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Derek Lewis

commit sha dc6c93c03ee68eaca48b35e0cbcbb4d48e938e3d

doc,tools: properly syntax highlight API ref docs Prior to this commit, all <pre> tags were being highlighted as JavaScript. This has been corrected to syntax highlight all languages appearing in the API reference docs. This was accomplished by using highlight.js instead of SHJS for the frontend lib. * remove SHJS JavaScript code * add highlight.js bundle * fix script tags to reflect replacement * migrate CSS to use highlight.js classes * add appropriate documentation * ensure api_assets README.md stays interal Fixes: https://github.com/nodejs/node/issues/33363 PR-URL: https://github.com/nodejs/node/pull/33442 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org>

view details

rickyes

commit sha c5719eb26546ad3cc6f764dfb53dd447d675dc84

net: refactor check for Windows PR-URL: https://github.com/nodejs/node/pull/33497 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Anna Henningsen

commit sha f25153333533e8d328374df658786239c4d4aff3

test: fix flaky test-trace-atomics-wait This adds a possible ordering of the trace events that was missing from the list previously. Fixes: https://github.com/nodejs/node/issues/33427 PR-URL: https://github.com/nodejs/node/pull/33428 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

Antoine du HAMEL

commit sha a3f47b111499416e5d164c5957af4f504a9e3c48

doc: fix typo in pathToFileURL example PR-URL: https://github.com/nodejs/node/pull/33418 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Ben Noordhuis

commit sha 8ddb6aa88694f4a5a2a05a46f66508c683b850d2

src: remove BeforeExit callback list It obscures the fact that there is only a single BeforeExit action. Just call that statically from `EmitBeforeExit()`. PR-URL: https://github.com/nodejs/node/pull/33386 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

Ben Noordhuis

commit sha d85a9332508bbc39ddc011e9e5a1fd5f71a985bb

wasi,worker: handle termination exception Be careful when emitting the 'beforeExit' event. It's not allowed to call into the runtime when a termination exception is pending. Fixes: https://github.com/nodejs/node/issues/33377 PR-URL: https://github.com/nodejs/node/pull/33386 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

Nikolai Vavilov

commit sha b3f14df485d89ad7866573536fe07783e516a5ae

doc: fix Buffer.from(object) documentation Only strings are supported for objects supporting `Symbol.toPrimitive`. PR-URL: https://github.com/nodejs/node/pull/33327 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Adrian Estrada

commit sha 6af15ebf220e084fe285a95fa0925f7b2efe024e

benchmark: fixing http_server_for_chunky_client.js PR-URL: https://github.com/nodejs/node/pull/33271 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Antoine du HAMEL

commit sha 539c56ed2ca3222cab7829af11f40b88e17f0a1d

tools: add docserve target Spaws a webserver serving the docs. Helpful to circumvent the OS permission limitations or to access the docs form a different device on the local network. PR-URL: https://github.com/nodejs/node/pull/33221 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Nikolai Vavilov

commit sha 9cd83c761f688079efeae931cb3462b9ba6d18e3

buffer: remove hoisted variable PR-URL: https://github.com/nodejs/node/pull/33470 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

push time in a day

push eventnodejs/node

Michaël Zasso

commit sha dcc112b7f7e7543e57b279d95a5bbb24ef771652

2020-05-26, Version 12.17.0 'Erbium' (LTS) Notable changes: * ECMAScript Modules - `--experimental-modules` flag removal * AsyncLocalStorage API (experimental) * REPL previews * REPL reverse-i-search * REPL substring-based search * Error monitoring * Monitoring `error` events * Monitoring uncaught exceptions * File system APIs * New function: `fs.readv` * Optional parameters in `fs.read` * Console `groupIndentation` option * `maxStringLength` option for `util.inspect()` * Stable N-API release 6 * Stable diagnostic reports * Increase of the default server headers timeout * New `--trace-sigint` CLI flag * Various crypto APIs now support Diffie-Hellman secrets * Added support for the `dns.ALL` flag in `dns.lookup()` * Added a new experimental API to interact with Source Map V3 data * Added support for passing a `transferList` along with `workerData` to the `Worker` constructor PR-URL: https://github.com/nodejs/node/pull/33197

view details

push time in a day

created tagnodejs/node

tagv12.17.0

Node.js JavaScript runtime :sparkles::turtle::rocket::sparkles:

created time in a day

Pull request review commentnodejs/node-core-utils

git-node: add release promotion step

+'use strict';++const path = require('path');+const { promises: fs } = require('fs');+const semver = require('semver');++const { getMergedConfig } = require('./config');+const { runSync, runAsync } = require('./run');+const auth = require('./auth');+const PRData = require('./pr_data');+const PRChecker = require('./pr_checker');+const Request = require('./request');++const isWindows = process.platform === 'win32';++class ReleasePromotion {+  constructor(argv, cli, dir) {+    this.cli = cli;+    this.dir = dir;+    this.isLTS = false;+    this.prid = argv.prid;+    this.ltsCodename = '';+    this.date = '';+    this.config = getMergedConfig(this.dir);+  }++  async promote() {+    // In the promotion stage, we can pull most relevant data+    // from the release commit created in the preparation stage.+    await this.parseDataFromReleaseCommit();++    const { prid, cli, version } = this;++    // Verify that PR is ready to promote.+    const {+      jenkinsReady,+      githubCIReady,+      isApproved+    } = await this.verifyPRAttributes();++    cli.startSpinner('Verifying Jenkins CI status');+    if (!jenkinsReady) {+      cli.stopSpinner(+        `Jenkins CI is failing for #${prid}`, cli.SPINNER_STATUS.FAILED);+      const proceed = await cli.prompt('Do you want to proceed?');+      if (!proceed) {+        cli.warn(`Aborting release promotion for version ${version}`);+        return;+      }+    } else {+      cli.stopSpinner('Jenkins CI is passing');+    }++    cli.startSpinner('Verifying GitHub CI status');+    if (!githubCIReady) {+      cli.stopSpinner(+        `GitHub CI is failing for #${prid}`, cli.SPINNER_STATUS.FAILED);+      const proceed = await cli.prompt('Do you want to proceed?');+      if (!proceed) {+        cli.warn(`Aborting release promotion for version ${version}`);+        return;+      }+    } else {+      cli.stopSpinner('GitHub CI is passing');+    }++    cli.startSpinner('Verifying PR approval status');+    if (!isApproved) {+      cli.stopSpinner(+        `#${prid} does not have sufficient approvals`,+        cli.SPINNER_STATUS.FAILED);+      const proceed = await cli.prompt('Do you want to proceed?');+      if (!proceed) {+        cli.warn(`Aborting release promotion for version ${version}`);+        return;+      }+    } else {+      cli.stopSpinner(`#${prid} has necessary approvals`);+    }++    // Create and sign the release tag.+    const shouldTagAndSignRelease = await cli.prompt(+      'Tag and sign the release?');+    if (!shouldTagAndSignRelease) {+      cli.warn(`Aborting release promotion for version ${version}`);+      return;+    }+    this.secureTagRelease();++    // Set up for next release.+    cli.startSpinner('Setting up for next release');+    await this.setupForNextRelease();+    cli.stopSpinner('Successfully set up for next release');++    const shouldMergeProposalBranch = await cli.prompt(+      'Merge proposal branch into staging branch?');+    if (!shouldMergeProposalBranch) {+      cli.warn(`Aborting release promotion for version ${version}`);+      return;+    }++    // Merge vX.Y.Z-proposal into vX.x.+    cli.startSpinner('Merging proposal branch');+    this.mergeProposalBranch();+    cli.stopSpinner('Merged proposal branch');++    // Cherry pick release commit to master.+    const shouldCherryPick = await cli.prompt(+      'Cherry-pick release commit to master?', { defaultAnswer: true });+    if (!shouldCherryPick) {+      cli.warn(`Aborting release promotion for version ${version}`);+      return;+    }+    this.cherryPickToMaster();++    // There will be cherry-pick conflicts the Releaser will+    // need to resolve, so confirm they've been resolved before+    // proceeding with next steps.+    cli.separator();+    cli.info(`After cherry-picking:+      * The version macros in src/node_version.h should contain whatever values+      were previously on master.+      * NODE_VERSION_IS_RELEASE should be 0.+    `);+    cli.separator();+    const didResolveConflicts = await cli.prompt(+      'Finished resolving cherry-pick conflicts?', { defaultAnswer: true });+    if (!didResolveConflicts) {+      cli.warn(`Aborting release promotion for version ${version}`);+      return;+    }++    // Push release tag.+    const shouldPushTag = await cli.prompt('Push release tag?',+      { defaultAnswer: true });+    if (!shouldPushTag) {+      cli.warn(`Aborting release promotion for version ${version}`);+      return;+    }+    this.pushReleaseTag();++    // Promote and sign the release builds.+    const shouldPromote = await cli.prompt('Promote and sign release builds?',+      { defaultAnswer: true });+    if (!shouldPromote) {+      cli.warn(`Aborting release promotion for version ${version}`);+      return;+    }++    const defaultKeyPath = '~/.ssh/node_id_rsa';+    const keyPath = await cli.prompt(+      `Please enter the path to your ssh key (Default ${defaultKeyPath}): `,+      { questionType: 'input', defaultAnswer: defaultKeyPath });+    await this.promoteAndSignRelease(keyPath);++    cli.separator();+    cli.ok(`Release promotion for ${version} complete.\n`);+    cli.info(+      'To finish this release, you\'ll need to: \n' ++      ` 1) Check the release at: https://nodejs.org/dist/v${version}\n` ++      ' 2) Create the blog post for nodejs.org\n' ++      ' 3) Create the release on GitHub\n' ++      'Finally, proceed to Twitter and announce the new release!');+  }++  async verifyPRAttributes() {+    const { cli, prid, owner, repo } = this;++    const credentials = await auth({ github: true });+    const request = new Request(credentials);++    const data = new PRData({ prid, owner, repo }, cli, request);+    await data.getAll();++    const checker = new PRChecker(cli, data, { prid, owner, repo });+    const jenkinsReady = checker.checkJenkinsCI();+    const githubCIReady = checker.checkGitHubCI();+    const isApproved = checker.checkReviewsAndWait(new Date(), false);++    return {+      jenkinsReady,+      githubCIReady,+      isApproved+    };+  }++  async parseDataFromReleaseCommit() {+    const { cli } = this;++    const releaseCommitMessage = runSync(+      'git', ['log', '-n', '1', '--pretty=format:\'%s\'']).trim();++    const components = releaseCommitMessage.split(' ');++    // Parse out release date.+    const match = components[0].match(/\d{4}-\d{2}-\d{2}/);+    if (!match) {+      cli.error(`Release commit contains invalid date: ${components[0]}`);+      return;+    }+    this.date = match[0];++    // Parse out release version.+    const version = semver.clean(components[2]);+    if (!semver.valid(version)) {+      cli.error(`Release commit contains invalid semantic version: ${version}`);+      return;+    }++    this.version = version;+    this.stagingBranch = `v${semver.major(version)}.x-staging`;+    this.versionComponents = {+      major: semver.major(version),+      minor: semver.minor(version),+      patch: semver.patch(version)+    };++    // Parse out LTS status and codename.+    if (components.length === 5) {+      this.isLTS = true;+      this.ltsCodename = components[3];+    }+  }++  getCommitSha(position = 0) {+    return runSync('git', ['rev-parse', `HEAD~${position}`]).trim();+  }++  get owner() {+    return this.config.owner || 'nodejs';+  }++  get repo() {+    return this.config.repo || 'node';+  }++  get username() {+    return this.config.username;+  }++  async secureTagRelease() {+    const { version, isLTS, ltsCodename } = this;++    const secureTag = path.join(+      __dirname,+      '../node_modules/.bin/git-secure-tag' + (isWindows ? '.cmd' : '')+    );++    const releaseInfo = isLTS ? `'${ltsCodename}' (LTS)` : '(Current)';+    const secureTagOptions = [+      `v${version}`,+      this.getCommitSha(),+      '-sm',+      `${this.date} Node.js v${version} ${releaseInfo} Release`+    ];++    await runAsync(secureTag, secureTagOptions);+  }++  // Set up the branch so that nightly builds are produced with the next+  // version number and a pre-release tag.+  async setupForNextRelease() {+    const { versionComponents, prid } = this;++    // Update node_version.h for next patch release.+    const filePath = path.resolve('src', 'node_version.h');+    const data = await fs.readFile(filePath, 'utf8');+    const arr = data.split('\n');++    const patchVersion = versionComponents.patch + 1;+    arr.forEach((line, idx) => {+      if (line.includes('#define NODE_PATCH_VERSION')) {+        arr[idx] = `#define NODE_PATCH_VERSION ${patchVersion}`;+      } else if (line.includes('#define NODE_VERSION_IS_RELEASE')) {+        arr[idx] = '#define NODE_VERSION_IS_RELEASE 0';+      }+    });++    await fs.writeFile(filePath, arr.join('\n'));++    const workingOnVersion =+      `v${versionComponents.major}.${versionComponents.minor}.${patchVersion}`;++    // Create 'Working On' commit.+    runSync('git', ['add', filePath]);+    return runSync('git', [+      'commit',+      '-m',+      `Working on ${workingOnVersion}`,+      '-m',+      `PR-URL: https://github.com/nodejs/node/pull/${prid}`+    ]);+  }++  mergeProposalBranch() {+    const { stagingBranch, versionComponents, version } = this;++    const releaseBranch = `v${versionComponents.major}.x`;+    const proposalBranch = `v${version}-proposal`;++    runSync('git', ['checkout', releaseBranch]);+    runSync('git', ['merge', '--ff-only', proposalBranch]);+    runSync('git', ['push', 'upstream', releaseBranch]);+    runSync('git', ['checkout', stagingBranch]);+    runSync('git', ['rebase', releaseBranch]);+    runSync('git', ['push', 'upstream', stagingBranch]);+  }++  pushReleaseTag() {+    const { version } = this;++    const tagVersion = `v${version}`;+    return runSync('git', ['push', 'upstream', tagVersion]);+  }++  async promoteAndSignRelease(keyPath) {+    await runAsync('./tools/release.sh', ['-i', keyPath]);+  }++  cherryPickToMaster() {+    // Since we've committed the Working On commit, the release+    // commit will be 1 removed from tip-of-tree (e.g HEAD~1).+    const releaseCommitSha = this.getCommitSha(1);+    runSync('git', ['checkout', 'master']);++    // Pull master from upstream, in case it's not up-to-date.+    runSync('git', ['pull', '--rebase', 'upstream', 'master']);++    // There will be conflicts.+    runSync('git', ['cherry-pick', releaseCommitSha]);

it crashed here:

Error: error: could not apply cd4ae7c925... 2020-05-26, Version 12.17.0 'Erbium' (LTS)
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'

    at exports.runSync (/home/mzasso/git/nodejs/node-core-utils/lib/run.js:60:11)
    at ReleasePromotion.cherryPickToMaster (/home/mzasso/git/nodejs/node-core-utils/lib/promote_release.js:330:5)
    at ReleasePromotion.promote (/home/mzasso/git/nodejs/node-core-utils/lib/promote_release.js:114:10)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
codebytere

comment created time in a day

push eventnodejs/node

ran

commit sha c8b4ab0978cdca56369b89f91e057c4fab9fd7be

stream: fix readable state `awaitDrain` increase in recursion PR-URL: https://github.com/nodejs/node/pull/27572 Backport-PR-URL: https://github.com/nodejs/node/pull/33056 Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

Michaël Zasso

commit sha 8e829d4a56bea23a6f9f4e74e019fa48640e1b06

Revert "doc: fix default server timeout description for https" This reverts commit 86686ccbabf0573f7e6cc2be60f6fb7e98ef44ab. PR-URL: https://github.com/nodejs/node/pull/33069 Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

Anna Henningsen

commit sha 8961d33afff63806044912ba3c1f3a53c75f27a1

tls: add memory tracking support to SSLWrap PR-URL: https://github.com/nodejs/node/pull/30548 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>

view details

Anna Henningsen

commit sha ce8d8c06accac210e4c3bf31d8adb600eae2307d

src: use BaseObjectPtr to store SNI context Rather than relying on a link to the JS object, store a pointer to the C++ object directly. PR-URL: https://github.com/nodejs/node/pull/30548 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>

view details

Anna Henningsen

commit sha 98297b92f566d2bf970e987c5efaf9a7707a6302

src: inline SetSNICallback Refs: https://github.com/nodejs/node/pull/30548#discussion_r348168855 PR-URL: https://github.com/nodejs/node/pull/30548 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>

view details

Tim Costa

commit sha d60988161da8dd6565f343d5b4a58048f8ab3137

http,https: increase server headers timeout Fixes: https://github.com/nodejs/node/issues/24980 Refs: https://github.com/nodejs/node/commit/eb43bc04b1 PR-URL: https://github.com/nodejs/node/pull/30071 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Rich Trott <rtrott@gmail.com>

view details

Ruben Bridgewater

commit sha b14440fb5cb46c2d7bbb0689d402c2a035fa8e13

repl: support previews by eager evaluating input This adds input previews by using the inspectors eager evaluation functionality. It is implemented as additional line that is not counted towards the actual input. In case no colors are supported, it will be visible as comment. Otherwise it's grey. It will be triggered on any line change. It is heavily tested against edge cases and adheres to "dumb" terminals (previews are deactived in that case). PR-URL: https://github.com/nodejs/node/pull/30811 Fixes: https://github.com/nodejs/node/issues/20977 Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com> Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>

view details

Ruben Bridgewater

commit sha 78dcdee35f21fa2d7253e74c7f36027fbce42616

repl: remove dead code The .scope command was used only in the old debugger. Since that's not part of core anymore it's does not have any use. I tried to replicate the expected behavior but it even results in just exiting the repl immediately when using the completion similar to the removed test case. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>

view details

Ruben Bridgewater

commit sha 9b893e1bee17fc8cfc9185ca2be2820b5c9f3168

repl: simplify repl autocompletion This simplifies calling `filteredOwnPropertyNames()`. The context is not used in that function, so there's no need to call the function as such. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>

view details

Ruben Bridgewater

commit sha 61886507ce0bf4862f38c46547dd5c42a7e9bd0a

repl: simplify code This simplifies some repl code and removes a code branch that is unreachable. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>

view details

Ruben Bridgewater

commit sha 0bafe087e45d89439966273b00d073710468d5a6

readline: update ansi-regex This updates the used regular expression to the latest version. It includes a number of additional escape codes. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>

view details

Ruben Bridgewater

commit sha 6eda28c69fd7e3815f8d21d7e94e0332df6aa1f4

repl,readline: refactor common code This renames some variables for clarity and moves the common substring part into a shared file. One algorithm was more efficient than the other but the functionality itself was identical. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>

view details

Ruben Bridgewater

commit sha 8be00314a68bad7df1ab0cb66f039e43c6f4c0d9

repl,readline: refactor for simplicity This just refactors code without changing the behavior. Especially the REPL code is difficult to read and deeply indented. This reduces the indentation to improve that. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>

view details

Ruben Bridgewater

commit sha 7131de5f777170f5f2fb06180b493ba93cd57740

repl: improve completion This improves the completion output by removing the nested special handling. It never fully worked as expected and required a lot of hacks to even keep it working halfway reliable. Our tests did not cover syntax errors though and those can not be handled by this implementation. Those break the layout and confuse the REPL. Besides that the completion now also works in case the current line has leading whitespace. Also improve the error output in case the completion fails. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>

view details

Ruben Bridgewater

commit sha bf9ff164125703e5401a7698d2c26a7ba943e2b3

repl: add completion preview This improves the already existing preview functionality by also checking for the input completion. In case there's only a single completion, it will automatically be visible to the user in grey. If colors are deactivated, it will be visible as comment. This also changes some keys by automatically accepting the preview by moving the cursor behind the current input end. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>

view details

Ruben Bridgewater

commit sha 47dfa22adb83b576ec8dceeb7b8c84f10c2d3ea5

repl: fix preview bug in case of long lines This addresses an issue that is caused by lines that exceed the current window columns. That would cause the preview to confuse the REPL. This is meant as hot fix. The preview should be able to handle these cases appropriately as well later on. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>

view details

Ruben Bridgewater

commit sha f1624bbafaadf0e6ba68ffdd2a4d0270d3cc8ac5

test: add multiple repl preview tests This improves the coverage for the preview feature signficantly. Quite a few edge cases get testet here to prevent regressions. PR-URL: https://github.com/nodejs/node/pull/30907 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>

view details

Ruben Bridgewater

commit sha 85f86544150fd24f6ca243a7dcf556a423285e49

repl: fix preview of lines that exceed the terminal columns This adds support for very long input lines to still display the input preview correct. PR-URL: https://github.com/nodejs/node/pull/31006 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>

view details

Ruben Bridgewater

commit sha 936c85c309f6bac3fe4b9597d8f5e8ef5458ea27

repl: implement reverse search Add a reverse search that works similar to the ZSH one. It is triggered with <ctrl> + r and <ctrl> + s. It skips duplicated history entries and works with multiline statements. Matching entries indicate the search parameter with an underscore and cancelling with <ctrl> + c or escape brings back the original line. Multiple matches in a single history entry work as well and are matched in the order of the current search direction. The cursor is positioned at the current match position of the history entry. Changing the direction immediately checks for the next entry in the expected direction from the current position on. Entries are accepted as soon any button is pressed that doesn't correspond with the reverse search. The behavior is deactivated for simple terminals. They do not support most ANSI escape codes that are necessary for this feature. PR-URL: https://github.com/nodejs/node/pull/31006 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>

view details

Ruben Bridgewater

commit sha 3946cadf894a4860eda7064e115d7dc86e854c9e

readline: small refactoring This just removes some redundant work and some other small things. PR-URL: https://github.com/nodejs/node/pull/31006 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>

view details

push time in a day

push eventnodejs/node

Michaël Zasso

commit sha cd4ae7c92508a6dcfe2e62e686a62130fead3222

2020-05-26, Version 12.17.0 'Erbium' (LTS) Notable changes: * ECMAScript Modules - `--experimental-modules` flag removal * AsyncLocalStorage API (experimental) * REPL previews * REPL reverse-i-search * REPL substring-based search * Error monitoring * Monitoring `error` events * Monitoring uncaught exceptions * File system APIs * New function: `fs.readv` * Optional parameters in `fs.read` * Console `groupIndentation` option * `maxStringLength` option for `util.inspect()` * Stable N-API release 6 * Stable diagnostic reports * Increase of the default server headers timeout * New `--trace-sigint` CLI flag * Various crypto APIs now support Diffie-Hellman secrets * Added support for the `dns.ALL` flag in `dns.lookup()` * Added a new experimental API to interact with Source Map V3 data * Added support for passing a `transferList` along with `workerData` to the `Worker` constructor PR-URL: https://github.com/nodejs/node/pull/33197

view details

Michaël Zasso

commit sha dc4b1250347e71b11ccd21f87268b9af7a8340c7

Working on v12.17.1 PR-URL: https://github.com/nodejs/node/pull/33197

view details

push time in a day

PR merged nodejs/node

v12.17.0 release proposal build doc meta v12.x

2020-05-26, Version 12.17.0 'Erbium' (LTS), @targos

Notable Changes

ECMAScript Modules - --experimental-modules flag removal

As of Node.js 12.17.0, the --experimental-modules flag is no longer necessary to use ECMAScript modules (ESM). However, the ESM implementation in Node.js remains experimental. As per our stability index: “The feature is not subject to Semantic Versioning rules. Non-backward compatible changes or removal may occur in any future release.” Users should be cautious when using the feature in production environments.

Unlike Node.js 14, using ESM will still emit a runtime experimental warning, either when a module is used a the application's entrypoint or the first time dynamic import() is called.

Please keep in mind that the implementation of ESM in Node.js differs from the developer experience you might be familiar with. Most transpilation workflows support features such as named exports from CommonJS module imports, optional file extensions or JSON modules that the Node.js ESM implementation does not support. It is highly likely that modules from transpiled environments will require a certain degree of refactoring to work in Node.js. It is worth mentioning that many of our design decisions were made with two primary goals. Spec compliance and Web Compatibility. It is our belief that the current implementation offers a future proof model to authoring ESM modules that paves the path to Universal JavaScript. Please read more in our documentation.

The ESM implementation in Node.js is still experimental but we do believe that we are getting very close to being able to call ESM in Node.js “stable”. Removing the flag is a huge step in that direction.

We expect to remove the warning Node.js 12 later this year, possibly in late October, when Node.js 14 will become LTS.

AsyncLocalStorage API (experimental)

The AsyncLocalStorage class has been introduced in the Async Hooks module.

This API allows keeping a context across asynchronous operations. For instance, if a sequence id is stored within an instance of AsyncLocalStorage for each HTTP request entering in a server, it will be possible to retrieve this id without having access the current HTTP request:

const http = require('http');
const { AsyncLocalStorage } = require('async_hooks');

const asyncLocalStorage = new AsyncLocalStorage();

function logWithId(msg) {
  const id = asyncLocalStorage.getStore();
  console.log(`${id !== undefined ? id : '-'}: `, msg);
}

let idSeq = 0;
http.createServer((req, res) => {
  asyncLocalStorage.run(idSeq++, () => {
    logWithId('start');
    // Imagine any chain of async operations here.
    setImmediate(() => {
      logWithId('finish');
      res.end();
    });
  });
}).listen(8080);

In this example, the logWithId function will always know what the current request id is, even when there are multiple requests in parallel.

What can this API be used for

Use cases of this API include:

  • Logging
  • User identification
  • Performance tracking
  • Error tracking and handling
  • Much more!

Note: This API is still experimental and some methods might change in future releases of Node.js

Contributed by Vladimir de Turckheim - #26540.

REPL previews

If further input is predicable, a suggestion is inserted as preview.

The REPL now supports previews similar to the Chrome DevTools console. An input suggestion is inserted as preview in case further input is predicable. The suggestion may be accepted by either pressing <TAB> or <RIGHT> at the end of the input. On top of that, output is previewed when entering variable names or function calls that have no side effect.

image image

Check the preview in action and try it out on your own. Just access the REPL on your terminal by starting the Node.js executable without any further command.

Contributed by Ruben Bridgewater - #30907, #30811.

REPL reverse-i-search

The REPL supports bi-directional reverse-i-search similar to ZSH. It is triggered with <ctrl> + R to search backwards and <ctrl> + S to search forwards.

Entries are accepted as soon as any button is pressed that doesn't correspond with the reverse search. Cancelling is possible by pressing escape or <ctrl> + C.

Changing the direction immediately searches for the next entry in the expected direction from the current position on.

image

Reverse-i-search in action.

Contributed by Ruben Bridgewater - #31006.

REPL substring-based search

It is now possible to access former history entries very fast by writing the first characters of the formerly entered code you are looking for. Then push <UP> or <DOWN> to go through the history entries that start with those characters.

It works similar to the Fish Shell substring-based history search.

Contributed by Ruben Bridgewater - #31112.

Error monitoring

Monitoring error events

It is now possible to monitor 'error' events on an EventEmitter without consuming the emitted error by installing a listener using the symbol EventEmitter.errorMonitor:

const myEmitter = new MyEmitter();

myEmitter.on(EventEmitter.errorMonitor, (err) => {
  MyMonitoringTool.log(err);
});

myEmitter.emit('error', new Error('whoops!'));
// Still throws and crashes Node.js

Contributed by Gerhard Stoebich - #30932.

Monitoring uncaught exceptions

It is now possible to monitor 'uncaughtException' events without overriding the default behavior that exits the process by installing an 'uncaughtExceptionMonitor' listener:

process.on('uncaughtExceptionMonitor', (err, origin) => {
  MyMonitoringTool.logSync(err, origin);
});

// Intentionally cause an exception, but do not catch it.
nonexistentFunc();
// Still crashes Node.js

Contributed by Gerhard Stoebich - #31257.

File system APIs

New function: fs.readv

This new function (along with its sync and promisified versions) takes an array of ArrayBufferView elements and will write the data it reads sequentially to the buffers.

Contributed by Sk Sajidul Kadir - #32356.

Optional parameters in fs.read

A new overload is available for fs.read (along with its sync and promisified versions), which allows to optionally pass any of the offset, length and position parameters.

Contributed by Lucas Holmquist - #31402.

Console groupIndentation option

The Console constructor (require('console').Console) now supports different group indentations.

This is useful in case you want different grouping width than 2 spaces.

const { Console } = require('console');
const customConsole = new Console({
  stdout: process.stdout,
  stderr: process.stderr,
  groupIndentation: 10
});

customConsole.log('foo');
// 'foo'
customConsole.group();
customConsole.log('foo');
//           'foo'

Contributed by rickyes - #32964.

maxStringLength option for util.inspect()

It is now possible to limit the length of strings while inspecting objects. This is possible by passing through the maxStringLength option similar to:

const { inspect } = require('util');

const string = inspect(['a'.repeat(1e8)], { maxStringLength: 10 });

console.log(string);
// "[ 'aaaaaaaaaa'... 99999990 more characters ]"

Contributed by rosaxny - #32392.

Stable N-API release 6

The following N-API features are now stable as part of the N-API 6 release:

Stable diagnostic reports

The Diagnostic Report feature is now stable and supports a new --report-compact flag to write the reports in a compact, single-line JSON format, more easily consumable by log processing systems than the default multi-line format designed for human consumption.

Increase of the default server headers timeout

The default value of server.headersTimeout for http and https servers was increased from 40000 to 60000 (60 seconds). This to accomodate for systems like AWS ELB that have a timeout of 60 seconds.

Contributed by Tim Costa - #30071.

Other changes

  • cli:
    • Added a --trace-sigint CLI flag that will print the current execution stack on SIGINT (legendecas) #29207.
  • crypto:
    • Various crypto APIs now support Diffie-Hellman secrets (Tobias Nießen) #31178.
  • dns:
    • Added the dns.ALL flag, that can be passed to dns.lookup() with dns.V4MAPPED to return resolved IPv6 addresses as well as IPv4 mapped IPv6 addresses (murgatroid99) #32183.
  • module
    • Added a new experimental API to interact with Source Map V3 data (Benjamin Coe) #31132.
  • worker:
    • Added support for passing a transferList along with workerData to the Worker constructor (Juan José Arboleda) #32278.
+66829 -68996

54 comments

1373 changed files

targos

pr closed time in a day

Pull request review commentnodejs/node-core-utils

git-node: add release promotion step

+'use strict';++const path = require('path');+const { promises: fs } = require('fs');+const semver = require('semver');++const { getMergedConfig } = require('./config');+const { runSync, runAsync } = require('./run');+const auth = require('./auth');+const PRData = require('./pr_data');+const PRChecker = require('./pr_checker');+const Request = require('./request');++const isWindows = process.platform === 'win32';++class ReleasePromotion {+  constructor(argv, cli, dir) {+    this.cli = cli;+    this.dir = dir;+    this.isLTS = false;+    this.prid = argv.prid;+    this.ltsCodename = '';+    this.date = '';+    this.config = getMergedConfig(this.dir);+  }++  async promote() {+    // In the promotion stage, we can pull most relevant data+    // from the release commit created in the preparation stage.+    await this.parseDataFromReleaseCommit();++    const { prid, cli, version } = this;++    // Verify that PR is ready to promote.+    const {+      jenkinsReady,+      githubCIReady,+      isApproved+    } = await this.verifyPRAttributes();++    cli.startSpinner('Verifying Jenkins CI status');+    if (!jenkinsReady) {+      cli.stopSpinner(+        `Jenkins CI is failing for #${prid}`, cli.SPINNER_STATUS.FAILED);+      const proceed = await cli.prompt('Do you want to proceed?');+      if (!proceed) {+        cli.warn(`Aborting release promotion for version ${version}`);+        return;+      }+    } else {+      cli.stopSpinner('Jenkins CI is passing');+    }++    cli.startSpinner('Verifying GitHub CI status');+    if (!githubCIReady) {+      cli.stopSpinner(+        `GitHub CI is failing for #${prid}`, cli.SPINNER_STATUS.FAILED);+      const proceed = await cli.prompt('Do you want to proceed?');+      if (!proceed) {+        cli.warn(`Aborting release promotion for version ${version}`);+        return;+      }+    } else {+      cli.stopSpinner('GitHub CI is passing');+    }++    cli.startSpinner('Verifying PR approval status');+    if (!isApproved) {+      cli.stopSpinner(+        `#${prid} does not have sufficient approvals`,+        cli.SPINNER_STATUS.FAILED);+      const proceed = await cli.prompt('Do you want to proceed?');+      if (!proceed) {+        cli.warn(`Aborting release promotion for version ${version}`);+        return;+      }+    } else {+      cli.stopSpinner(`#${prid} has necessary approvals`);+    }++    // Create and sign the release tag.+    const shouldTagAndSignRelease = await cli.prompt(+      'Tag and sign the release?');+    if (!shouldTagAndSignRelease) {+      cli.warn(`Aborting release promotion for version ${version}`);+      return;+    }+    this.secureTagRelease();++    // Set up for next release.+    cli.startSpinner('Setting up for next release');+    await this.setupForNextRelease();+    cli.stopSpinner('Successfully set up for next release');++    const shouldMergeProposalBranch = await cli.prompt(+      'Merge proposal branch into staging branch?');+    if (!shouldMergeProposalBranch) {+      cli.warn(`Aborting release promotion for version ${version}`);+      return;+    }++    // Merge vX.Y.Z-proposal into vX.x.+    cli.startSpinner('Merging proposal branch');+    this.mergeProposalBranch();+    cli.stopSpinner('Merged proposal branch');++    // Cherry pick release commit to master.+    const shouldCherryPick = await cli.prompt(+      'Cherry-pick release commit to master?', { defaultAnswer: true });+    if (!shouldCherryPick) {+      cli.warn(`Aborting release promotion for version ${version}`);+      return;+    }+    this.cherryPickToMaster();++    // There will be cherry-pick conflicts the Releaser will+    // need to resolve, so confirm they've been resolved before+    // proceeding with next steps.+    cli.separator();+    cli.info(`After cherry-picking:+      * The version macros in src/node_version.h should contain whatever values+      were previously on master.+      * NODE_VERSION_IS_RELEASE should be 0.+    `);+    cli.separator();+    const didResolveConflicts = await cli.prompt(+      'Finished resolving cherry-pick conflicts?', { defaultAnswer: true });+    if (!didResolveConflicts) {+      cli.warn(`Aborting release promotion for version ${version}`);+      return;+    }++    // Push release tag.+    const shouldPushTag = await cli.prompt('Push release tag?',+      { defaultAnswer: true });+    if (!shouldPushTag) {+      cli.warn(`Aborting release promotion for version ${version}`);+      return;+    }+    this.pushReleaseTag();++    // Promote and sign the release builds.+    const shouldPromote = await cli.prompt('Promote and sign release builds?',+      { defaultAnswer: true });+    if (!shouldPromote) {+      cli.warn(`Aborting release promotion for version ${version}`);+      return;+    }++    const defaultKeyPath = '~/.ssh/node_id_rsa';+    const keyPath = await cli.prompt(+      `Please enter the path to your ssh key (Default ${defaultKeyPath}): `,+      { questionType: 'input', defaultAnswer: defaultKeyPath });+    await this.promoteAndSignRelease(keyPath);++    cli.separator();+    cli.ok(`Release promotion for ${version} complete.\n`);+    cli.info(+      'To finish this release, you\'ll need to: \n' ++      ` 1) Check the release at: https://nodejs.org/dist/v${version}\n` ++      ' 2) Create the blog post for nodejs.org\n' ++      ' 3) Create the release on GitHub\n' ++      'Finally, proceed to Twitter and announce the new release!');+  }++  async verifyPRAttributes() {+    const { cli, prid, owner, repo } = this;++    const credentials = await auth({ github: true });+    const request = new Request(credentials);++    const data = new PRData({ prid, owner, repo }, cli, request);+    await data.getAll();++    const checker = new PRChecker(cli, data, { prid, owner, repo });+    const jenkinsReady = checker.checkJenkinsCI();+    const githubCIReady = checker.checkGitHubCI();+    const isApproved = checker.checkReviewsAndWait(new Date(), false);++    return {+      jenkinsReady,+      githubCIReady,+      isApproved+    };+  }++  async parseDataFromReleaseCommit() {+    const { cli } = this;++    const releaseCommitMessage = runSync(+      'git', ['log', '-n', '1', '--pretty=format:\'%s\'']).trim();++    const components = releaseCommitMessage.split(' ');++    // Parse out release date.+    const match = components[0].match(/\d{4}-\d{2}-\d{2}/);+    if (!match) {+      cli.error(`Release commit contains invalid date: ${components[0]}`);+      return;+    }+    this.date = match[0];++    // Parse out release version.+    const version = semver.clean(components[2]);+    if (!semver.valid(version)) {+      cli.error(`Release commit contains invalid semantic version: ${version}`);+      return;+    }++    this.version = version;+    this.stagingBranch = `v${semver.major(version)}.x-staging`;+    this.versionComponents = {+      major: semver.major(version),+      minor: semver.minor(version),+      patch: semver.patch(version)+    };++    // Parse out LTS status and codename.+    if (components.length === 5) {+      this.isLTS = true;+      this.ltsCodename = components[3];+    }+  }++  getCommitSha(position = 0) {+    return runSync('git', ['rev-parse', `HEAD~${position}`]).trim();+  }++  get owner() {+    return this.config.owner || 'nodejs';+  }++  get repo() {+    return this.config.repo || 'node';+  }++  get username() {+    return this.config.username;+  }++  async secureTagRelease() {+    const { version, isLTS, ltsCodename } = this;++    const secureTag = path.join(+      __dirname,+      '../node_modules/.bin/git-secure-tag' + (isWindows ? '.cmd' : '')+    );++    const releaseInfo = isLTS ? `'${ltsCodename}' (LTS)` : '(Current)';
    const releaseInfo = isLTS ? `${ltsCodename} (LTS)` : '(Current)';

There are already quotes around the codename in the commit message

codebytere

comment created time in a day

pull request commentnodejs/node-core-utils

git-node: add release promotion step

I'm giving it a try now with 12.17.0

codebytere

comment created time in a day

issue openednodejs/build

AIX CI machines cannot access raw.githubusercontent.com

This is looking like some sort of infrastructure issue where the AIX CI machine doesn't appear to be able to download https://raw.githubusercontent.com/ URLs.

e.g.

Running AIX CI on v12.x to check if that works: https://ci.nodejs.org/job/node-test-commit-aix/30710/

(Note this build passed)

...
+ curl https://raw.githubusercontent.com/nodejs/build/master/jenkins/scripts/node-test-commit-pre.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0+ bash -xe

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
...
  0     0    0     0    0     0      0      0 --:--:--  0:01:14 --:--:--     0
curl: (28) Failed to connect to raw.githubusercontent.com port 443: A remote host did not respond within the timeout period.
...
if [ -x /home/iojs/build/workspace/node-test-commit-aix/nodes/aix71-ppc64/./node ] && [ -e /home/iojs/build/workspace/node-test-commit-aix/nodes/aix71-ppc64/./node ]; then /home/iojs/build/workspace/node-test-commit-aix/nodes/aix71-ppc64/./node  tools/doc/versions.js out/previous-doc-versions.json; elif [ -x `which node` ] && [ -e `which node` ] && [ `which node` ]; then `which node`  tools/doc/versions.js out/previous-doc-versions.json; else echo "No available node, cannot run \"node  tools/doc/versions.js out/previous-doc-versions.json\""; exit 1; fi;
Unable to retrieve https://raw.githubusercontent.com/nodejs/node/master/CHANGELOG.md. Falling back to /home/iojs/build/workspace/node-test-commit-aix/nodes/aix71-ppc64/CHANGELOG.md.
...

The tools/doc/versions.js tool falls back to the local copy of the CHANGELOG.md for non-release commits (which is why only the release commit build failed) to accommodate users with poor/firewalled Internet connections.

cc @nodejs/platform-aix

Originally posted by @richardlau in https://github.com/nodejs/node/pull/33197#issuecomment-633946700

created time in a day

pull request commentnodejs/node

v12.17.0 release proposal

AIX build succeeded

targos

comment created time in a day

pull request commentnodejs/node

v12.17.0 release proposal

Release: https://ci-release.nodejs.org/job/iojs+release/6061/

targos

comment created time in a day

pull request commentnodejs/node

v12.17.0 release proposal

OK, then can I build and promote the release?

targos

comment created time in a day

pull request commentnodejs/node

v12.17.0 release proposal

It failed 3 times in a row before I started bisecting. Here's a new run: https://ci.nodejs.org/job/node-test-commit-aix/30725/

targos

comment created time in a day

pull request commentnodejs/node

v12.17.0 release proposal

@richardlau I'm really puzzled now. My bisect session points to the release commit!

targos

comment created time in a day

delete branch targos/node

delete branch : v8-83-v14.x

delete time in a day

PR closed nodejs/node

[v14.x] deps: update V8 to 8.3 V8 Engine build v14.x

Backport of https://github.com/nodejs/node/pull/32831

v8.h diff: https://gist.github.com/targos/546a0475183c6a84f678e644faccdb08

+56858 -26321

16 comments

1522 changed files

targos

pr closed time in a day

pull request commentnodejs/node

[v14.x] deps: update V8 to 8.3

Landed in ffa785c959...c42cf505bd

targos

comment created time in a day

push eventnodejs/node

Michaël Zasso

commit sha 99f8d70092186df3b0d5523ab4f05f8318824059

deps: update V8 to 8.3.110.9 PR-URL: https://github.com/nodejs/node/pull/33376 Reviewed-By: Jiawen Geng <technicalcute@gmail.com>

view details

Michaël Zasso

commit sha f2ae868c7dbbc26dfb5e1455468f8f82362f572c

build: reset embedder string to "-node.0" PR-URL: https://github.com/nodejs/node/pull/33376 Reviewed-By: Jiawen Geng <technicalcute@gmail.com>

view details

Michaël Zasso

commit sha 3103d6893d92caf9aff96f2638214a015b827174

tools: update V8 gypfiles for V8 8.3 Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32831 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

cjihrig

commit sha 06b20130f6ae0df11572053a3edc6a440f941d8a

deps: update V8 dtrace & postmortem metadata Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32831 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

Refael Ackermann

commit sha d7ffafd49fd629167939e5b5bee9ef610bf7e0ca

deps: V8: un-cherry-pick bd019bd Original commit message: [testrunner] delete ancient junit compatible format support Testrunner has ancient support for JUnit compatible XML output. This CL removes this old feature. R=mstarzinger@chromium.org,jgruber@chromium.org,jkummerow@chromium.org CC=​machenbach@chromium.org Bug: v8:8728 Change-Id: I7e1beb011dbaec3aa1a27398a5c52abdd778eaf0 Reviewed-on: https://chromium-review.googlesource.com/c/1430065 Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Tamer Tas <tmrts@chromium.org> Cr-Commit-Position: refs/heads/master@{#59045} Refs: https://github.com/v8/v8/commit/bd019bdb725cebaa34327634d73936cd7003d17c Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32831 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

Ujjwal Sharma

commit sha 89ef96148b04ee192b06e8e6ee405ae99e146e5d

deps: patch V8 to run on older XCode versions Patch V8 (compiler/js-heap-broker.cc) to remove the use of an optional property, which is a fairly new C++ feature, since that requires a newer XCode version than the minimum requirement in BUILDING.md and thus breaks CI. Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32831 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

Refael Ackermann

commit sha 6643fcd70d37ed4c96fc660cca78402616cc031e

deps: V8: patch register-arm64.h Fixes a compilation issue on some platforms Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32831 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

Refael Ackermann

commit sha 69cd3e2645a80482c60486046cf7233f7a4b5165

deps: V8: forward declaration of `Rtl*FunctionTable` This should be semver-patch since actual invocation is version conditional. Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32831 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

Joao Reis

commit sha 40da98e7b91e879f084848f9522966fca2a0b2d8

deps: make v8.h compatible with VS2015 There is a bug in the most recent version of VS2015 that affects v8.h and therefore prevents compilation of addons. Refs: https://stackoverflow.com/q/38378693 Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32831 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

Michaël Zasso

commit sha ee1514af0ef18430b484967c1fc4e3b4b7e034a0

deps: V8: silence irrelevant warnings Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32831 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

Matheus Marchini

commit sha 97715536834568e7b1a235ac7d19367d27adba85

deps: patch V8 to run on Xcode 8 Patch V8 (wasm/wasm-module.cc) to remove const qualifier from type passed to template call of `OwnedVector::Of`. Xcode 8 can't convert 'OwnedVector<unsigned char>' to 'OwnedVector<const unsigned char>' when returning from a function (which is likely a bug on Xcode, considering this worked on the prior version of Xcode as well as newer versions). This workaround shouldn't affect the application, since the const qualifier is preserved in the AsmJsOffsetInformation::encoded_offset_. There's also a V8 test passing a const-qualified type to ::Of, but since we don't test V8 on Xcode 8, it should be fine to leave it as is. Signed-off-by: Matheus Marchini <mmarchini@netflix.com> Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32831 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

cjihrig

commit sha 3db95be8953262fb2f06f98fafef4be504f3849f

deps: fix V8 8.3 on SmartOS Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32831 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

Milad Farazmand

commit sha 87a04eeb66dd3a6df4b7bff6ba452f8426e3cbbc

deps: V8: cherry-pick e1eac1b16c96 Original commit message: Fix compilation error with devtoolset-8 We are compiling V8 using devtoolset-8 and it is generating a new compilation error related to String Truncation: error: ‘char* strncpy(char*, const char*, size_t)’ output truncated copying between 1 and 15 bytes from a string of length 15 [-Werror=stringop-truncation] strncpy(buffer, unicode_utf8, i); Which basically means the null terminating character was not added to the end of the buffer: https://developers.redhat.com/blog/2018/05/24/detecting-string-truncation-with-gcc-8/ This CL will changes 2 uses of "strncpy" to "memcpy" as strings are being copied partially and `\n` being added at a later stage. Change-Id: I3656afb00463d70ddb8700a487a1978b793e1d09 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2155038 Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#67277} Refs: https://github.com/v8/v8/commit/e1eac1b16c966879102c2310d7649637227eaa02 Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32831 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

Michaël Zasso

commit sha e23c923205310c263117b9570aefb47b20e6b6db

deps: V8: cherry-pick 3f8dc4b2e5ba Original commit message: [intl] Remove soon-to-be removed getAllFieldPositions Needed to land ICU67.1 soon. Bug: v8:10393 Change-Id: I3c7737ca600d6ccfdc46ffaddfb318ce60bc7618 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2136489 Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/master@{#67027} Refs: https://github.com/v8/v8/commit/3f8dc4b2e5baf77b463334c769af85b79d8c1463 Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32831 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

Michaël Zasso

commit sha a8e4e98eb6220f7eaedab9de48ff3766e0dc9d6a

deps: V8: cherry-pick e29c62b74854 Original commit message: [arraybuffer] Clean up BackingStore even if it pointer to nullptr For a zero-length BackingStore allocation, it is valid for the underlying memory to be a null pointer. However, some cleanup is still necessary, since the BackingStore may hold a reference to the allocator itself, which needs to be released when destroying the `BackingStore` instance. Change-Id: I1f168079d39e4592d2fde31fbe5f705586690e85 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2169646 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67420} Refs: https://github.com/v8/v8/commit/e29c62b7485462c1ce8f4129b26e7f7a4d4b193c Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32831 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

Michaël Zasso

commit sha cf466bc7fff65af8947baa4bb8e5b7eb094f957b

deps: V8: cherry-pick 74d50c5063b3 Original commit message: FreeBSD: add missing include of pthread_np.h This is necessary for the pthread_attr_get_np function. Change-Id: I01cfe075a7c86909e8cf37eb7f7c5d44fa044975 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2188310 Commit-Queue: Michaël Zasso <mic.besace@gmail.com> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Auto-Submit: Michaël Zasso <mic.besace@gmail.com> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67660} Refs: https://github.com/v8/v8/commit/74d50c5063b39ac97ad4a032d333493882d72c41 Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32831 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

Matheus Marchini

commit sha 5045aaf63b9d792b6ce686efbdc8016f57f665ed

test: fix test-zlib-unused-weak on V8 8.2 Ref: https://chromium-review.googlesource.com/c/v8/v8/+/1997438 Ref: https://chromium-review.googlesource.com/c/v8/v8/+/2010107 Ref: https://github.com/nodejs/node-v8/issues/144 Signed-off-by: Matheus Marchini <mmarchini@netflix.com> Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32831 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

Michaël Zasso

commit sha 38fd93c9a8669929dac09ad9441937bc0bb58c6c

test: stop testing --interpreted-frames-native-stack for s390x V8 does not support the flag on this architecture anymore. Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32831 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

view details

Anna Henningsen

commit sha 4c8e405545b1ee6249292a675f742bdd4f1b76ef

deps: V8: cherry-pick 2db93c023379 Original commit message: [api] Add embedder-vs-V8 build configuration compatibility check v8::V8::Initialize() will fail with meaningful error upon build configuration mismatch. Bug: v8:10041 Change-Id: Ic69ba68ef1764b356beef0f204fe58b45bae3c49 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144953 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67116} Refs: https://github.com/v8/v8/commit/2db93c0233790b2cfb9e80fa1fa89dee18c7109f Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32885 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org> Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de> Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>

view details

Anna Henningsen

commit sha c7c63c6bbc7fa0b67d74e72486d9657753bfb5b3

deps: V8: cherry-pick fa3e37e511ee Original commit message: [api] remove deprecated snapshot APIs R=verwaest@chromium.org Fixed: v8:7463 Change-Id: I3d0127865ad0430d38124c3ad8ed3bc63ba4e6d3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2149421 Auto-Submit: Yang Guo <yangguo@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#67169} Refs: https://github.com/v8/v8/commit/fa3e37e511ee242e8fa0ca09f5425dea4d7cecff Backport-PR-URL: https://github.com/nodejs/node/pull/33376 PR-URL: https://github.com/nodejs/node/pull/32885 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org> Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de> Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>

view details

push time in a day

pull request commentnodejs/node

v12.17.0 release proposal

@richardlau thanks! should I still start to bisect?

targos

comment created time in a day

issue commentnodejs/gyp-next

Flaky tests

I don't have python 3.5 to test locally

rvagg

comment created time in a day

issue commentnodejs/gyp-next

Flaky tests

It's probably the same problem as https://github.com/nodejs/gyp-next/pull/7

rvagg

comment created time in a day

IssuesEvent

pull request commentnodejs/node

v12.17.0 release proposal

@nodejs/releasers what do you suggest here? This seems to introduce a bug on AIX but I have no idea what could be the cause...

targos

comment created time in 2 days

push eventtargos/multiloader

Michaël Zasso

commit sha 2085974fa9736a458f01534836c3e3309e34d2f4

fix: enable top-level await in test runner

view details

push time in 2 days

push eventtargos/multiloader

Michaël Zasso

commit sha fc221052626d46642bab01075a6fcb64f2e88975

some more fixes

view details

push time in 2 days

pull request commentnodejs/node

v12.17.0 release proposal

Running AIX CI on v12.x to check if that works: https://ci.nodejs.org/job/node-test-commit-aix/30710/

targos

comment created time in 2 days

Pull request review commentnodejs/node

events: initial implementation of experimental EventTarget

+'use strict';

@benjamingr if you'd like to do this, PTAL at https://github.com/nodejs/node/tree/master/test/wpt#how-to-add-tests-for-a-new-module

jasnell

comment created time in 2 days

pull request commentnodejs/node

fs: add mkstemp functions

Test failed on AIX: https://ci.nodejs.org/job/node-test-commit-aix/30706/nodes=aix71-ppc64/testReport/junit/(root)/test/parallel_test_fs_error_messages/

Any idea why?

targos

comment created time in 2 days

pull request commentnodejs/node

[v14.x] deps: update V8 to 8.3

Yes, I'll land it later or tomorrow.

targos

comment created time in 2 days

pull request commentnodejs/node

deps: update icu to include tzdata2020a

This will need a backport to land on v12.x

codebytere

comment created time in 2 days

push eventtargos/node

Michaël Zasso

commit sha 52da9082b89dc5c28390fe2c1427d8d45778d97f

Update doc/api/fs.md

view details

push time in 2 days

Pull request review commentnodejs/node

fs: add mkstemp functions

 characters directly to the `prefix` string. For instance, given a directory `prefix` must end with a trailing platform-specific path separator (`require('path').sep`). +### `fsPromises.mkstemp(prefix[, options])`+<!-- YAML+added: REPLACEME+-->++* `prefix` {string}+* `options` {string|Object}+  * `encoding` {string} **Default:** `'utf8'`+* Returns: {Promise}++Creates and opens a unique empty temporary file, and fulfills the `Promise` with+an object that contains the created file path and a `FileHandle` object. A+unique file name is generated by appending six random characters to the end of+the provided `prefix`. Due to platform inconsistencies, avoid trailing `X`+characters in `prefix`. Some platforms, notably the BSDs, can return more than+six random characters, and replace trailing `X` characters in `prefix` with+random characters.++The optional `options` argument can be a string specifying an encoding, or an+object with an `encoding` property specifying the character encoding to use.++```js+async function createRandomFile() {+  const result = await fsPromises.mkstemp(path.join(os.tmpdir(), 'foo-'));+  console.log(result.path);+  // Prints: /tmp/foo-itXde2 or C:\Users\...\AppData\Local\Temp\foo-itXde2+  await result.handle.close();
  await result.handle.close();
  // Closes the file descriptor but does not remove the file.

@benjamingr ?

targos

comment created time in 2 days

pull request commentnodejs/node

fs: add mkstemp functions

I think a disposer API for the promises side would have been nicer. I maintain tmp-promise and in my experience that's the more popular API.

I'd also steal some tests from tmp but that can be in a follow up PR :]

I don't understand what you are suggesting, sorry.

targos

comment created time in 2 days

push eventtargos/node

Michaël Zasso

commit sha f57b726d030a4da1409bd82f2503ce8e762ebc3e

Update doc/api/fs.md Co-authored-by: Benjamin Gruenbaum <inglor@gmail.com>

view details

push time in 2 days

push eventtargos/node

Michaël Zasso

commit sha bf9ce89b87d9397e1711b8c24dbb34e8bb430393

fixup! fixup! fixup! fixup! fs: add mkstemp functions

view details

push time in 2 days

pull request commentnodejs/node

v12.17.0 release proposal

/cc @nodejs/platform-aix

There's an issue with CI, can you please take a look?

https://ci.nodejs.org/job/node-test-commit-aix/30702/nodes=aix71-ppc64/console

16:34:38 if [ -d doc/api/assets ]; then cp -r doc/api/assets out/doc/api; fi;
16:34:39 if [ -x /home/iojs/build/workspace/node-test-commit-aix/nodes/aix71-ppc64/./node ] && [ -e /home/iojs/build/workspace/node-test-commit-aix/nodes/aix71-ppc64/./node ]; then /home/iojs/build/workspace/node-test-commit-aix/nodes/aix71-ppc64/./node  tools/doc/versions.js out/previous-doc-versions.json; elif [ -x `which node` ] && [ -e `which node` ] && [ `which node` ]; then `which node`  tools/doc/versions.js out/previous-doc-versions.json; else echo "No available node, cannot run \"node  tools/doc/versions.js out/previous-doc-versions.json\""; exit 1; fi;
16:35:09 Error: socket hang up
16:35:09     at connResetException (internal/errors.js:609:14)
16:35:09     at TLSSocket.socketCloseListener (_http_client.js:400:25)
16:35:09     at TLSSocket.emit (events.js:327:22)
16:35:09     at net.js:674:12
16:35:09     at TCP.done (_tls_wrap.js:566:7) {
16:35:09   code: 'ECONNRESET'
16:35:09 }
16:35:09 gmake[2]: *** [Makefile:794: out/previous-doc-versions.json] Error 1
16:35:09 gmake[1]: *** [Makefile:752: doc-only] Error 2
16:35:09 gmake: *** [Makefile:587: run-ci] Error 2
targos

comment created time in 2 days

Pull request review commentnodejs/node

fs: add mkstemp functions

+'use strict';++const common = require('../common');+const assert = require('assert');+const fs = require('fs');+const path = require('path');++const tmpdir = require('../common/tmpdir');+tmpdir.refresh();++const tmpFile = fs.mkstempSync(path.join(tmpdir.path, 'foo.'));++assert.match(path.basename(tmpFile.path), /^foo\.[0-9a-z]{6}$/i);

I see in the failure that _ is another possible character. Is there a reliable list or should I just assert that there are 6 chars?

targos

comment created time in 2 days

issue commentnodejs/node-core-utils

`git node backport v8` does not work on macOS

I vaguely remember that git apply didn't always leave conflict markers, but maybe I'm wrong. And it's probably better to have something that work sometimes on all platforms than never on macOS

dominykas

comment created time in 2 days

issue commentnodejs/node-core-utils

`git node backport v8` does not work on macOS

@dominykas what did git apply -3 leave?

dominykas

comment created time in 2 days

Pull request review commentnodejs/node

fs: add mkstemp functions

 static void Mkdtemp(const FunctionCallbackInfo<Value>& args) {   } } +static void Mkstemp(const FunctionCallbackInfo<Value>& args) {+  Environment* env = Environment::GetCurrent(args);+  Isolate* isolate = env->isolate();++  const int argc = args.Length();+  CHECK_GE(argc, 2);++  BufferValue tmpl(isolate, args[0]);+  CHECK_NOT_NULL(*tmpl);++  const enum encoding encoding = ParseEncoding(isolate, args[1], UTF8);++  FSReqBase* req_wrap_async = GetReqWrap(args, 2);+  if (req_wrap_async != nullptr) {  // mkstemp(tmpl, encoding, req)+    AsyncCall(env,+              req_wrap_async,+              args,+              "mkstemp",+              encoding,+              AfterMkstemp,+              uv_fs_mkstemp,+              *tmpl);+  } else {  // mkstemp(tmpl, encoding, undefined, ctx)+    CHECK_EQ(argc, 4);+    FSReqWrapSync req_wrap_sync;+    FS_SYNC_TRACE_BEGIN(mkstemp);+    SyncCall(env, args[3], &req_wrap_sync, "mkstemp", uv_fs_mkstemp, *tmpl);+    FS_SYNC_TRACE_END(mkstemp);+    const char* path = req_wrap_sync.req.path;+    int fd = req_wrap_sync.req.result;++    Local<Value> error;+    MaybeLocal<Value> rc = StringBytes::Encode(isolate, path, encoding, &error);+    if (rc.IsEmpty()) {+      Local<Object> ctx = args[3].As<Object>();+      ctx->Set(env->context(), env->error_string(), error).Check();+      return;+    }++    Local<Object> result = Object::New(isolate);+    result->Set(env->context(), env->path_string(), rc.ToLocalChecked())+        .Check();+    result->Set(env->context(), env->fd_string(), Integer::New(isolate, fd))+        .Check();+    args.GetReturnValue().Set(result);

fixed :)

targos

comment created time in 2 days

push eventtargos/node

Michaël Zasso

commit sha 744a47672fab85d3013bc55850a97c0544eec6c9

fixup! fixup! fixup! fs: add mkstemp functions

view details

push time in 2 days

push eventtargos/node

Michaël Zasso

commit sha e0475885778025fd0025aa7c6d44e66f247e2917

fixup! fixup! fs: add mkstemp functions

view details

push time in 2 days

push eventtargos/node

Michaël Zasso

commit sha 308b6f92356d21a27a66b6a81175c683e67ce21c

fixup! fs: add mkstemp functions

view details

push time in 2 days

Pull request review commentnodejs/node

fs: add mkstemp functions

 static void Mkdtemp(const FunctionCallbackInfo<Value>& args) {   } } +static void Mkstemp(const FunctionCallbackInfo<Value>& args) {+  Environment* env = Environment::GetCurrent(args);+  Isolate* isolate = env->isolate();++  const int argc = args.Length();+  CHECK_GE(argc, 2);++  BufferValue tmpl(isolate, args[0]);+  CHECK_NOT_NULL(*tmpl);++  const enum encoding encoding = ParseEncoding(isolate, args[1], UTF8);++  FSReqBase* req_wrap_async = GetReqWrap(args, 2);+  if (req_wrap_async != nullptr) {  // mkstemp(tmpl, encoding, req)+    AsyncCall(env,+              req_wrap_async,+              args,+              "mkstemp",+              encoding,+              AfterMkstemp,+              uv_fs_mkstemp,+              *tmpl);+  } else {  // mkstemp(tmpl, encoding, undefined, ctx)+    CHECK_EQ(argc, 4);+    FSReqWrapSync req_wrap_sync;+    FS_SYNC_TRACE_BEGIN(mkstemp);+    SyncCall(env, args[3], &req_wrap_sync, "mkstemp", uv_fs_mkstemp, *tmpl);+    FS_SYNC_TRACE_END(mkstemp);+    const char* path = req_wrap_sync.req.path;+    int fd = req_wrap_sync.req.result;++    Local<Value> error;+    MaybeLocal<Value> rc = StringBytes::Encode(isolate, path, encoding, &error);+    if (rc.IsEmpty()) {+      Local<Object> ctx = args[3].As<Object>();+      ctx->Set(env->context(), env->error_string(), error).Check();+      return;+    }++    Local<Object> result = Object::New(isolate);+    result->Set(env->context(), env->path_string(), rc.ToLocalChecked())+        .Check();+    result->Set(env->context(), env->fd_string(), Integer::New(isolate, fd))+        .Check();+    args.GetReturnValue().Set(result);

I pushed a commit

targos

comment created time in 2 days

pull request commentnodejs/node

v12.17.0 release proposal

I added https://github.com/nodejs/node/pull/33307. I'm leaving out https://github.com/nodejs/node/pull/33488 because it hasn't been reviewed yet. It's semver-patch so can go in the next release.

targos

comment created time in 2 days

push eventnodejs/node

Paolo Insogna

commit sha ebd9090240ca912f126e354da559c068139928d8

http: disable headersTimeout check when set to zero PR-URL: https://github.com/nodejs/node/pull/33307 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Michaël Zasso

commit sha cd4ae7c92508a6dcfe2e62e686a62130fead3222

2020-05-26, Version 12.17.0 'Erbium' (LTS) Notable changes: * ECMAScript Modules - `--experimental-modules` flag removal * AsyncLocalStorage API (experimental) * REPL previews * REPL reverse-i-search * REPL substring-based search * Error monitoring * Monitoring `error` events * Monitoring uncaught exceptions * File system APIs * New function: `fs.readv` * Optional parameters in `fs.read` * Console `groupIndentation` option * `maxStringLength` option for `util.inspect()` * Stable N-API release 6 * Stable diagnostic reports * Increase of the default server headers timeout * New `--trace-sigint` CLI flag * Various crypto APIs now support Diffie-Hellman secrets * Added support for the `dns.ALL` flag in `dns.lookup()` * Added a new experimental API to interact with Source Map V3 data * Added support for passing a `transferList` along with `workerData` to the `Worker` constructor PR-URL: https://github.com/nodejs/node/pull/33197

view details

push time in 2 days

PR closed nodejs/node

[v12.x] Disable headers timeout http lts-watch-v10.x v12.x

Setting headersTimeout to 0 does not disable the checks as expected but rather makes any request fail immediately.

This PR fixes the problem. This should also be backported to 10.x. Node 13 and 14/master are fine since headersTimeout live now in HTTPParser which correctly checks for the value being greater than 0.

Checklist
  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] tests and/or benchmarks are included
  • [x] documentation is changed or added
  • [x] commit message follows commit guidelines
+57 -2

11 comments

3 changed files

ShogunPanda

pr closed time in 2 days

pull request commentnodejs/node

[v12.x] Disable headers timeout

Landed in ebd9090240ca. Thanks @ShogunPanda

ShogunPanda

comment created time in 2 days

push eventnodejs/node

Paolo Insogna

commit sha ebd9090240ca912f126e354da559c068139928d8

http: disable headersTimeout check when set to zero PR-URL: https://github.com/nodejs/node/pull/33307 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

push time in 2 days

issue commentnodejs/node-core-utils

git node land crash if ncu-config wasn't set

I think there was no config file (removed previously with git clean -fdx).

targos

comment created time in 2 days

pull request commentnodejs/node

fs: add mkstemp functions

/cc @addaleax

targos

comment created time in 2 days

created tagcheminfo/eslint-config-cheminfo-react

tagv5.0.0

Shared ESLint config for projects using React

created time in 2 days

push eventcheminfo/eslint-config-cheminfo-react

Michaël Zasso

commit sha eef537fdb115e02598336575cf043947e77dfdda

chore: update dependencies

view details

Michaël Zasso

commit sha e0f4f3149e1098ba619c109cc3a29c71127eaa74

5.0.0

view details

push time in 2 days

created tagcheminfo/eslint-config-cheminfo-typescript

tagv6.0.0

Shared ESLint config for TypeScript projects

created time in 2 days

push eventcheminfo/eslint-config-cheminfo-typescript

Michaël Zasso

commit sha 22c1c9acdbb28461a3fc3803bc57f0ff2fd662b8

chore: update dependencies

view details

Michaël Zasso

commit sha ce5e0cab7fb159cdc0e4aa2a9cda9e8bf62ebc2f

6.0.0

view details

push time in 2 days

created tagcheminfo/eslint-config

tagv4.0.0

Shared ESLint config for cheminfo and ml.js projects

created time in 2 days

push eventcheminfo/eslint-config

Michaël Zasso

commit sha 60017586cd0e2acf89a412dd8fff5bd5fd356d9d

chore: update dependencies

view details

Michaël Zasso

commit sha cd03c44fc851d89e9a7982f9c8d05eaad97f66b1

4.0.0

view details

push time in 2 days

push eventtargos/multiloader

Michaël Zasso

commit sha 35917a0406cadc7652c30911324acb5ac843951c

makeTempFile

view details

push time in 2 days

PR opened nodejs/node

fs: add mkstemp functions
  • fs.mkstemp and fs.mkstempSync return path and fd.
  • fsPromises.mkstemp returns path and handle.

@nodejs/fs

Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] tests and/or benchmarks are included
  • [x] documentation is changed or added
  • [x] commit message follows commit guidelines
+429 -5

0 comment

13 changed files

pr created time in 2 days

create barnchtargos/node

branch : mkstemp

created branch time in 2 days

push eventtargos/multiloader

Michaël Zasso

commit sha eb86fbdd282bab4728d3afa64de7443deefe1cca

fix file.read and file.readSync

view details

push time in 3 days

push eventtargos/multiloader

Michaël Zasso

commit sha 54b49c68be075ff142ac4bdf6872662cb365fd9d

fix fs

view details

push time in 3 days

push eventtargos/multiloader

Michaël Zasso

commit sha 3115c1342ebd054ec2f80929b1028eb702f96bbe

more shim

view details

push time in 4 days

push eventtargos/multiloader

Michaël Zasso

commit sha b1f52e468e0bbbdbe8e723b61ac973c11207c192

implement fs read, readSync and close

view details

push time in 4 days

push eventtargos/multiloader

Michaël Zasso

commit sha 116fdca4189af7e0f79fbc403513047f7ce1f903

refactor makeTestUrl

view details

Michaël Zasso

commit sha eb6afcc1c51b65d6557246244ac0e980ede35a3f

fix net

view details

Michaël Zasso

commit sha 3d525cc5d8c088f6c0c30f354decd5241367f5ed

improve fs shim

view details

push time in 4 days

push eventtargos/multiloader

Michaël Zasso

commit sha 2b471db459b5a738559da66afd01c74dbd5386cf

fix run-deno-tests and allow to filter tests

view details

Michaël Zasso

commit sha 908d58262e1931a3e3c5d762bdc87321679ee46b

include source maps and target newer ES version

view details

Michaël Zasso

commit sha ae2478f94e7059b9f6f68043de9354296b511f1e

implement basic net

view details

push time in 4 days

push eventtargos/deno

Andrey Trebler

commit sha 2d5abbe909071571def869bfc968f33cd62dbe83

fix(std/hash): SHA1 hash of Uint8Array (#5086)

view details

pontakornth

commit sha ce81064e4c78a5d6213aa19351281c6b86e3e1cb

docs(std): Fix typo (#5582)

view details

Bartek Iwańczuk

commit sha 9d63772fe5bacc8fa1e0a8cbb152a2f107ae268f

refactor: rewrite TS dependency analysis in Rust (#5029) This commit completely overhauls how module analysis is performed in TS compiler by moving the logic to Rust. In the current setup module analysis is performed using "ts.preProcessFile" API in a special TS compiler worker running on a separate thread. "ts.preProcessFile" allowed us to build a lot of functionality in CLI including X-TypeScript-Types header support and @deno-types directive support. Unfortunately at the same time complexity of the ops required to perform supporting tasks exploded and caused some hidden permission escapes. This PR introduces "ModuleGraphLoader" which can parse source and load recursively all dependent source files; as well as declaration files. All dependencies used in TS compiler and now fetched and collected upfront in Rust before spinning up TS compiler. To achieve feature parity with existing APIs this commit includes a lot of changes: * add "ModuleGraphLoader" - can fetch local and remote sources - parses source code using SWC and extracts imports, exports, file references, special headers - this struct inherited all of the hidden complexity and cruft from TS version and requires several follow up PRs * rewrite cli/tsc.rs to perform module analysis upfront and send all required source code to TS worker in one message * remove op_resolve_modules and op_fetch_source_files from cli/ops/compiler.rs * run TS worker on the same thread

view details

Matt Dumler

commit sha 7863d611fcb26b6f2f8a911babb839584668f936

Update `docs/getting_started/permissions.md` (#5574) Aligned the example wording more closely with that in the `first_steps.md` document, and made other minor edits/corrections.

view details

Richard Lemaster

commit sha af09ba005633ef3b7bae8bb511d1e526cb3aa61b

Update style_guide.md (#5576)

view details

Matt Dumler

commit sha b3a216790a64db1e49ce8d977930aacbe6c7178a

Update `docs/getting_started/first_steps.md` (#5573)

view details

Bartek Iwańczuk

commit sha f6caf4883dc507d9aa7f222868f5e7f844d303f3

fix: disable test using 019_media_types (#5589) This commit disabled flaky test in cli/module_graph.rs. The test uses 019_media_types.ts which was known to be flaky for some time. Test should be reenabled once test HTTP server is rewritten to Rust.

view details

Ryan Dahl

commit sha 2a038eafcd1bd715f865e3b4642575af05893dc5

Revert "Fix definition of URL constructor (#5521)" (#5564) This reverts commit 63bc468365bceda929a39b5eb93b605e2dc2bd9c.

view details

Ali Hasani

commit sha c3ec16535f55030ded8d76a82f0e1feaa1c8a3de

Make Deno.remove() work with directory symlinks on windows (#5488)

view details

Nayeem Rahman

commit sha 93c21646739a46a9710be9d580256e18bee740c0

Fix URL encoding (#5557)

view details

Nayeem Rahman

commit sha 76ee5c780848a922dfc0ab8ac48096ab2262cc4a

docs: Clarify external code vendoring (#5597)

view details

Matt Dumler

commit sha 88b24261ba467c20d4ef90224b07c19a71398f0f

adjust docs (#5598)

view details

Ali Hasani

commit sha 6072755eadb7342a409f43260e5a17b956703a1c

Implement Deno.symlink() for windows (#5533)

view details

buckle2000

commit sha 1be7ec47ac3b6e63be2b03245a26e060b8268b5e

Mark Deno.pid and Deno.noColor as const (#5593)

view details

uki00a

commit sha cdc9323cccdee544562712018f722026bdfbbd6c

fix: REPL does not exit properly when close() is called (#5451)

view details

Speykious

commit sha 9752b853ddac3ba41378d0ae8a8604a28e285ffb

Provide better ANSI colorized output when inspecting objects (#5404)

view details

zfx

commit sha 7589d4d7c4a7c95298268eb8bea0e808feb0c6a9

fix(multipart): fix error when parsing file name in utf8 format (#5428)

view details

moumni

commit sha 949061c4b68e41aa93da97125cd15ad8c9e7f44f

fix url (#5637)

view details

Ryan Dahl

commit sha 0fb5f23466a84835cb1b4202d06ec53dc1592961

fix(doc): crash on formatting type predicate (#5651)

view details

Marcos Casagrande

commit sha 62c34bc21e8864ec5701ad493c73224367627580

fix(std/node) improve fs.close compatibility (#5649)

view details

push time in 4 days

issue closednodejs/node

error using npm with escape character in user path folder

hi unfortunately i have and & in my username in windows and appdata path in my system is = c:\users\s&a.... when i want to run "ng upate" on my app or any other app with powershell they give me an error like this:

Installing packages for tooling via npm.
Error: EPERM: operation not permitted, mkdir 'C:\Users\s'
The system cannot find the path specified.
An unhandled exception occurred: Package install failed, see above.
See "C:\Users\s&a\AppData\Local\Temp\ng-3iALVs\angular-errors.log" for further details.

i try to rewrite $ENV:APPDATA in my powershell but that was not helpful in cmd i got this error:

'a\AppData\Roaming\npm\' is not recognized as an internal or external command,
operable program or batch file.
internal/modules/cjs/loader.js:1032
  throw err;
  ^

Error: Cannot find module 'C:\Users\s\node_modules\@angular\cli\bin\ng'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:1029:15)
    at Function.Module._load (internal/modules/cjs/loader.js:898:27)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

and cant update ro install any thing my node version = 14.3.0 is there any suggestion to fix this issue?

closed time in 4 days

IR4N0nY

issue commentnodejs/node

error using npm with escape character in user path folder

Hello,

This is not really an issue with Node.js, but with a script generated by npm when a CLI is installed. I do not know if or how this can be fixed, but here's the package that creates the .cmd wrappers for npm "bin" scripts. An issue is already opened there: https://github.com/npm/cmd-shim/issues/45

IR4N0nY

comment created time in 4 days

push eventtargos/gyp-next

Michaël Zasso

commit sha 5ebb05cd15de0e53f0dae931d9d9d40f8f3200cf

fixup! chore: fix new issues reported by linter

view details

push time in 4 days

push eventtargos/gyp-next

Michaël Zasso

commit sha 198af3de11b9ae9626974ffb309a247759d8c4e8

fixup! feat: port "add support for MSVC cross-compilation" from node

view details

Michaël Zasso

commit sha 22fa4b1a5a30ee3823c7e0820c9e2903bd8d5a95

chore: fix new issues reported by linter

view details

push time in 4 days

CommitCommentEvent
CommitCommentEvent
CommitCommentEvent

PR opened nodejs/gyp-next

feat: port "add support for MSVC cross-compilation" from node

Original commit message:

tools,gyp: add support for MSVC cross-compilation

This change means that GYP can now generate two sets of projects: one
exclusively for a host x64 machine and one containing a mix of x64 and
Arm targets. The names of host targets are fixed up to end with
_host.exe, and any actions involving them are fixed up. This allows
compilation of Node on an x64 server for a Windows on Arm target.

Closes: https://github.com/nodejs/gyp-next/issues/40

+79 -40

0 comment

1 changed file

pr created time in 4 days

more