Skip to content

Preserve dynamic metadata for empty dependencies#5242

Open
lin-hongkuan wants to merge 1 commit into
pypa:mainfrom
lin-hongkuan:codex/dynamic-empty-dependencies
Open

Preserve dynamic metadata for empty dependencies#5242
lin-hongkuan wants to merge 1 commit into
pypa:mainfrom
lin-hongkuan:codex/dynamic-empty-dependencies

Conversation

@lin-hongkuan

@lin-hongkuan lin-hongkuan commented Jun 25, 2026

Copy link
Copy Markdown

Summary of changes

Preserve dynamic core metadata for dependencies when project.dynamic = ['dependencies'] is supplied and the resolved dependency list is empty.

Setuptools already marked non-empty dynamic dependency lists as Dynamic: requires-dist because those lists are non-static values. Empty lists were skipped by the metadata writer's truthiness check, so an explicit install_requires=[] from setup.py produced no Dynamic field. This change records the corresponding core metadata field while applying pyproject.toml dynamic metadata, allowing empty dynamic dependency lists to stay dynamic without marking static dependencies = [] as dynamic.

Closes #5120

Pull Request Checklist

Tests

  • python -m pytest -q setuptools/tests/config/test_apply_pyprojecttoml.py setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py setuptools/tests/test_core_metadata.py
  • python -m ruff check setuptools/_core_metadata.py setuptools/config/_apply_pyprojecttoml.py setuptools/tests/config/test_apply_pyprojecttoml.py
  • python -m ruff format --check setuptools/_core_metadata.py setuptools/config/_apply_pyprojecttoml.py setuptools/tests/config/test_apply_pyprojecttoml.py
  • python -m mypy setuptools/_core_metadata.py setuptools/config/_apply_pyprojecttoml.py
  • git diff --check

@mergify

mergify Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@8ddz2ypcv7-create 8ddz2ypcv7-create left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Tick the box to add this pull request to the merge queue (same as @Mergifyio queue).

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.

[BUG] setting install_requires=[] disables dynamic requires-dist

2 participants