Skip to content

chore(deps): update dependency nub to v0.9.0 - #46

Merged
lzm0x219 merged 1 commit into
mainfrom
renovate/nub-0.x
Sep 8, 2026
Merged

chore(deps): update dependency nub to v0.9.0#46
lzm0x219 merged 1 commit into
mainfrom
renovate/nub-0.x

Conversation

@renovate

@renovate renovate Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
nub (source) 0.8.30.9.0 age confidence

Release Notes

nubjs/nub (nub)

v0.9.0: Nub 0.9.0

Compare Source

Nub now applies a packageExtensions compatibility database to every install, repairing packages whose published code imports dependencies their own manifest never declares.

[!IMPORTANT]
Two package.json root fields changed, and one of them now errors. The top-level build allowlist is renamed allowBuildsallowScripts, matching the map npm 12 reads from the same slot (npm/rfcs#868); a project still carrying a top-level allowBuilds is refused with ERR_NUB_ALLOW_BUILDS_RENAMED rather than warned, because honoring neither key would silently drop the map's explicit false denials. pnpm's own allowBuilds in pnpm-workspace.yaml or under package.json#pnpm is untouched. Separately, auditConfig, allowUnusedPatches and allowNonAppliedPatches are no longer read from the package.json root — no package manager reads any of the three there, and nub audit --ignore <id> already covers the audit case.

Dependency compatibility database

A package whose published code imports something its manifest never declares resolves under npm's flat node_modules — the upward directory walk finds a copy something else installed — and fails under an isolated layout. packageExtensions repairs the manifest at resolve time.

Change What it does PR
Ecosystem catalogs applied The vendored Yarn database plus pnpm's additions, 161 entries, were gated on the embedder being standalone aube, so Nub applied none of them. nub install && node -e 'require("reactcss")' failed with Cannot find module 'react'; it now resolves. #​905
Derived database bundled Adds the machine-derived database published as @nubjs/extensions, produced by running Nub's phantom detector over the 10,000 most-downloaded packages. It is a strict superset of Yarn's. Of the 654 entries Yarn lacks, 25 add a hard dependencies edge and the rest are optional peers that install nothing and only repair strict layouts. #​907
Lockfile reuse on drift A packageExtensions edit discarded the lockfile but still handed the old graph to the resolver as a reuse hint, so the edit rewrote the checksum, installed nothing and reported "Already up to date". The hint is now withheld on real drift. #​906

Both layers are declined together by ignore-compatibility-db=true. Neither is read by the lockfile packageExtensionsChecksum, so a database refresh cannot drift a lockfile or abort a frozen install.

The nub export condition

Nub is a registered WinterTC runtime key, so a package can carry a nub branch in its exports map the way it carries bun or deno ones. Every CLI-augmented run now passes --conditions=nub to Node, alongside whatever the project declares in nub.jsonc or a tsconfig customConditions. Conditions are a set, so a package with no nub key resolves exactly as it does on plain Node.

Compat mode is unaffected: --node and NODE_COMPAT both skip the option builder entirely, so a compat run keeps Node's own condition set. The standalone @nubjs/loader also leaves the condition set alone, because its contract is that a file resolves identically under it, under tsx, and under plain Node. (#​913)

Package manager

Area What changed PR
pnpmfile preResolution runs on every install and receives pnpm's lockfile shape #​837
npm lockfile A link: directory dependency emits its link pair #​848
npm workspaces Importer detection fixed, and afterAllResolved gets pnpm's lockfile shape #​855
Manifests Duplicate package manifest fields are accepted rather than rejected #​718
Manifests package.json line endings and the EOF newline are preserved on write #​583
Lifecycle Dependency lifecycle builds run in dependency order #​727
Store Remix 3 projects get a project-local store #​849
Environment Installs degrade gracefully inside coding-agent sandboxes #​854

Runtime

Area What changed PR
Worker threads --js-defer-import-eval is injected from the load hook instead of argv, and the argv-only flag signal now survives the worker-thread boundary — a Next.js 16 and Turbopack build died on the previous shape #​856, #​830
Standalone loader The CommonJS cache is preserved under standalone loader imports #​892
Transpiler Inspected source is reused for JavaScript lowering #​897
Windows Script-environment casing fix #​830

Startup

  • The launcher probes the payload map instead of scanning it per directory (#​903).
  • A warm start stats the extracted tree in parallel (611524e).

Internals

  • The vendored engine syncs upstream aube v2.2.9, and nub-cli moves to usage-rs (#​879).
  • The phantom detector that derives the extensions database no longer reports a package's own baseUrl imports as phantoms (#​895), walks legacy deep-path entry points for packages without an exports map (#​891), fetches metadata from the abbreviated packument (#​888), and records the file each phantom reference was found in (#​910).
  • Dependencies deduped and the registry primer compacted (#​851).
  • Documentation copy pass across the docs site (#​850).
  • The docs runner section splits into top-level nub run and nubx pages, with the four old URLs redirecting (#​909).
  • The nub agent docs slug test derives its page list from the docs tree, so a docs move no longer drags the Rust matrix onto a docs-only pull request (#​911).
  • The setup-nub GitHub Action documentation covers installing from the release archive and the shim input (38b1509).

What's Changed

New Contributors

Full Changelog: nubjs/nub@v0.8.3...v0.9.0


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the dependencies label Sep 7, 2026
@lzm0x219
lzm0x219 merged commit 0a8623f into main Sep 8, 2026
2 checks passed
@lzm0x219
lzm0x219 deleted the renovate/nub-0.x branch September 8, 2026 15:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant