pypi pyproject-metadata 0.12.0

latest release: 0.12.1
23 days ago

Features:

  • Support PEP 808 (partially dynamic project metadata) (METADATA 2.6).
  • Add support for Python 3.15.
  • Warn (PEP 685) when an extra name in project.optional-dependencies is not a valid name. The extra is still emitted, only a ConfigurationWarning is produced.

Fixes:

  • Error on an unset dynamic version instead of silently writing Version: 0.0.0. If "version" is declared in project.dynamic but never assigned by the build backend, writing the metadata now raises a ConfigurationError (Field "project.version" missing), restoring the 0.8.x behavior that regressed in the 0.9 rewrite.
  • Don't crash on a non-table [project] when all_errors=True.
  • Tighten license-files glob checks and private-tag parsing.
  • Handle braces in user data within error messages.
  • Correct the Import-Namespace field name in the metadata mapping.
  • Fix UTF-8 author and maintainer names.

Performance:

  • Cache get_type_hints and precompile dispatch patterns.

Documentation:

  • Fix a stale dynamic docstring and a broken module example.
  • Add a documentation project URL.

Internal and CI:

  • Refactoring: consistent dataclass decorators, sorted constant entries, and removal of duplicate imports and dead code.
  • Cover defensive branches in dispatch helpers and validators.
  • Secure GitHub Actions workflows and bump pinned/downstream dependencies.

New Contributors

Full Changelog: 0.11.0...0.12.0

Don't miss a new pyproject-metadata release

NewReleases is sending notifications on new releases.