Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a tox configuration that standardizes all of the project testing using tox.
It does not eliminate the Makefile, but pushes all of the work into the tox configuration so that all platforms (whether Linux, macOS, or Windows) and runner environments (whether locally or in CI) are running the test suite in the same way.
Commit highlights
Add pyright as a dev dependency.
Add tox configurations that run pyright and mkdocs on Python 3.10.
This matches the Python version currently used in CI.
Add a tox config to run the test suite against Python 3.10+.
Fix a CLI rendering test on Windows.
Update CI to install tox and tox-uv.
Use tox to execute the test suite in CI.
This ensures that CI and local testing mirror each other.
Decisions made
tox-uv (and thus, tox) is not added as a dev dependency.
tox-uv depends on uv, which would add uv
as a locked dependency in
uv.lock
.This seems circular, so tox-uv is not a dev dependency.
The mkdocs
--strict
mode appears to work similar tothe existing architecture in CI, which greps CLI output
for the would "ERROR".
However, it may be that
--strict
mode fails fast,so this might not be strictly equivalent to output grepping.
Coverage files are no longer stored in
coverage/
;they are instead stored in
.coverage*
files.This is not a deliberate decision, but a side-effect.
Closes #234