🔨 Re-organize dependencies for local dev and CI #706
Merged
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.
The 'hard' dependencies are now specified as extra groups in the setup.py package information. tox.ini points to these extras to install the required dependencies, and their supported version ranges.
The dev requirements file is now documented in the contributing guidelines, and makes use of the extras to pull in the optional dependencies for a full-blown local installation. The remaining dependencies (such as sphinx) are not used in tox and are still in the requirements_dev.txt file.
The linting dependencies (with upper bound versions) are now also specified as an extra group to prevent mismatching versions in tox env and local development envs.
Motivation and Context
pip install -r requirements_dev.txt
lead to different versions of isort/flak8 being installed in local env and CI pipeline. While itdidn't cause problems yet, these are annoying to track down.
Additionally, when touching minimum required versions, it's hard to keep track of where the version numbers are all specified
and can lead to false negatives in the tests if there are things broken because one specification overrides another.
How Has This Been Tested?
pip install -r requirements_dev.txt
make example-webauthn
tox
Screenshots (if appropriate):
n/a
Types of changes
Checklist: