Migrate project to uv-managed environment#400
Conversation
- Consolidate all dependencies and development extras into `pyproject.toml`. - Reconcile metadata and align project name to `whatsfly`. - Configure `tool.setuptools` in `pyproject.toml` for package discovery and data file inclusion, replacing `MANIFEST.in`. - Generate `uv.lock` for reproducible environments. - Update `cli` script to use native `uv` commands (`uv sync`, `uv run`, `uv lock`, `uv build`). - Remove legacy files: `setup.py`, `MANIFEST.in`, `requirements.in`, `requirements.txt`, `dev-requirements.in`, and `dev-requirements.txt`. Co-authored-by: Labfox <108928065+Labfox@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
… Makefile - Consolidate all dependencies and development extras into `pyproject.toml`. - Reconcile metadata and align project name to `whatsfly`. - Configure `tool.setuptools` in `pyproject.toml` for package discovery and data file inclusion, replacing `MANIFEST.in`. - Generate `uv.lock` for reproducible environments. - Replace the legacy `cli` script with a `Makefile` (and `backend/Makefile`) using native `uv` commands. - Remove legacy files: `setup.py`, `MANIFEST.in`, `requirements.in`, `requirements.txt`, `dev-requirements.in`, `dev-requirements.txt`, and `cli`. Co-authored-by: Labfox <108928065+Labfox@users.noreply.github.com>
| @@ -0,0 +1,9 @@ | |||
| .PHONY: build-macos bump | |||
|
|
|||
| build-macos: | |||
There was a problem hiding this comment.
@jules You might want to add other build targets (linux and windows)
There was a problem hiding this comment.
Added build-linux and build-windows targets to both the root Makefile and backend/Makefile.
| build-macos: | ||
| $(MAKE) -C backend build-macos | ||
|
|
||
| test-setup: |
There was a problem hiding this comment.
@jules Test-Setup could probably copy the go binary, to be used for manual/automated testing of modifications on the backend
There was a problem hiding this comment.
Updated the test-setup target to automatically compile the Go backend for the current platform and place it in whatsfly/dependencies/ so it can be picked up by the Python client during local tests.
There was a problem hiding this comment.
@jules It would be better if the build called directly the backend/ makefile
There was a problem hiding this comment.
Refactored the Makefiles so that the root Makefile now calls a new build target in backend/Makefile. This build target handles host-platform compilation and correctly places the output in whatsfly/dependencies/.
|
|
||
| [project] | ||
| name = "whatsfly_labfox" | ||
| name = "whatsfly" |
There was a problem hiding this comment.
@jules It is required for the project to be named whatsfly_labfox, because the PyPI package name whatsfly is reserved.
There was a problem hiding this comment.
Reverted the project name to whatsfly_labfox in pyproject.toml to avoid PyPI name reservation issues.
- Consolidate all dependencies and development extras into `pyproject.toml`. - Align project name to `whatsfly_labfox` (maintaining consistency with PyPI). - Configure `tool.setuptools` in `pyproject.toml` for package discovery and data file inclusion. - Generate `uv.lock` for reproducible environments. - Replace the legacy `cli` script with a `Makefile` (and `backend/Makefile`) using native `uv` commands. - Expand backend build targets in Makefiles to include Linux and Windows. - Update `test-setup` to compile the Go backend for the current platform locally. - Remove legacy files: `setup.py`, `MANIFEST.in`, `requirements.in`, `requirements.txt`, `dev-requirements.in`, `dev-requirements.txt`, and `cli`. Co-authored-by: Labfox <108928065+Labfox@users.noreply.github.com>
- Consolidate all dependencies and development extras into `pyproject.toml`. - Align project name to `whatsfly_labfox` (maintaining consistency with PyPI). - Configure `tool.setuptools` in `pyproject.toml` for package discovery and data file inclusion. - Generate `uv.lock` for reproducible environments. - Replace the legacy `cli` script with a modular `Makefile` system. - Delegate host and cross-platform backend builds to `backend/Makefile`. - Update `test-setup` to build the backend locally for the current platform. - Remove legacy files: `setup.py`, `MANIFEST.in`, `requirements.in`, `requirements.txt`, `dev-requirements.in`, `dev-requirements.txt`, and `cli`. Co-authored-by: Labfox <108928065+Labfox@users.noreply.github.com>
- Consolidate all dependencies and development extras into `pyproject.toml`. - Align project name to `whatsfly_labfox`. - Configure `tool.setuptools` in `pyproject.toml` for package discovery and data file inclusion. - Generate `uv.lock` for reproducible environments. - Replace legacy `cli` script with a modular `Makefile` system. - Delegate host and cross-platform backend builds to `backend/Makefile`. - Update `.gitignore` to exclude `*.egg-info` and other build artifacts. - Remove legacy files: `setup.py`, `MANIFEST.in`, `requirements.in`, `requirements.txt`, `dev-requirements.in`, `dev-requirements.txt`, and `cli`. Co-authored-by: Labfox <108928065+Labfox@users.noreply.github.com>
This PR migrates the repository's dependency and environment management from a legacy pip-based system to
uv.Key changes:
pyproject.tomlas Single Source of Truth: All metadata and dependencies (including dev and docs) are now managed inpyproject.toml.uv.lockto ensure consistent dependency resolution across different environments../cliscript has been updated to leverageuv's performance and features, replacing manual virtualenv management anduv pipcommands withuv run,uv sync, anduv build.setup.py,MANIFEST.in, and multiplerequirementsfiles).whatsflyacross all configurations.PR created automatically by Jules for task 8187096424888233696 started by @Labfox