$ the-wire · showcase
npm 12 lands in node, histogram.diff() for perf_hooks
By RepoJournal · Filed · About Node.js · Composed from the cited sources · methodology
Node's dependency tree picked up npm 12.1.0 with its first set of breaking CLI changes, while perf_hooks gained a non-destructive way to measure interval histograms.
deps: upgrade npm to 12.1.0 nodejs/node
The bundled CLI jumps to 12.1.0, folding in 12.0.0 through 12.1.0, and 12.0.0 carries breaking changes: `npm view --json` now always returns an array, and `npm sbom --sbom-f` format handling changed. Anything parsing the output of `npm view --json` in a script or CI step needs to handle an array where a bare object used to come back.
perf_hooks: add histogram.diff() nodejs/node
James M Snell added `histogram.diff(other)`, which returns a new read-only Histogram holding only the values recorded after an earlier snapshot was taken, leaving both histograms untouched. The alternative paths were worse: `reset()` wipes the values for every other consumer of the histogram, and `subtract()` silently produces a wrong result if the source was reset in between.
deps: V8: backport 9fb4444bfc46 nodejs/node
A V8 backport adds the build flag `v8_enable_temporal_systemicu`, off by default, which removes references to the internal ICU `udatamem.h` header. Turning it on is what lets Temporal compile against a system ICU or with no ICU at all.
test: accept ENOTEMPTY from libc++ in test-fs-rm nodejs/node
test-fs-rm previously tolerated ENOTEMPTY from `fs.rmSync()` only on macOS, but the behavior comes from libc++ rather than the OS: libc++ before LLVM 23 drops a child's EACCES and reports the parent's ENOTEMPTY instead. The test now accepts it more broadly, since a Linux build against libc++ fails as non-root today and macOS will start reporting EACCES once it ships the fixed library.
test: enable trace_events tests with perfetto nodejs/node
The `trace_events` suite moved to its own `test/trace_events` directory and now converts Perfetto binary traces to JSON with `trace_processor_shell` to verify exports; `make trace_processor` fetches the matching tool version. Elsewhere, nodejs.org bumped its nvm reference to v0.40.8.
Action items