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
SchemaStore
by 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_schema
plugins with extra schemas, #231.validate-pyproject
no longer communicates test dependencies via thetests
extra and documentation dependencies dependencies via thedocs/requirements.txt
file. 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
testing
extra totest
, #212General updates in CI setup
Version 0.20¶
setuptools
plugin:Update
setuptools.schema.json
, #206
Maintenance and Minor Changes¶
Fix misplaced comments on
formats.py
, #184Adopt
--import-mode=importlib
for 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: ignore
statement, #159Align
tool.setuptools.dynamic.optional-dependencies
withproject.optional-dependencies
, #170Bump min Python version to 3.8, #167
Version 0.16¶
Fix setuptools
readme
field , #116Fix
oneOf <> anyOf
in setuptools schema, #117Add previously omitted type keywords for string values, #117
Add schema validator check, #118
Add
SchemaStore
conversion script, #119Allow tool(s) to be specified via URL (added CLI option:
--tool
), #121Support
uint
formats (as used by Ruff’s schema), #128Allow schemas to be loaded from
SchemaStore
(added CLI option:--store
), #133
Version 0.15¶
Update
setuptools
schema definitions, #112Add
__repr__
to plugin wrapper, by @henryiii #114Fix standard
$schema
ending#
, 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
, #100setuptools
plugin:Improve validation of
attr
directives, #101
Version 0.12.2¶
setuptools
plugin:Fix problem with
license-files
patterns, by removingdefault
value.
Version 0.12.1¶
setuptools
plugin:Allow PEP 561 stub names in
tool.setuptools.package-dir
, #87
Version 0.12¶
setuptools
plugin:Allow PEP 561 stub names in
tool.setuptools.packages
, #86
Version 0.11¶
Improve error message for invalid replacements in the
pre_compile
CLI, #71Allow package to be build from git archive, #53
Improve error message for invalid replacements in the
pre_compile
CLI, #71Error-out when extra keys are added to
project.authors/maintainers
, #82De-vendor
fastjsonschema
, #83
Version 0.10.1¶
Ensure
LICENSE.txt
is added to wheel.
Version 0.10¶
Add
NOTICE.txt
tolicense_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_header
withemail.message.Message
Version 0.9¶
Use
tomllib
from 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¶
setuptools
plugin:Allow
dependencies
/optional-dependencies
to 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
version
to ensure it is given either statically or dynamically, #29
Version 0.6¶
Allow private classifiers, #26
setuptools
plugin:Remove
license
andlicense-files
fromtool.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.resources
legacy 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
fastjsonschema
dependency version.Removed workarounds for
fastjsonschema
pre 2.15.2
Version 0.3.1¶
setuptools
plugin:Fixed missing
required
properties for theattr:
andfile:
directives (previously empty objects were allowed).
Version 0.3¶
setuptools
plugin:Added support for
readme
,license
andlicense-files
viadynamic
.Warning
license
andlicense-files
indynamic
are 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¶
setuptools
plugin:Added
cmdclass
support
Version 0.1¶
setuptools
plugin:Added
data-files
support (although this option is marked as deprecated).Unified
tool.setuptools.packages.find
andtool.setuptools.packages.find-namespace
options by adding a new keywordnamespaces
tool.setuptools.packages.find.where
now accepts a list of directories (previously only one directory was accepted).
Version 0.0.1¶
Initial release with basic functionality