[v3] Test environments and CI
We just merged #1592 which should make managing our various test environments much easier going forward. This ticket lays out a number of small tasks that can be taken to modernize our test environments and GitHub Actions Workflows. I'm sure I'm missing a few things here so feel free to comment / suggest alternatives.
Hatch related improvements
- [x] Define dev environments in pyproject.toml using Hatch environments
- Move
requirements_dev_*.txtdefining separate environments for "minimal", "dev". These should include parameterizations over python versions (3.10 and 3.11). - Use these environments in our GitHub actions
- Move
- [x] Split out "minimal" environment into two separate environments
- Minimum supported versions of all dependencies (see #1616)
- Minimal dependencies (latest versions)
- [x] Create "docs" environment so developers can simply run:
hatch run docs:serve
GitHub Actions related improvements
- [x] Explore removing the need to install a conda environment, instead relying on pure hatch environments
- [ ] Explore combining the "windows", "minimal", and "python-package" workflows into a single workflow
- [x] Run Mypy checks in each matrix run in addition to our pre-commit script
I want to help with this and am motivated to get it done by tomorrow in time for the Zarr sprint.
Quick update here. @rabernat got a good start on an initial Hatch env / CI setup in #1650. Still more to do here thought so leaving this open with the flag: help wanted.
I'm planning to work on this at the Zarr sprint today, unless Ryan or others already plan to
FYI I think the initial task list in this issue is complete now that https://github.com/zarr-developers/zarr-python/pull/1728 is merged
Yep, I think this can be closed
Before we do, it would be nice to get a windows test environment up and running.
After https://github.com/zarr-developers/zarr-python/pull/2423 and #2418 go in, the last thing here is to get some diversity in platform into the test suite. Would be good to get at least 1 windows and MacOS entry in the main test matrix.