Releases: pypa/pyproject-metadata
0.9.0
This release adds PEP 639 support (METADATA 2.4), refactors the RFC messages, and adds a lot of validation (including warnings and opt-in errors), a way to produce all validation errors at once, and more. The beta releases are intended for backend authors to try out the changes before a final release.
Features:
- Added PEP 639 support for SPDX license and license files, METADATA 2.4
- Validate extra keys (warning, opt-in error)
- Functions to check top level and build-system (including PEP 735 support)
- Add TypedDict's in new module for typing pyproject.toml dicts
all_errors=True
causesExceptionGroup
's to be emitted- Support METADATA 2.1+ JSON format with new
.as_json()
method
Fixes:
- Match EmailMessage spacing
- Handle multilines the way setuptools does with smart indentation
- Warn on multiline Summary (
project.description
) - Improve locking for just metadata fields
- Error on extra keys in author/maintainer
- URL name stylization removed matching PEP 753
Full Changelog: 0.8.1...0.9.0
0.9.0 RC 1
Changes since last beta:
- Remove attribute locking
- Fix for METADATA 2.4 being set and PEP 639 recommendation
- Support PEP 735 in top level validation
- Adjust URL handling to better match PEP 753
Full Changelog: 0.9.0b7...0.9.0rc1
0.8.1
- Validate project name
- Validate entrypoint group names
- Correct typing for emails
- Add 3.13 to testing
- Add ruff-format
- Actions and dependabot
- Generate GitHub attestations for releases
- Add PyPI attestations
- Fix coverage context
Full Changelog: 0.8.0...0.8.1
0.9.0 beta 7
Refactoring:
- Revert to double quotes in error messages for field names
- Show the types instead of values in error messages
Docs:
- Better API section
0.9.0 beta 6
Refactoring:
- Move
validate_*
functions intoextras_*
instead - Use
Dynamic
for the type of.dynamic
- Reformat single quotes to double quotes to match packaging
- Produce standard Python repr style in error messages
Fixes:
- Improve locking for just metadata fields
Docs:
- Include extra badge in readme
- Rework docs, include README and more classes
- Changelog is now in markdown
0.9.0 beta 5
Features:
- Add TypedDict's in new module for typing pyproject.toml dicts
all_errors=True
causesExceptionGroup
's to be emitted- Support METADATA 2.1+ JSON format with new
.as_json()
method
Internal and CI:
- Require 100% coverage
Refactoring:
- Spit up over multiple files
- Remove data fetcher, use static types wherever possible
0.9.0 beta 4
Features:
- Setting a non-dynamic field is an error
Fixes:
- Warn on multiline Summary (
project.description
)
Refactoring:
- Remove indirection accessing metadata_version, add
auto_metadata_version
- Rework how dynamic works, add
dynamic_metadata
- Use dataclass instead of named tuple
- chore: use named arguments instead of positional
0.9.0 beta 3
What's Changed
- Support unicode METADATA in the description again
- Restore
RFC822Message
with support for unicode - Restore
write_to_rfc822
with support for any Message - Restore recommendation to use string instead of bytes
Full Changelog: 0.9.0b2...0.9.0b3
0.9.0 beta 2
What's Changed
- Support unicode METADATA again
- Remove the custom
RFC822Message
entirely, replaced with a custom Policy (which also handles multilines) - Handle multiline the way setuptools does with smart indentation
- Remove
write_to_rfc822
- Remove the multiline warning for all metadata
- Add some unicode and reading tests
- Swap
EmailMessage
forMessage
- Add PyPI attestations
Full Changelog: 0.9.0b1...0.9.0b2
0.9.0 beta 1
This release adds PEP 639 support (METADATA 2.4), refactors the RFC messages, and adds a lot of validation (including warnings and opt-in errors). The beta release is intended for backend authors to try out the changes before a final release.
What's Changed
Features:
- Added PEP 639 support for SPDX license and license files, METADATA 2.4
- Validate extra keys (warning, opt-in error)
- Validate project name
- Validate entrypoint group names
- Add multiline warning
Fixes:
- Correct typing for emails
- Match EmailMessage spacing
Refactoring:
- Move fetcher methods
- Put validation in function
- Prepare for EmailMessage
- Use EmailMessage class
Internal and CI:
- Add 3.13 to testing
- Add ruff-format
- Actions and dependabot
- Better changelog auto-generation
- Generate attestations for releases
macos-latest
now points atmacos-14
- Refactor and cleanup tests
- Add human readable IDs to tests
- Fix coverage context
Full Changelog: 0.8.0...0.9.0b1