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
NamedTuple
with 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
cmd
module 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.X
so 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 config
with the-q
option 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
publync
configuration to thepyproject.toml
file
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.toml
file and move the "base" one to theruff-base.toml
file in the top-level directory - use Ruff 0.3.3:
- add the forgotten
f
prefix 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.sh
helper, 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.crt
as the path to the system-wide certificates file; allow it to be overridden using theVETOX_CERT_FILE
environment variable
- drop Python 3.8 from the
0.1.6 - 2024-02-08
Additions
- add the
--match-spec
/-m
command-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.toml
file 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
black
toruff
for source code formatting - documentation:
- use
mkdocstrings
0.23 andmkdocstrings-python
1.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-stages
manual page
Additions
- tox_trivtags:
- automatically tell a bootstrapped Tox to install a recent enough version of
test-stages
into 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-stages
in 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
tomli
in 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-stages
manual page - tox_trivtags:
- fix parsing of the Tox output when the
tox.ini
file contains amin_version
/minversion
specification 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_version
option to mypy, let it use the current interpreter's version for the checks - temporarily run
mypy
onclick
version 8.1.3, there seems to be some trouble with the decorator changes in 8.1.4
- do not pass the
Additions
- document the
requires
directive that is needed if thetox.ini
file specifies a minimum Tox version requirement
Other changes
- build system:
- add Python 3.12 as a supported version
- tox_trivtags:
- switch from
distlib
toimportlib.metadata
andpackaging
for 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.Path
constructor - use black 23.7 and add "py312" to the list of target versions
- drop the
pylint
test environment, we depend on Ruff instead - run the
format
test 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 --showconfig
is 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.envlist
list in thetox.ini
file
- 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-stages
tool in the mdoc format - add a
.gitignore
file, mainly so that thereuse
tool can be run even in the presence of some test-related files and directories - add a
selftest
module (not installed in the wheel) that runs thetox-stages
tool 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-stages
command-line tool to be invoked viapython3 -m
- add the
--arg
/-A
option to pass additional arguments to Tox - add the
--parallel
/-p
option to specify which stages should run their tests in parallel
- testing framework:
- add the
reuse
Tox 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-parallel
when running with Tox 4.x
- tox-trivtags:
- reformat the import statements using Ruff's isort implementation
- use
tox config
when running with Tox 4.x
- build system:
- switch to hatch/hatchling for the PEP517 build
- move the
contextlib-chdir
module from the installation requirements to the test ones, since we do not use it in the installed library - bump the
parse-stages
dependency version to 0.1.4 so that an empty set may be specified as an argument to the--parallel
option
- 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
EM
checks override, we do not raise any exceptions
- move the Ruff configuration files from
- Formatting:
- rename the
black
andblack-reformat
Tox environments toformat
andreformat
respectively and invoke Ruff's isort implementation in both - specify Python 3.8 as the target version
- rename the
- Pylint:
- remove the
empty-comment
plugin 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.ini
file for Tox 4.x (mostly a multiline list) and make the unit tests that run Tox 3.x revert those adaptations - use the
@manual
tag for Tox test environments that should only be run manually with care - drop the Tox environment that runs
flake8
andpycodestyle
, we depend on Ruff for that
- Ruff:
0.1.1 - 2023-02-07
Fixes
- Include the changelog file and the
.config/ruff-*/pyproject.toml
files in the PyPI source distribution tarball.
0.1.0 - 2023-02-07
Started
- First public release.