Changelog
All notable changes to the test-stages project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.2.0 - 2024-08-10
Breaking changes
- drop support for Tox 3.x
Semi-incompatible changes
- drop support for Python 3.8 and 3.9
Fixes
- test suite:
- pass
filter="data"toTarFile.extractall()
- pass
Other changes
- simplify some code using Python 3.10 structural pattern matching
- replace
NamedTuplewith frozen dataclasses - documentation:
- correct the 0.1.8 tag link on the downloads page
- use mkdocstrings 0.25 with no changes
- test suite:
- Ruff:
- use Ruff 0.5.7
- override some docstrings-related checks, we do not document everything
- override a
cmdmodule check, there is not much potential for confusion
- vendor-import vetox 0.2.0 now that we no longer support Tox 3.x
- Ruff:
- Nix expressions:
- pass the Python version as a string, not as an integer
- only pass the minor Python version, we only use 3.x
- explicitly invoke
python3.Xso that we do not accidentally pick up a "more preferable" Python version that is also installed in the Nix environment
0.1.8 - 2024-05-25
Fixes
- run
tox configwith the-qoption to avoid diagnostic output from Tox plugins to mix in with the actual configuration settings - documentation:
- correct the 0.1.7 tag link on the downloads page
Additions
- add
publyncconfiguration to thepyproject.tomlfile
Other changes
- test suite:
- Ruff:
- use Ruff 0.4.5 with no changes
- Ruff:
0.1.7 - 2024-03-17
Fixes
- documentation:
- correct the 0.1.6 release date on the download page
Other changes
- build system:
- allow packaging 24.x with no changes
- test suite:
- Ruff:
- fold the "all" configuration into the
pyproject.tomlfile and move the "base" one to theruff-base.tomlfile in the top-level directory - use Ruff 0.3.3:
- add the forgotten
fprefix to some f-strings
- add the forgotten
- use the concise output even in preview mode
- fold the "all" configuration into the
- allow pytest 8.x with no changes
- Ruff:
- Nix expressions:
- drop Python 3.8 from the
run-vetox.shhelper, it was dropped form nixpkgs/unstable - update the vendored copy of vetox to version 0.1.3
- run vetox with support for uv and tox-uv
- when running
uv, use/etc/ssl/certs/ca-certificates.crtas the path to the system-wide certificates file; allow it to be overridden using theVETOX_CERT_FILEenvironment variable
- drop Python 3.8 from the
0.1.6 - 2024-02-08
Additions
- add the
--match-spec/-mcommand-line option to further limit the Tox environments that will be run - add a Nix expression that builds the documentation
- tentatively declare Python 3.13 as supported
- testing framework:
- vendor-import the vetox testing tool
- add a Nix expression that runs
vetox
Other changes
- documentation:
- use mkdocstrings 0.24 with no changes
- testing framework:
- use Ruff 0.2.1:
- push some Ruff configuration settings into the
ruff.lint.*hierarchy
- push some Ruff configuration settings into the
- let Ruff insist on trailing commas, reformat the source files accordingly
- push the unit tests into the
tests/unit/directory - put the Tox stage specifications in the
pyproject.tomlfile on separate lines
- use Ruff 0.2.1:
0.1.5 - 2024-01-19
Fixes
- documentation:
- add the "build" section to the ReadTheDocs configuration
- refer to version 1.1.0 of the "Keep a Changelog" specification in the changelog file
- selftest:
- validate the list of archive files before passing it to
TarFile.extractall()
- validate the list of archive files before passing it to
Additions
- documentation:
- add a "Download" page linking to the various files at the Ringlet website
Other changes
- switch from
blacktorufffor source code formatting - documentation:
- use
mkdocstrings0.23 andmkdocstrings-python1.x with no changes
- use
- testing framework:
- also run the "reuse" test in the first Tox stage
- also build the documentation in the second Tox stage
- Ruff:
- use Ruff 0.1.13
- disable another subprocess-related check (
S404) - let Ruff also validate the docstrings
- mypy:
- do not explicitly install
tomli, it is brought in as a runtime dependency
- do not explicitly install
0.1.4 - 2023-10-19
Fixes
- fix the rendering of long options in the
tox-stagesmanual page
Additions
- tox_trivtags:
- automatically tell a bootstrapped Tox to install a recent enough version of
test-stagesinto its own virtual environment so that it may output tags
- automatically tell a bootstrapped Tox to install a recent enough version of
Other changes
- drop the documentation section on requiring
test-stagesin the Tox configuration - build system:
- refer to Tox 4.x in the "tox" optional dependency group
- selftest:
- use
pathlib.Path.cwd()instead ofpathlib.Path().resolve()
- use
- testing framework:
- Ruff:
- use Ruff 0.1.0
- let it know how to check for our SPDX copyright tags
- enable its preview mode
- reuse:
- use reuse 2.x
- only run if a Git checkout subdirectory is present
- with the above in mind, add it to the list of default Tox environments
- mypy:
- do not install
tomliin the virtual environment on recent Python versions
- do not install
- Ruff:
0.1.3 - 2023-10-01
Fixes
- fix a typographical error in the
tox-stagesmanual page - tox_trivtags:
- fix parsing of the Tox output when the
tox.inifile contains amin_version/minversionspecification and Tox bootstraps a new version into a virtual environment:- ignore all output lines until one that starts with a
[character - do not depend on the version of Tox that we can see installed as a library for determining the format used to output the list of tags; a different version may have been installed and invoked
- ignore all output lines until one that starts with a
- fix parsing of the Tox output when the
- testing framework:
- do not pass the
python_versionoption to mypy, let it use the current interpreter's version for the checks - temporarily run
mypyonclickversion 8.1.3, there seems to be some trouble with the decorator changes in 8.1.4
- do not pass the
Additions
- document the
requiresdirective that is needed if thetox.inifile specifies a minimum Tox version requirement
Other changes
- build system:
- add Python 3.12 as a supported version
- tox_trivtags:
- switch from
distlibtoimportlib.metadataandpackagingfor simpler handling
- switch from
- testing framework:
- pin the Ruff version to avoid breakage with new checks enabled in the future
- use Ruff 0.0.291, do not pass the current directory to the
pathlib.Pathconstructor - use black 23.7 and add "py312" to the list of target versions
- drop the
pylinttest environment, we depend on Ruff instead - run the
formattest environment in the first Tox stage
0.1.2 - 2023-03-13
Incompatible changes
- tox-trivtags:
- drop the
tox_trivtags.parse.parse_config()function, runningtox --showconfigis the only supported method now
- drop the
Fixes
- tox-stages:
- minor refactoring and fixes suggested by Ruff
- tox-trivtags:
- use the correct way to ignore a specific Ruff check for the whole file instead of telling Ruff to skip that file entirely!
- minor fixes suggested by Ruff
- testing framework:
- correct the
tox.envlistlist in thetox.inifile
- correct the
Additions
- add the beginnings of MkDocs-based documentation, hosted at the Ringlet test-stages webpage for the latest release and at ReadTheDocs for the latest version from the Git repository
- add manual page for the
tox-stagestool in the mdoc format - add a
.gitignorefile, mainly so that thereusetool can be run even in the presence of some test-related files and directories - add a
selftestmodule (not installed in the wheel) that runs thetox-stagestool itself on a copy of the source tree - build system:
- add the "Typing :: Typed" PyPI trove classifier
- specify the project's two-clause BSD license
- tox-stages:
- add support for Tox 4.x
- allow the
tox-stagescommand-line tool to be invoked viapython3 -m - add the
--arg/-Aoption to pass additional arguments to Tox - add the
--parallel/-poption to specify which stages should run their tests in parallel
- testing framework:
- add the
reuseTox test environment for checking the SPDX tags manually
- add the
Other changes
- use SPDX license tags
- move the changelog file into the MkDocs-managed
docs/directory - point to the Ringlet homepage in the package metadata and the README file
- tox-stages:
- reformat the import statements using Ruff's isort implementation
- use
tox run-parallelwhen running with Tox 4.x
- tox-trivtags:
- reformat the import statements using Ruff's isort implementation
- use
tox configwhen running with Tox 4.x
- build system:
- switch to hatch/hatchling for the PEP517 build
- move the
contextlib-chdirmodule from the installation requirements to the test ones, since we do not use it in the installed library - bump the
parse-stagesdependency version to 0.1.4 so that an empty set may be specified as an argument to the--paralleloption
- testing framework:
- Ruff:
- move the Ruff configuration files from
.config/toconfig/ - run
ruff check ...explicitly - enable all of the Ruff checks in the default (
ruff) test environment - use ruff 0.0.265 and ignore some subprocess checks: we do check
- remove them
EMchecks override, we do not raise any exceptions
- move the Ruff configuration files from
- Formatting:
- rename the
blackandblack-reformatTox environments toformatandreformatrespectively and invoke Ruff's isort implementation in both - specify Python 3.8 as the target version
- rename the
- Pylint:
- remove the
empty-commentplugin override, the SPDX license tags no longer cause it to complain - specify Python 3.8 as the target version
- use pylint 2.17.x with no changes
- remove the
- update the
tox.inifile for Tox 4.x (mostly a multiline list) and make the unit tests that run Tox 3.x revert those adaptations - use the
@manualtag for Tox test environments that should only be run manually with care - drop the Tox environment that runs
flake8andpycodestyle, we depend on Ruff for that
- Ruff:
0.1.1 - 2023-02-07
Fixes
- Include the changelog file and the
.config/ruff-*/pyproject.tomlfiles in the PyPI source distribution tarball.
0.1.0 - 2023-02-07
Started
- First public release.