Changelog¶
Version 0.24.1¶
Fixed multi plugin id was read from the wrong place by @henryiii, #240.
Implemented alternative plugin sorting, #243
Version 0.24¶
Fix integration with
SchemaStoreby loading extra/side schemas, #226, #229.Add support for loading extra schemas, #226.
Fixed verify author dict is not empty, #232.
Added support for
validate_pyproject.multi_schemaplugins with extra schemas, #231.validate-pyprojectno longer communicates test dependencies via thetestsextra and documentation dependencies dependencies via thedocs/requirements.txtfile. Instead pypa:dependency-groups have been adopted to support CI environments, #227.As a result,
uv’s high level interface also works for developers. You can use the dependency-groups package on PyPI if you need to convert to a classic requirements list.
Contributions by @henryiii.
Version 0.23¶
Validate SPDX license expressions by @cdce8p in #217
Version 0.22¶
Prevent injecting defaults and modifying input in-place, by @henryiii in #213
Version 0.21¶
Added support PEP 735, #208
Added support PEP 639, #210
Renamed
testingextra totest, #212General updates in CI setup
Version 0.20¶
setuptoolsplugin:Update
setuptools.schema.json, #206
Maintenance and Minor Changes¶
Fix misplaced comments on
formats.py, #184Adopt
--import-mode=importlibfor pytest to prevent errors withimportlib.metadata, #203Update CI configs, #195 #202, #204, #205
Version 0.19¶
Relax requirements about module names to also allow dash characters, #164
Migrate metadata to
pyproject.toml, #192
Version 0.18¶
Allow overwriting schemas referring to the same
tool, #175
Version 0.17¶
Update version regex according to latest packaging version, #153
Remove duplicate
# ruff: noqa, #158Remove invalid top-of-the-file
# type: ignorestatement, #159Align
tool.setuptools.dynamic.optional-dependencieswithproject.optional-dependencies, #170Bump min Python version to 3.8, #167
Version 0.16¶
Fix setuptools
readmefield , #116Fix
oneOf <> anyOfin setuptools schema, #117Add previously omitted type keywords for string values, #117
Add schema validator check, #118
Add
SchemaStoreconversion script, #119Allow tool(s) to be specified via URL (added CLI option:
--tool), #121Support
uintformats (as used by Ruff’s schema), #128Allow schemas to be loaded from
SchemaStore(added CLI option:--store), #133
Version 0.15¶
Update
setuptoolsschema definitions, #112Add
__repr__to plugin wrapper, by @henryiii #114Fix standard
$schemaending#, by @henryiii #113
Version 0.14¶
Ensure reporting show more detailed error messages for
RedefiningStaticFieldAsDynamic, #104Add support for
repo-review, by @henryiii in #105
Version 0.13¶
Make it clear when using input from
stdin, #96Fix summary for
allOf, #100setuptoolsplugin:Improve validation of
attrdirectives, #101
Version 0.12.2¶
setuptoolsplugin:Fix problem with
license-filespatterns, by removingdefaultvalue.
Version 0.12.1¶
setuptoolsplugin:Allow PEP 561 stub names in
tool.setuptools.package-dir, #87
Version 0.12¶
setuptoolsplugin:Allow PEP 561 stub names in
tool.setuptools.packages, #86
Version 0.11¶
Improve error message for invalid replacements in the
pre_compileCLI, #71Allow package to be build from git archive, #53
Improve error message for invalid replacements in the
pre_compileCLI, #71Error-out when extra keys are added to
project.authors/maintainers, #82De-vendor
fastjsonschema, #83
Version 0.10.1¶
Ensure
LICENSE.txtis added to wheel.
Version 0.10¶
Add
NOTICE.txttolicense_files, #58Use default SSL context when downloading classifiers from PyPI, #57
Remove
setup.py, #52Explicitly limit oldest supported Python version
Replace usage of
cgi.parse_headerwithemail.message.Message
Version 0.9¶
Use
tomllibfrom the standard library in Python 3.11+, #42
Version 0.8.1¶
Workaround typecheck inconsistencies between different Python versions
Publish PEP 561 type hints, #43
Version 0.8¶
New pre-commit hook, #40
Allow multiple TOML files to be validated at once via CLI (no changes regarding the Python API).
Version 0.7.2¶
setuptoolsplugin:Allow
dependencies/optional-dependenciesto use file directives, #37
Version 0.7.1¶
CI: Enforced doctests
CI: Add more tests for situations when downloading classifiers is disabled
Version 0.7¶
Deprecated use of
validate_pyproject.vendoring. This module is replaced byvalidate_pyproject.pre_compile.
Version 0.6.1¶
Fix validation of
versionto ensure it is given either statically or dynamically, #29
Version 0.6¶
Allow private classifiers, #26
setuptoolsplugin:Remove
licenseandlicense-filesfromtool.setuptools.dynamic, #27
Version 0.5.2¶
Version 0.5.1¶
Fixed typecheck errors (only found against GitHub Actions, not Cirrus CI), PR #22
Version 0.5¶
Fixed entry-points format to allow values without the
:obj.attr part, PR #8Improved trove-classifier validation, even when the package is not installed, PR #9
Improved URL validation when scheme prefix is not present, PR #14
Vendor fastjsonschema to facilitate applying patches and latest updates, PR #15
Remove fixes for old version of fastjsonschema, PR #16, PR #19
Replaced usage of
importlib.resourceslegacy functions with the new API, PR #17Improved error messages, PR #18
Added GitHub Actions for automatic test and release of tags, PR #11
Version 0.4¶
Version 0.3.3¶
Version 0.3.2¶
Updated
fastjsonschemadependency version.Removed workarounds for
fastjsonschemapre 2.15.2
Version 0.3.1¶
setuptoolsplugin:Fixed missing
requiredproperties for theattr:andfile:directives (previously empty objects were allowed).
Version 0.3¶
setuptoolsplugin:Added support for
readme,licenseandlicense-filesviadynamic.Warning
licenseandlicense-filesindynamicare PROVISIONAL they are likely to change depending on PEP 639Removed support for
tool.setuptools.dynamic.{scripts,gui-scripts}. Dynamic values forproject.{scripts,gui-scripts}are expected to be dynamically derived fromtool.setuptools.dynamic.entry-points.
Version 0.2¶
setuptoolsplugin:Added
cmdclasssupport
Version 0.1¶
setuptoolsplugin:Added
data-filessupport (although this option is marked as deprecated).Unified
tool.setuptools.packages.findandtool.setuptools.packages.find-namespaceoptions by adding a new keywordnamespacestool.setuptools.packages.find.wherenow accepts a list of directories (previously only one directory was accepted).
Version 0.0.1¶
Initial release with basic functionality