Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR migrates the project’s Python packaging and developer workflows from Poetry to uv + setuptools, aiming to speed up installs/CI and simplify contributor setup.
Changes:
- Replace Poetry-based workflows with
uv sync,uv build, anduv publishacross Makefile and GitHub Actions. - Move build configuration into
pyproject.tomlusing setuptools + setuptools-scm (dynamic versioning). - Simplify build setup by inlining the previous
build.pyCython extension configuration intosetup.py.
Reviewed changes
Copilot reviewed 9 out of 12 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
setup.py |
Minimal setuptools entrypoint defining Cython extension build configuration. |
pyproject.toml |
Switch from Poetry config to setuptools + setuptools-scm; add uv configuration and dependency groups. |
Makefile |
Replace Poetry commands with uv equivalents for init, checks, and builds. |
.github/workflows/ci.yaml |
Update CI to use uv for environment setup and running checks/tests. |
.github/workflows/release.yaml |
Update release build/publish pipeline to use uv build + uv publish. |
.github/workflows/gh-pages.yaml |
Pin action revisions while keeping the same GH Pages deployment flow. |
README.md |
Update contributor instructions to reflect new init/precommit commands. |
build.py |
Removed (logic moved into setup.py). |
poetry.toml |
Removed (no longer using Poetry-managed virtualenv settings). |
.gitignore |
Ignore pre-commit cache directory. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…extra Agent-Logs-Url: https://github.com/thorn-oss/perception/sessions/d57f5254-a65a-417f-bcf6-77923cdd433f Co-authored-by: mjs2600 <434305+mjs2600@users.noreply.github.com>
Copilot
AI
changed the title
Switch to uv
Document OpenCV conflict and pip workaround for benchmarking extra
Apr 8, 2026
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
[tool.uv] exclude-dependenciessuppresses thealbumentations→opencv-python-headlesstransitive conflict only for uv. Plainpip install "perception[benchmarking]"still lands both OpenCV distributions, causing file-level conflicts.Changes
README.md: Added "Optional extras" subsection documenting the conflict and a two-step pip workaround:pip install "perception[benchmarking]" pip install --force-reinstall --no-deps opencv-contrib-python-headlesspyproject.toml: Added inline note on[tool.uv] exclude-dependenciesclarifying it is uv-only and pointing pip users to the README.