Skip to content

chore(deps): update dependency @nubjs/nub to v0.10.0 - #264

Merged
renovate[bot] merged 1 commit into
mainfrom
renovate/nubjs-nub-0.x
Nov 10, 2026
Merged

renovate[bot] merged 1 commit into
mainfrom
renovate/nubjs-nub-0.x

Conversation

@renovate

@renovate renovate Bot commented Nov 10, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
@nubjs/nub (source) 0.9.7 → 0.10.0 age confidence

Release Notes

nubjs/nub (@​nubjs/nub)

v0.10.0: Nub 0.10.0

Compare Source

Nub 0.10.0 brings dependency build scripts and --filter in line with pnpm 12, writes pnpm lockfiles that pnpm accepts in more layouts, and backfills util.debounce, util.throttle and the JSON.parse options proposal.

[!IMPORTANT]
Five changes can surface in an existing project:

  • An unapproved dependency build script fails the install with ERR_NUB_IGNORED_BUILDS and exit 1. strictDepBuilds=false restores the warning (#​1050)
  • A git dependency with a prepare script builds only when approved, and otherwise fails with ERR_NUB_GIT_DEP_PREPARE_NOT_ALLOWED (#​1045)
  • --filter ./packages selects only a project whose directory is packages. Use ./packages/* or ./packages/** for the projects under it (#​1056)
  • A --filter that selects no project exits 0, and --fail-if-no-match exits 1 (#​1064)
  • nub rebuild <pkg> no longer approves the package it names (#​1050)

Dependency build scripts

An install that meets a build script nobody has approved now fails, as under pnpm 12. It fails last, once node_modules is linked and the approved builds and the project's own scripts have run. Global installs and nubx stay non-strict.

$ nub install
dependencies:
+ core-js@3.40.0

ERR_NUB_IGNORED_BUILDS

  × Ignored build scripts: core-js@3.40.0
  help: Run `nub approve-builds` to pick which dependencies may run their
        build scripts, or set `strictDepBuilds=false` to install without them.
Area What changed Link
Denials nub approve-builds '!pkg' and --allow-build='!pkg' record a denial, and --allow-build=pkg refuses a package the project denies. An explicit false outranks dangerouslyAllowAllBuilds. #​1050
Settings dangerouslyAllowAllBuilds and strictDepBuilds are read from .npmrc, the environment and, in a pnpm project, pnpm-workspace.yaml. #​1050
nub rebuild Reports unapproved packages instead of passing over them. A filtered rebuild works in a shared-lockfile workspace, where it did nothing. #​1050
Member approvals nub rebuild, nub ignored-builds and nub approve-builds read the same approvals as nub install, workspace members' included. #​1050
Git dependency approval Approved by <name>@git+<repository> or the same key with #<commit>. A bare name, name@version or * does not approve one, and a denial installs it unbuilt. #​1045
Git dependency builds A hosted dependency such as rimraf@github:isaacs/rimraf#v6.1.3 is now built. It linked with no dist/. The build no longer needs cp, which stock Windows lacks. #​1045, fixes #​885, #​886
Project lifecycle stages Project scripts follow pnpm 12's stage lists in every project: install adds preprepare and postprepare, remove runs the uninstall stages, and --prod skips the prepare family. #​1052

Workspace filters

Nub now uses pnpm 12's selector grammar and directory globs on every workspace command, including nub run (#​1056).

- nub run --filter ./packages build
+ nub run --filter './packages/*' build
Area What changed Link
Empty selection Does nothing and exits 0. install, remove and update print Scope: 0 of N workspace projects, and nub ci still cleans node_modules first, as pnpm's does. #​1064
Workspace root run, exec, add and test drop the root from a selection that names no project. Other commands keep it. #​1056
Repeated filtered install Reports up to date. It reinstalled and reran lifecycle scripts. #​1055
recursiveInstall Read from pnpm-workspace.yaml in a pnpm project. #​1055
Flags before the verb --filter-prod, -C and --dir work there. #​1064
nub ls in a member Lists that member. #​1064

Lockfile compatibility

Area What changed Link
Per-project pnpm lockfiles Under shared-workspace-lockfile=false, a member's lockfile matches pnpm 10's bytes on the tested workspaces. pnpm's --frozen-lockfile rejected the old form. #​1060
Frozen installs of those trees nub install --frozen-lockfile passes on a tree Nub or pnpm 10 wrote, and a plain install keeps a member's locked versions. It failed on the first and re-resolved on the second. #​1062
Rebuild in those trees nub rebuild finds a member's packages in the root store. It built nothing and exited 0. #​1058
pnpm's env document pnpm-lock.yaml records a pinned pnpm in its leading document, so pnpm 11 and 12 accept Nub's lockfile under --frozen-lockfile, including after nub pm use pnpm. #​1054
Local paths in pnpm-lock.yaml link:./x is written link:x and file:./x is written file:x, and empty packages: and snapshots: are omitted. A package spelled with ./ relinks on its first install after upgrading. #​1079
A file: dependency outside the workspace A member's file: directory above the workspace root installs under nub ci and --frozen-lockfile. It failed with is not a directory. #​1004
package-lock.json An optional dependency of a dev dependency is flagged dev and optional. It was devOptional. #​1088, fixes #​1087
Optional peers Every resolved optional peer is linked next to its package, a plain install repairs an existing nub.lock, and bun.lock records peers as bun writes them. #​1040, fixes #​937
Catalog updates nub update -r raises a ^ or ~ catalog entry to the version it resolved, and a catalog-only lockfile change is written instead of skipped. #​1057
Overrides on catalog: A range-keyed override matches a catalog: dependency by its reference, as under pnpm. #​1039, fixes #​771

Package manager

Area What changed Link
nub pack and nub publish Never pack a file from outside the package. A symlinked or absolute main, or a symlinked README, put that file in the tarball. #​1036
workspace: specs Both commands resolve workspace: and catalog: specs and apply publishConfig. The specs shipped verbatim, which made the package uninstallable. #​1036, fixes #​817
nub update at a workspace root Keeps members' locked versions. It re-resolved every member and bumped packages nobody named. #​1043, fixes #​1001
patchedDependencies Git renames, header-only deletions, empty new files and mode changes apply as under pnpm 11. A patched executable keeps its mode. #​1037, fixes #​844, #​845
nub patch-commit Replaces the patch file with one consolidated patch instead of appending a section per round. nub patch resolves its target through the lockfile. #​1010
Workspace .npmrc A command run in a member reads the root's registry and auth. The member's file layers on top under pnpm 10, Yarn 1 and a Nub project, and is not read under pnpm 11, npm or Bun. #​1051
DNS Hosts resolve through the OS with an in-process cache, so VPN-scoped DNS, /etc/resolver/* and Windows NRPT apply. #​953, fixes #​942
Broken downloads A tarball whose connection breaks off mid-body is downloaded again. It failed the install. #​1078
Failed installs An install that fails after a virtual-store mode change keeps node_modules. It removed the tree before resolving. #​1035, fixes #​841
--offline Refuses an uncached full packument fetch, which went to the network. #​1059
file: dependencies on macOS Two projects with a file: dependency at the same relative path get their own files. They shared whichever installed first, and a tarball rebuilt in place stayed stale. #​995
Overrides to a local copy A registry package whose dependency is overridden to a file: path is ejected into the project. The link dangled and require failed with Cannot find module. #​1080
Store locks on NFS Prune, maintenance and GC lock files open readable, so shared locks work on Linux NFS. They failed with EBADF. #​1046, fixes #​1028
Add-time refusals --allow-similar-name and --allow-new-name each clear their own check, and every refusal names its flag and allowedUnpopularPackages. #​1074
Aliases and bins A dependency under its own name keeps its bin over an alias of the same package, so tsc stays with typescript when typescript5 is also installed. #​1074
Remix 3 ^3.0.0, 3.1.0 and >=2 keep the shared store. Only a spec that may select a 3.0.0 prerelease gets a project-local store. #​1042, fixes #​927
pnpm 12 through nub pm shim The pnpm and pnpx shims run pnpm 12. They failed with SyntaxError: Unexpected identifier 'is'. #​983
Mismatched nub pm shim projects Registry and account commands such as npm login pass through to the system manager instead of being refused. #​1021
nub pm use nub The Turborepo heads-up says which versions recognize Nub. #​1034
Peer placements A package with peer-dependent copies reuses its file index and verified store read. Remapping across eight peer contexts went from 1.647 ms to 1.411 ms in a stage benchmark on Linux x86-64. #​984

Runtime

Area What changed Link
util.debounce, util.throttle Backfilled from Node 26.10 on older supported versions, and typed in @nubjs/types. #​974
JSON.parse options JSON.parse(text, { freeze, preferNullPrototype }) is polyfilled from the Stage 2.7 proposal, and typed in @nubjs/types. #​992
YAML and TOML imports Values keep NaN, -0, dates and own __proto__ keys. A TOML date is a Date, and a TOML integer past 2^53 is a BigInt. It threw on import. #​1067
UV_THREADPOOL_SIZE Assigning it in process.env before the first pool use sizes the pool, as under Node. Nub's preload had already built the pool. #​1013
Temporal The polyfilled global has the spec's property attributes. It was a frozen module namespace. #​1015
require() of a replaced package @js-temporal/polyfill, urlpattern-polyfill and abort-controller load the installed package. They failed with ENOENT on Node 22.15+. #​1061
Decorated files 400 decorated ESM files on Node 26.11 start in 0.18s, down from 0.99s, on macOS arm64 with a warm transpile cache. #​796, fixes #​795
Startup Augmented startup no longer loads internal/file on Node 20+. #​556
Entry tsconfig check The check follows the entry's real path and skips a dependency's own config. A workspace bin run through its node_modules link failed before starting. #​1041, fixes #​1032
Unreadable tsconfig The diagnostic names the OS error. It read the same as a missing file. #​899
Varlock Nub stands down when Varlock already resolved the schema or is the program being launched. varlock run --path ./config exited 1. #​724
Terminal jobs A child that stops on its first terminal read resumes after the foreground handoff. It stayed stopped. #​998
Test and watch modes --test=<value>, --watch=<value>, --watch_path and a watch flag in NODE_OPTIONS stay out of the children they start, which could recurse without end. nodeOptions in nub.jsonc refuses a watch flag. #​1075, #​1086

Node discovery and provisioning

Area What changed Link
latest and other aliases Aliases and partial pins select releases only. A .nvmrc of latest failed with a 404 once nodejs.org listed a 27.0.0 alpha. #​1033
Version-manager shims The version behind a mise, asdf, nodenv or Volta shim is read on every launch. A cached version passed Node 26 flags to Node 24, which exited 9. #​1049
Launch loops A PATH node that hands the launch back to Nub, or links back to it, is skipped. Any chain of Nub processes stops at 64 with ERR_NUB_LAUNCH_LOOP. #​1044, #​1063, #​1073, fixes #​832
Windows runtime cache Validates the cache directory rather than every ancestor. A broad grant on the user's profile made each command print warnings and run without the runtime. #​1047, fixes #​908

Install and upgrade

Area What changed Link
nub upgrade under mise Detects a mise install and runs mise upgrade --bump nub. It took the npm channel, which planted a second global copy. #​571
Release assets Each stable release carries packslip.sigstore.json, a signed manifest of its archives, so mise can install Nub straight from the release. #​982

Docs, testing and internals

  • Every docs page was restructured and tightened (#​994).
  • Integration suites run against an offline Verdaccio registry with committed fixtures (#​765).
  • CI's macOS jobs moved to macos-15 after GitHub retired macos-14 (4a599b6).
  • Only the approved release run can write a stable tag (#​1017).

What's Changed

New Contributors

Full Changelog: nubjs/nub@v0.9.7...v0.10.0


Configuration

📅 Schedule: (UTC)

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

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, 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 requested a review from boneskull as a code owner November 10, 2026 00:23
@renovate renovate Bot added the dependencies Pull requests that update a dependency file label Nov 10, 2026
@renovate
renovate Bot force-pushed the renovate/nubjs-nub-0.x branch from 3165462 to 1c0cefe Compare November 10, 2026 03:41
@renovate
renovate Bot merged commit b2fae9d into main Nov 10, 2026
8 checks passed
@renovate
renovate Bot deleted the renovate/nubjs-nub-0.x branch November 10, 2026 05:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants