Changelog
All notable changes to the parse-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.1.9 - 2024-08-09
Semi-incompatible changes
- Drop support for Python 3.8 and 3.9
Fixes
- Fix the logic in a "this should never happen anyway" check for
the
pyparsingparser returning invalid results - Nix expressions:
- run
python3.X, notpython3, so as to not accidentally invoke a "more preferred" Python version that is also installed in the Nix environment
- run
Other changes
- Let Ruff insist on trailing commas when formatting the source code
- Use
listinstead oftyping.Listfor the dataclass member fields - Simplify the expression parser by using structural pattern matching
- Use
typeA | typeB | typeCas a type parameter toisinstance() - Documentation:
- use mkdocstrings 0.25 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.5.7
- drop the override for the no longer emitted
ANN101 - add global overrides for the new docstring-related
DOC201andDOC501
- fold the "all" configuration into the
- use Reuse 4.x with no changes
- vendor-import vetox 0.2.0 and use it with no changes
- Ruff:
- Nix expressions:
- drop Python 3.8 from the
run-*.shhelpers, it was dropped form nixpkgs/unstable - run pytest on Python 3.13, too
- run tox on Python 3.12 and 3.13, too
- 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 - only pass the minor version of Python, we only support Python 3.x
- pass the Python minor version as a string for easier interpolation
- drop Python 3.8 from the
0.1.8 - 2024-02-08
Additions
- Support parentheses in stage specifications, e.g.
(@check or @docs) and not @manual - Tentatively declare Python 3.13 as a supported version
- Documentation:
- add a "Download" page
- Test suite:
- vendor-import the vetox testing tool
- add a Nix expression to run
vetox
Other changes
- Completely switch to Ruff for source code formatting
- Test suite:
- use Ruff 0.2.1:
- derive an abstract class directly from
abc.ABC, no need for the metaclass - sort the list of exported symbols (
__all__) - add an empty line to the end of the "Examples" docstring section
- push some Ruff configuration settings into the
ruff.lint.*hierarchy
- derive an abstract class directly from
- use Pytest 8.x and also install Pygments for syntax highlighting
- push the unit tests' source from
unit_tests/intotests/unit/ - also build the documentation in the second Tox stage
- put the Tox stage specifications in the
pyproject.tomlfile on separate lines - let
reuseignore the.mypy_cache/directory, too
- use Ruff 0.2.1:
0.1.7 - 2023-11-08
Fixes
- Documentation:
- fix the ReadTheDocs build by adding the
buildsection to its configuration
- fix the ReadTheDocs build by adding the
Additions
- Test suite:
- also run the Ruff formatter in the
formatTox check environment - add a "reformat-ruff" Tox environment that uses the Ruff formatter
- add the "reuse" environment to the list of Tox environments to run by
default and install Git in the Nix derivation since the
reusetool uses it to figure out which files to check
- also run the Ruff formatter in the
Other changes
- Documentation:
- use mkdocstrings 0.23 with no changes
- Test suite:
- use Ruff 0.1.4:
- specify the copyright notice pattern for Ruff to look for
- let Ruff also reformat the docstrings in addition to the import blocks
- move the "reuse" Tox test environment to the first (quick) stage
- use Ruff 0.1.4:
0.1.6 - 2023-09-28
Other changes
- Test suite:
- use a pinned version of Ruff to avoid breakage with changes enabled in future versions
- use Ruff 0.0.291, add a forgotten deferred annotations import
- move the "format" check to the first Tox stage
- use black 23.7 or later so it understands "py312" as a supported version
- use reuse 2.x with no changes
0.1.5 - 2023-06-27
Fixes
- Build infrastructure:
- relax the
hatch-requirements-txtto >= 0.3, which is the version in Debian testing/unstable - specify a lower requirement for
hatchlingas >= 1.8, which is the version in Ubuntu 22.10 (kinetic) - specify an upper requirement for
hatchling
- relax the
- Main source:
- do not disable all Flake8 / Ruff checks for three files!
- fix some formatting nits in the newly-checked source files
- Test suite:
- drop the
pyupgradeenvironment from Tox's default envlist; there is (by design) no way to run it in a no-op, report-only mode - do not pass the
python_versionoption tomypy, let it check the code with regard to the currently-running Python interpreter
- drop the
Additions
- Build infrastructure:
- specify the project license
- add some more PyPI trove classifiers
- Test suite:
- introduce the
PY_MINVER_MINandPY_MINVER_MAXenvironment variables for thenix/run-pytest.shhelper tool so that e.g. the current flakiness of Python 3.12 in nixpkgs-unstable can be skipped - add a Nix expression and the
nix/run-tox.shhelper tool to run all the Tox tests using a different Python version - also include the
reuseTox environment in the ones run at the@checkstage using thetox-stagestool
- introduce the
Other changes
- Main source:
- replace assertions in the parsing code with
ifstatements that raise our own exceptions
- replace assertions in the parsing code with
- Documentation:
- refer to version 1.1.0 of the "Keep a Changelog" format specification
- use
mkdocstrings0.22, no changes
- Test suite:
- drop the
flake8/pep8,pylint, andpydocstyleTox test environments, Ruff handles most of these checks now - use Ruff 0.0.275, activate all the new check areas, just in case
- use mypy 1.x, no changes
- drop the
0.1.4 - 2023-05-13
Additions
- Documentation:
- add a ReadTheDocs mirror
- Main source:
parse_stage_ids(): allow an empty set to be specified by the exact strings "", "0", or "none"
Other changes
- Build system:
- drop the obsolete
tool.setuptools.*sections from thepyproject.tomlfile
- drop the obsolete
- Documentation:
- bump the version of
mkdocstrings-pythonwith no changes
- bump the version of
- Test suite:
- Ruff:
- use Ruff 0.0.267, enable the
FLYchecks area
- use Ruff 0.0.267, enable the
- Ruff:
0.1.3 - 2023-05-07
Fixes
- Add a blank line to a docstring section (ruff D214).
- Drop the text in a
NotImplementedErrorraised in an abstract method; it should be obvious (ruff EM101)
Additions
- Add a
.gitignorefile, mostly so thatreusecan be run at any time - Add a "Home, GitLab, PyPI" navigational line to the documentation
index page and to the
README.mdfile
Other changes
- Main source:
- reformat the import sections using Ruff's
isortimplementation
- reformat the import sections using Ruff's
- Build system:
- switch to
hatch/hatchlingfor the PEP517 build
- switch to
- Documentation:
- use the
default_handlerconfiguration option ofmkdocstringsinstead of specifyinghandler: pythonfor each class! - bump the versions of
mkdocstringsandmkdocstrings-pythonwith no changes
- use the
- Test suite:
- specify 4.1 as the Tox minimum version and switch to the Tox 4.x format for the multiline list of files
- rename the
blackTox environment toformatand theblack-reformatone toreformat, since they also run Ruff'sisortnow - Ruff:
- use Ruff 0.0.265, enable the
INTchecks area although we do not use gettext - enable all ruff check areas in
config/ruff-most/, let theconfig/ruff-base/files take care of the ignored ones - no longer disable the "relative imports" check, it does not complain about our source code
- use Ruff 0.0.265, enable the
- Pylint:
- reenable the "empty comment" plugin; we should have no trouble with it since switching to SPDX license tags
- Bump the versions of
flake8-implicit-str-concat,flake8-simplify,pylint, andtriceratopswith no code changes
0.1.2 - 2023-03-10
Semi-incompatible changes
- Drop Python 3.7 support.
Fixes
- Fix the 0.1.1 release URL in the changelog file.
- Do not run the
pyupgradeTox environment automatically. - Add a docstring to the unit test suite's
__init__.pyfile instead of overriding a linter check.
Additions
- Start some MkDocs-based documentation.
- Add the
reuseTox test environment to run the REUSE tool manually.
Other changes
- Rework the Ruff invocation Tox targets a bit:
- drop the
ruff-all-unchainedtest environment; at this point in Ruff's development we are bound to specific versions anyway - move the config files to a
config/directory, not.config/ - move the "normal" Ruff invocation configuration to
config/ruff-most/ - use Ruff 0.0.254 with no code changes
- activate all of Ruff 0.0.254's liners in the "normal" invocation
- drop the
- Switch to SPDX license tags.
- Specify the supported Python version in the configuration of the pylint and black tools.
- Move the changelog file into the documentation directory.
- In the packaging metadata, point to the Ringlet homepage generated from the newly-added documentation.
0.1.1 - 2023-02-05
Fixes
- Use "precedence" instead of "priority" when discussing operators in the README file.
- Do not use the
listgeneric type in the definition of theTaggedFrozenandTaggedclasses; library consumers may try to usetyping.get_type_hints()on them or on derived classes, and Python < 3.9 would have a problem with that. - Fill in the module docstring using the text of the README file.
- Fix some problems reported by
ruff:- fix the order of some
importstatements - fix the formatting of some docstrings
- fix the order of some
Other changes
- Add the
ruff-alltest environment that enables all the checks of therufftool for a certain locked version ofruff. - Add the
tool.test-stagessection in thepyproject.tomlfile to specify the order that Tox environments should be run during development using thetox-stagestool from thetest-stagesPython library. - Add a lot of
flake8plugins to the Toxpep8test environment - Use ruff 0.0.241, pylint 2.16.x, and black 23.x.
0.1.0 - 2023-01-25
Started
- First public release.