nab¶
A PubGrub-based dependency resolver for Python packages.
nab is resolve-only: it produces a pinned set of versions (or a PEP 751 lockfile) but never installs. Hand the lockfile to whatever installer you trust.
Where to start¶
New to nab: work through getting started.
A task in mind: the how-to guides cover installing nab, local checkouts, VCS sources, multiple indexes, and workspaces.
Looking something up: the reference covers the
[tool.nab]keys, the CLI, the lockfile formats, and the build policy.Want to know how something works: the explanations cover universal resolution and conflicting extras and groups.
Tutorial
How-to guides
Reference
Explanation
Project
Status¶
Single-environment resolution against PyPI
Multiple indexes, per-package routing, and local-checkout sources
VCS dependency admission with policy controls (Layer 2: clone + static metadata)
Direct-URL
.tar.gzarchive sources, hash-verified and pinned as PEP 751packages.archivePEP 751 lockfile emission via the upstream
packaginglibraryUniversal resolution across a user-declared
(python, platform, implementation)matrix. Opt-in via[tool.nab].mode = "universal"; the API and output format are still subject to change.Mutually-exclusive extras and dependency groups via
[tool.nab].conflicts: co-selected members fork the resolve, in specific and universal mode. See conflicts.