Skip to content

adopt UV instead of pip - #50

Open
epugh wants to merge 13 commits into
apache:mainfrom
epugh:adopt_uv
Open

adopt UV instead of pip#50
epugh wants to merge 13 commits into
apache:mainfrom
epugh:adopt_uv

Conversation

@epugh

@epugh epugh commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

Description

pip to uv migration.

Issues Resolved

Fixes #28.

Testing

  • New functionality includes testing

[Describe how this change was tested]


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@janhoy janhoy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for this, one initial comment, will take it for a spin later

Comment thread .github/workflows/unit-test.yml Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Migrates the project’s development, CI, and runtime helper scripts from pip/pyenv workflows to uv, aiming to improve reproducibility and installation speed across local development, Docker builds, and GitHub Actions.

Changes:

  • Updated local dev and helper scripts (Makefile, run.sh) to use uv sync / uv run instead of pip install.
  • Updated CI to install uv and removed pyenv initialization from the build script.
  • Updated Docker build steps and developer documentation to reflect the uv-based workflow.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
run.sh Replaces editable pip install flow with uv sync + uv run for running the CLI/daemon wrappers.
pyproject.toml Introduces a [tool.uv] section documenting uv as the environment manager.
Makefile Replaces pip/pyenv-based targets with uv-based equivalents for develop/build/test/lint/tox.
docker/Dockerfile Installs uv in build/runtime stages and switches wheel build/install steps toward uv.
DEVELOPER_GUIDE.md Updates contributor setup/testing instructions to use uv sync/run and uv.lock.
AGENTS.md Updates agent/dev prerequisites and setup steps to reference uv instead of pyenv.
.github/workflows/unit-test.yml Installs uv via astral-sh/setup-uv before running the CI build script.
.ci/build.sh Removes pyenv PATH/shims initialization; relies on Makefile’s uv-based setup.
Comments suppressed due to low confidence (1)

Makefile:63

  • test depends on develop, which can lead to redundant uv sync runs in automation (when develop is invoked explicitly). Consider running pytest via uv run --extra develop ... and keeping test independent of develop.
test: develop
	uv run pytest tests/

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Makefile Outdated
Comment thread pyproject.toml
Comment thread docker/Dockerfile Outdated
Comment thread Makefile Outdated
Comment thread Makefile
Comment thread run.sh Outdated
epugh and others added 2 commits July 27, 2026 11:49
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@epugh

epugh commented Jul 27, 2026

Copy link
Copy Markdown
Contributor Author

I think this is as far as my knowledge gets me... @janhoy would be happy to have you push to this branch as well to get this to "done done" ;-).

Comment thread Makefile
Comment thread Makefile Outdated
@janhoy

janhoy commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

In last commit I had Claude bring docs up to date with uv (remove pip / pyenv mentions):

Three docs still described the old pyenv/pip workflow.

PYTHON_SUPPORT_GUIDE.md — the "add a Python version" checklist:

  • Removed the .ci/variables.json step and the dead pyinst/check-pip Makefile snippet (those targets no longer exist)
  • Now points at the actual post-uv sources of truth: pyproject.toml (requires-python, classifiers, tox envlist — with a note that tox-uv auto-downloads missing interpreters), .python-version, and the it<VERSION> Makefile targets
  • Testing steps: pyenv local <version>uv sync --extra develop --python <version>
  • Binary-path example: ~/.pyenv/shims/solr-orbit.venv/bin/solr-orbit

docs/user-guide/install-and-configure/installing.md:

  • Prerequisites: replaced the Python + pip bullets with a single uv bullet (uv downloads Python 3.12 automatically)
  • Replaced the pyenv tip with a "uv manages Python versions" tip incl. install one-liners
  • Install / virtualenv / developer / upgrade flows: pip install -e . + manual python3 -m venvuv sync / uv sync --extra develop; the separate "Virtual environment (recommended)" section was folded away since uv sync always creates .venv

docs/quickstart.md: pip install -e .uv sync + source .venv/bin/activate

Verified: ran the documented quickstart flow from scratch — plain uv sync then .venv/bin/solr-orbit --versionsolr-orbit 0.1.0 ✅. A final grep confirms no stale pyenv/pip instructions remain under docs/ or the guides.

Note: .ci/variables.json was now completely orphaned so I removed it

Comment thread docs/user-guide/install-and-configure/installing.md
Add dependabot workflow for Dockerfile

@janhoy janhoy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@epugh I did some rounds of fixes and more reviews. Updated docs. Upgraded uv version etc.

I think it is good to go from my end

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 13 out of 14 changed files in this pull request and generated 2 comments.

Comment thread run.sh Outdated
Comment thread run.sh Outdated
janhoy and others added 2 commits July 29, 2026 16:20
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…the project root

Addresses copilot review: install_solrorbit's skip logic was dead since it was
always called without arguments, so every invocation paid for a uv sync. Pass
the venv binary path so repeat runs skip the sync (the self-update path still
syncs unconditionally), and use --project/--no-sync so uv resolves the checkout
rather than the caller's working directory.
@epugh

epugh commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author

Just looked at your most recent commits and tried out some commands... Seemed great. Will wait for CI stuff to have a chance to finish and merge.

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.

Migrate from pip to uv with lockfile

3 participants