← Blog
The Nub Team

Nub 0.9.7

Each test file runs once again, URL, git and file dependencies keep their whole manifest during install, and two compat-mode launch failures are fixed.

Nub 0.9.7 runs each nub --test file once again, keeps the whole manifest of URL, git and file: dependencies during install, and fixes two compat-mode launch failures.

Runtime

PRAreaWhat changed
#993nub --testEach test file runs once. 0.9.5 and 0.9.6 ran every test file twice.
#993Threadpool startuplibuv's threadpool is built on a private loop, so user code no longer sees a startup fs.access request: process.getActiveResourcesInfo() and async_hooks match plain Node, and the event loop exits on the same turn.
#993Array iteratorA script that deletes Array.prototype[Symbol.iterator] and then imports a module no longer crashes in Nub's load hook.
#1006Nested invocationsA nub command started beneath the node shim, --node or nodeCompat runs as Nub instead of on plain Node (#1005). A NODE_COMPAT set by the user is honored as before.
#1007Compat mode on macOSWith TMPDIR unset, a compat-mode run could exit with code 137 before Node started.

Package manager

URL tarball, git and file: dependencies keep their whole manifest during resolution, so they install the way registry packages do (#963):

  • optionalDependencies are filtered by platform, required peers are installed, bundled dependencies are not resolved again, and os, cpu and libc apply.
  • nub.lock and the other portable lockfiles record every platform's optional URL tarball with its integrity, as npm and pnpm do, and only the host's variant is installed. An optional URL tarball that fails to download is skipped with a warning.
  • A direct URL package keeps its platform and peer metadata after the lockfile is written and read back.
  • Two nub.lock round-trip failures are fixed: a long URL-keyed entry was written on one line and failed the next install with expected struct RawSnapshot, and a scoped URL dependency was read as an npm alias.

The full release notes list every change in this release.

Get started

View repo