Skip to content

Migrate project to uv-managed environment#400

Merged
Labfox merged 5 commits into
mainfrom
migrate-to-uv-managed-8187096424888233696
Apr 24, 2026
Merged

Migrate project to uv-managed environment#400
Labfox merged 5 commits into
mainfrom
migrate-to-uv-managed-8187096424888233696

Conversation

@Labfox
Copy link
Copy Markdown
Owner

@Labfox Labfox commented Apr 24, 2026

This PR migrates the repository's dependency and environment management from a legacy pip-based system to uv.

Key changes:

  • pyproject.toml as Single Source of Truth: All metadata and dependencies (including dev and docs) are now managed in pyproject.toml.
  • Reproducible Environments: Added uv.lock to ensure consistent dependency resolution across different environments.
  • Modernized Tooling: The ./cli script has been updated to leverage uv's performance and features, replacing manual virtualenv management and uv pip commands with uv run, uv sync, and uv build.
  • Cleanup: Removed redundant legacy files (setup.py, MANIFEST.in, and multiple requirements files).
  • Inconsistency Fix: Standardized the project name to whatsfly across all configurations.

PR created automatically by Jules for task 8187096424888233696 started by @Labfox

- 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>
@google-labs-jules
Copy link
Copy Markdown

👋 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 @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

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>
Comment thread backend/Makefile
@@ -0,0 +1,9 @@
.PHONY: build-macos bump

build-macos:
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jules You might want to add other build targets (linux and windows)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added build-linux and build-windows targets to both the root Makefile and backend/Makefile.

Comment thread Makefile
build-macos:
$(MAKE) -C backend build-macos

test-setup:
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jules Test-Setup could probably copy the go binary, to be used for manual/automated testing of modifications on the backend

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jules It would be better if the build called directly the backend/ makefile

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/.

Comment thread pyproject.toml Outdated

[project]
name = "whatsfly_labfox"
name = "whatsfly"
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jules It is required for the project to be named whatsfly_labfox, because the PyPI package name whatsfly is reserved.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted the project name to whatsfly_labfox in pyproject.toml to avoid PyPI name reservation issues.

google-labs-jules Bot and others added 2 commits April 24, 2026 19:56
- 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>
Copy link
Copy Markdown
Owner Author

@Labfox Labfox left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jules this is good, but don't push the whatsfly_labfox.egg-info directory (you're welcome to add it to the gitignore too

- 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>
Copy link
Copy Markdown
Owner Author

@Labfox Labfox left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Labfox Labfox merged commit a9c251c into main Apr 24, 2026
4 checks passed
@Labfox Labfox deleted the migrate-to-uv-managed-8187096424888233696 branch April 24, 2026 20:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant