Changelog¶
0.9.0 (22-10-2024)¶
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 emittedSupport 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
Refactoring:
Move fetcher methods
Put validation in method
Make
RFC822Message
compatible with and subclass ofEmailMessage
class with support for UnicodeRemove indirection accessing
metadata_version
, addauto_metadata_version
Rework how dynamic works, add
dynamic_metadata
Use dataclass instead of named tuple
Use named arguments instead of positional
Spit up over multiple files
Remove
DataFetcher
, use static types wherever possibleReformat single quotes to double quotes to match packaging
Produce standard Python repr style in error messages (keeping double quotes for key names)
Show the types instead of values in error messages
Internal and CI:
Better changelog auto-generation
macos-latest
now points atmacos-14
Refactor and cleanup tests
Add human readable IDs to tests
Require 100% coverage
Docs:
Include extra badge in readme
Rework docs, include README and more classes
Changelog is now in markdown
Better API section
0.8.1 (07-10-2024)¶
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
0.8.0 (17-04-2024)¶
Support specifying the
metadata_version
as 2.1, 2.2, or 2.3Always normalize extras following PEP 685
Preserve the user-specified name style in the metadata.
.canonical_name
added to get the normalized nameRequire “version” in the dynamic table if unset (following PEP 621)
Support extras using markers containing “or”
Support empty extras
Using
.as_rfc822()
no longer modifies the metadata objectFix email-author listing for names containing commas
Separate core metadata keywords with commas, following the (modified) spec
An error message reported
project.license
instead ofproject.readme
Produce slightly cleaner tracebacks Fix a typo in an exception message
Subclasses now type check correctly
The build backend is now
flit-core
0.7.1 (30-01-2023)¶
Relax
pypa/packaging
dependency
0.7.0 (18-01-2023)¶
Use UTF-8 when opening files
Use
tomllib
on Python >= 3.11
0.6.1 (07-07-2022)¶
Avoid first and last newlines in license contents
0.6.0 (06-07-2022)¶
Make license and readme files
pathlib.Path
instancesAdd the license contents to the metadata file
Add support for multiline data in metadata fields
0.5.0 (09-06-2022)¶
Renamed project to
pyproject_metadata
Support multiple clauses in requires-python
Error out when dynamic fields are defined
Update dynamic field when setting version
0.4.0 (30-09-2021)¶
Use Core Metadata 2.1 if possible
Fix bug preventing empty README and license files from being used
0.3.1 (25-09-2021)¶
Avoid core metadata
Author
/Maintainer
fields in favor ofAuthor-Email
/Maintainer-Email
0.3.0.post2 (15-09-2021)¶
Fix Python version requirement
0.3.0.post1 (13-09-2021)¶
Add documentation
0.3.0 (13-09-2021)¶
Added
RFC822Message
Refactor
StandardMetadata
as a dataclassAdded
StandardMetadata.write_to_rfc822
andStandardMetadata.as_rfc822
0.1.0 (25-08-2021)¶
Initial release