Files
pnpm/.changeset/python-dynamic-requirements.md
T
Zoltan Kochan c7f323329a feat(python): support dynamic metadata and requirements files (#14981)
Prepare dynamic metadata before constructing the Python dependency graph.
Use prepare_metadata_for_build_wheel where available and build a wheel as
the PEP 517 fallback. Retain fallback wheels for noneditable installation
with the same interpreter. Preserve hook-prepared metadata directories for noneditable builds. Validate
static dependency and interpreter declarations before resolution, and reject
final wheels whose dependencies, interpreter support, or extras differ from
the prepared metadata. Reuse the prepared manifests and workspace scopes when resolving sources.
Evaluate active platform markers and requested extras during source traversal.

Discover requirements.txt through the shared workspace inventory and treat
requirements-only directories as dependency projects without building the
directory itself or generating a pyproject.toml. Included files contribute
to the requirement inputs used for frozen-lockfile validation.

Backend requirements retain the existing allowBuilds policy. Metadata
preparation fails when approval is missing because resolution cannot
continue without running the backend. Dynamic metadata is currently
prepared for each project's selected interpreter and refreshed if dynamic
interpreter support changes that selection. External, undiscovered path sources
still require static metadata. Adding dependencies to dynamic metadata is
not part of this change.

Related to pnpm/pnpm#14945 (item 7).
2026-09-16 22:32:40 +02:00

268 B

pacquet
pacquet
minor

pnpm install now reads dynamic Python project metadata from the build backend. Projects with only a requirements.txt file now get a Python environment and lockfile. Related to pnpm/pnpm#14945.