Repository navigation
Migrate tooling from Poetry + Docker to uv - #44
Conversation
There was a problem hiding this comment.
Pull request overview
This PR migrates the project’s CI/publishing tooling from Poetry + Docker-based test execution to uv, simplifying the GitHub Actions setup and removing containerized CI dependencies.
Changes:
- Replace Docker Compose-based CI with native GitHub Actions using
astral-sh/setup-uv,uv sync, anduv run pytest. - Update the release workflow to build/publish with
uv buildanduv publish. - Move dev dependencies from a Poetry-style optional extra into a
dependency-groups.devtable and remove Docker artifacts.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
pyproject.toml |
Moves dev tooling deps into [dependency-groups] and removes the dev optional-dependency extra. |
Dockerfile |
Removes the Poetry-based container build previously used for CI/testing. |
docker-compose.yml |
Removes the container orchestration previously used to run the test suite in CI. |
.github/workflows/ci.yml |
Rewrites CI to use uv instead of Docker Compose/Poetry; adds Python × Astropy matrix with an Astropy override step. |
.github/workflows/publish.yml |
Replaces Poetry build/publish steps with uv build and uv publish. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
We may also want to replace [ def cross2d(x, y):
return x[..., 0] * y[..., 1] - x[..., 1] * y[..., 0] |
|
Sorry for the delay and thanks for this PR. In the |
|
No worries! It's intentional but not required. Node 20 is being deprecated on GitHub Actions runners, with Node 24 becoming the default on June 16th, 2026. More info is given here: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ |
Remove Dockerfile and docker-compose.yml. Update ci.yml to use astral-sh/setup-uv for matrix Python installs and uv sync/run for tests. Update publish.yml to build and publish via uv, dropping the Poetry and unnecessary strategy matrix.
Write the matrix astropy version to an override file and pass it to uv sync --override so dependencies are solved once, avoiding a redundant reinstall after the initial environment resolution.
np.cross no longer supports 2D vectors as of NumPy 2.0, raising a DeprecationWarning (and eventually an error). Use a local cross2d helper that computes the same scalar z-component directly.
Node24 is now the default runner version
|
I've cleaned up a few loose ends on this branch:
Note: |
|
Bump |
This addresses the CI aspect requested in PR #37. Docker is no longer required to run the test matrix, meaning that containerised CI has been entirely replaced with native GitHub Actions steps. If this is accepted, it will also render my previous PR #43 unnecessary, as this branch already has relaxed version constraints.
A timely resolution of the tight version constraints would be appreciated, as
photutils>=3.0.0requiresnumpy>=2.0.0, and astra depends on both.Summary
ci.ymlto useastral-sh/setup-uvwith the Python version matrix,uv sync, anduv run pytest; replacepoetry build+poetry publishinpublish.ymlwithuv build+uv publish.actions/checkoutto v6 and opt into Node.js 24 runners ahead of the June 2026 forced migration[dependency-groups]table inpyproject.tomlDockerfileanddocker-compose.yml— CI no longer needs Docker for environment isolationTest plan