Skip to content

feat(manager): add nub package manager#44422

Open
colinhacks wants to merge 2 commits into
renovatebot:mainfrom
colinhacks:feat/nub-manager
Open

feat(manager): add nub package manager#44422
colinhacks wants to merge 2 commits into
renovatebot:mainfrom
colinhacks:feat/nub-manager

Conversation

@colinhacks

Copy link
Copy Markdown

Changes

Adds a nub package-manager manager.

Nub is a Node package manager published as @nubjs/nub on npm. It has its own lockfile, nub.lock, which is byte-compatible with the pnpm-lock v9 format. This manager gives nub-based projects lockfile-aware update PRs without keeping a foreign lockfile.

The manager is modeled on the existing bun manager:

  • Detects nub.lock, resolves the sibling package.json, and extracts dependencies through the shared npm extractor (extractPackageJson). The datasource stays npm.
  • Regenerates the lockfile in updateArtifacts by running nub install --lockfile-only (with --ignore-scripts unless scripts are allowed), then diffs the old and new nub.lock.
  • Sets supersedesManagers: ['npm'] so nub takes over from the npm manager only when nub.lock is present.
  • Registers nub in the Containerbase registry (toolDefinitions + allToolConfig.nub → npm @nubjs/nub), so the default binarySource=install runtime can provision it. This depends on the companion Containerbase tool: feat(tool): add nub package manager containerbase/base#7054.

Context

Please select one of the following:

  • This doesn't close an Issue, but I accept the risk that this PR may be closed if maintainers disagree with its opening or implementation

AI assistance disclosure

  • Yes — substantive assistance (AI-generated non‑trivial portions of code, tests, or documentation).

Code, tests, and the manager readme were written with substantive assistance from an AI coding agent (Claude).

Documentation (please check one with an [x])

  • I have updated the documentation

Adds lib/modules/manager/nub/readme.md, which is auto-rendered into the docs site.

How I've tested my work (please select one)

  • Newly added/modified unit tests

pnpm vitest run lib/modules/manager/nub --coverage passes with 100% statement/branch/function/line coverage. The manager, metadata, and fingerprint validators, the lib/util/exec and lib/config specs, and pnpm test-schema all pass.

Add a first-party manager for nub (https://nubjs.com), modeled on the bun manager. Detects nub.lock, extracts deps via the shared npm extractor (nub.lock is pnpm-lock v9 under nub's own filename), and regenerates the lockfile with 'nub install --lockfile-only'. Registers nub as a Containerbase tool (npm datasource, @nubjs/nub) so binarySource=install can provision it.
Copilot AI review requested due to automatic review settings July 7, 2026 17:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions github-actions Bot requested a review from viceice July 7, 2026 17:41
@cla-assistant

cla-assistant Bot commented Jul 7, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

- pass --no-frozen-lockfile so nub re-resolves the bumped manifest
  instead of rejecting the drift under its CI-frozen default
- detect the object form `workspaces: { packages: [...] }`
- add nub to ignoreScripts supportedManagers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants