This PR contains a few changes loosely related to the management of development dependencies and the CI setup.
I initially started out trying to install development dependencies locally, but neither pip install -e .[dev] nor pip install -r requirements-dev.txt alone were enough as some dependencies are only specified in the dev extra and others only in the requirements file.
As there seems to be a preference towards using requirements-dev.txt vs. a dev extra for development dependencies, I’ve added any dependencies listed in the dev extra to requirements-dev.txt and removed the dev extra so that we only have one list of dev dependencies to maintain.
Along the way I noticed a few quirks with the setup of the GitHub Actions workflow which made it difficult to reproduce and debug issues so I’ve tried to clean up the setup a little bit by removing unnecessary steps (see commit messages for details). Some of these changes are probably a little opinionated, so feel free to object if you don't like them.
Pointing out two changes here explicitly as they might impact your preferred workflows:
I’ve changed the Docker base image to a Python slim image -- this helps bring down CI run times from ~3 mins to ~1 min, but it means that some CLI utils will not be installed by default. Not sure if this is an issue?
The make test target doesn’t run pytest in a new container by default. Instead you’d have to run docker compose run --rm shell make test (or something like dcr shell make test if you set up an alias). Or you just keep a container shell session open while developing and run make test inside of that.
This PR contains a few changes loosely related to the management of development dependencies and the CI setup.
I initially started out trying to install development dependencies locally, but neither
pip install -e .[dev]
norpip install -r requirements-dev.txt
alone were enough as some dependencies are only specified in thedev
extra and others only in the requirements file.As there seems to be a preference towards using
requirements-dev.txt
vs. adev
extra for development dependencies, I’ve added any dependencies listed in thedev
extra torequirements-dev.txt
and removed thedev
extra so that we only have one list of dev dependencies to maintain.Along the way I noticed a few quirks with the setup of the GitHub Actions workflow which made it difficult to reproduce and debug issues so I’ve tried to clean up the setup a little bit by removing unnecessary steps (see commit messages for details). Some of these changes are probably a little opinionated, so feel free to object if you don't like them.
Pointing out two changes here explicitly as they might impact your preferred workflows:
I’ve changed the Docker base image to a Python slim image -- this helps bring down CI run times from ~3 mins to ~1 min, but it means that some CLI utils will not be installed by default. Not sure if this is an issue?
The
make test
target doesn’t run pytest in a new container by default. Instead you’d have to rundocker compose run --rm shell make test
(or something likedcr shell make test
if you set up an alias). Or you just keep a container shell session open while developing and runmake test
inside of that.