Skip to content

Switch dependency installs to uv - #70

Merged
chazlarson merged 1 commit into
mainfrom
cursor/uv-package-manager-054f
Oct 21, 2026
Merged

chazlarson merged 1 commit into
mainfrom
cursor/uv-package-manager-054f

Conversation

@chazlarson

Copy link
Copy Markdown
Owner

Summary

The scripts and the Plex Image Picker now install from uv lockfiles instead of requirements.txt.

  • Root pyproject.toml / uv.lock covers the orchestrator and the Plex, Kometa, and TMDB scripts. Python is pinned to 3.12. ruff and pre-commit are in the dev group, so production installs skip them.
  • plex-image-picker/ is its own uv project, with pylint in its dev group. Its image moved from Python 3.9 to 3.12.
  • Both Dockerfiles copy uv 0.13.4 and run uv sync --frozen --no-dev --no-install-project.
  • direnv runs uv sync and activates .venv. Without direnv: uv sync, then uv run.
  • The unused TMDB/requirements.txt (it still listed python-dotenv) is gone, along with the pre-commit requirements-txt-fixer hook.

.github/workflows/CI.yml is unchanged. It only runs on master, still installs requirements.txt, and is the copied LizardByte plugin workflow (Python 2.7 tests, bundle packaging). It does not run on main.

Verification

  • uv lock and uv sync for both projects on CPython 3.12.3.
  • Root: import yaml, plexapi, requests, flask and compileall of orchestrator.py and menu.py.
  • Picker: import flask, plexapi, requests.
  • Docker image builds were not run here; this agent VM has no Docker daemon.
Open in Web Open in Cursor 

Replace the requirements files with locked uv projects for the scripts and the image picker, and install those locks in both Docker images.

Co-authored-by: chaz <chaz@chazlarson.com>
@chazlarson
chazlarson marked this pull request as ready for review October 21, 2026 01:34
@chazlarson
chazlarson merged commit 8056985 into main Oct 21, 2026
3 checks passed

@augmentcode augmentcode Bot 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.

Deep Code Review Agent🐛

Review completed with 1 suggestion.

Reviewed commit: e109802

Comment thread requirements.txt
@@ -1,25 +0,0 @@
alive-progress==2.4.1

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Deep Code Review Agent🐛

Removing requirements.txt leaves .github/workflows/CI.yml pointing at a file that no longer exists; a manual workflow_dispatch run, or any future master-targeted run, will fail in the dependency-install steps before tests or packaging can start.

Severity: medium


🤖 Was this useful? React with 👍 or 👎

@augmentcode

augmentcode Bot commented Oct 21, 2026

Copy link
Copy Markdown

PR Risk Analyzer Agent 🛡️

👀 Human review needed

Justification

This PR migrates dependency installation from requirements.txt to uv lockfiles for both the root project and plex-image-picker/.

  • Dependency parity is preserved in pyproject.toml: every production dependency and version constraint from the old requirements.txt is carried over (including sqlalchemy<2.0, plexapi>=4.16.1, alive-progress==2.4.1, and the TMDB/TVDB packages). pre-commit, ruff, and pylint[spelling] are correctly moved to dev groups so production installs skip them.
  • No application/source logic changes; the bulk of the diff (~1,800 lines) is generated uv.lock files.

However, this change rewrites production deployment artifacts and lacks automated verification:

  • Both Dockerfiles are rewritten to copy uv 0.13.4 and run uv sync --frozen --no-dev --no-install-project. plex-image-picker bumps its runtime from Python 3.9 to 3.12.
  • The PR description states the Docker image builds were not run, and .github/workflows/CI.yml does not run on main, so no CI gate verifies the new images build or start.

Recommend a human confirm both Docker images build and the orchestrator and picker services start under the uv-based install before merging.

Reviewed commit e109802

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.

2 participants