Improve optional dependencies
Since master was migrated to pyproject.toml it has access to the much richer optional-dependencies system[^1], this is currently only used for the yaml dependency so tox and GHA must explicitly install other dependencies.
The following optional dependencies should be added:
all, should install all the non-dev optional dependencies (currently just yaml), this should be doable via self dependenciestest, should install pytest andallcheck, should install the various checkersdevshould install bothtestandcheck, as well astoxsince that is the dev runner
Thus:
- it should be easier to maintain & test the dependency graph if new dependencies are added (e.g. #149, #166)
- the GHA checker jobs can install
checkbefore running - the GHA test jobs can install
testbefore running - the corresponding tox jobs can do the same
- in the event of a contributor, it's easier to document what they can do, and easier for them to work it out or use it
[^1]: technically that was already available in setup.py via extras_require but it was never used
Issue: turns out you can't ask pip to install just the dependencies (yet?). This makes the addition a lot less useful for the primary use cases of GHA and tox, as they don't want to install the package itself via those means (especially not GHA where the package source — src, wheel, sdist — is part of the test matrix).
The solution until pypa/pip#11440 is implemented would be to compile the dependencies to a (bunch of) requirement files, or to install pip-tools and use that to compile requirements following jazzband/pip-tools#1681.
Neither option is great.