0.12.0
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-dependenciesis not a valid name. The extra is still emitted, only aConfigurationWarningis produced.
Fixes:
- Error on an unset dynamic version instead of silently writing
Version: 0.0.0. If"version"is declared inproject.dynamicbut never assigned by the build backend, writing the metadata now raises aConfigurationError(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]whenall_errors=True. - Tighten
license-filesglob checks and private-tag parsing. - Handle braces in user data within error messages.
- Correct the
Import-Namespacefield name in the metadata mapping. - Fix UTF-8 author and maintainer names.
Performance:
- Cache
get_type_hintsand 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