Repository navigation
Update project to use uv #10
Copy link
Copy link
Closed
Labels
tech debtItems that come with age of a projectItems that come with age of a project
Description
Plan for Issue #10 — "Update project to use uv"
Overview
- Goal: Update the project to "use uv" per issue Update project to use uv #10 (Update project to use uv #10).
- Current state: repository contains requirements.txt at project root. No references to "uvicorn" or "uvloop" were found in the codebase. Issue body was minimal: "Update project to use uv" (open).
- Clarification: "uv" refers to the Astral uv package manager (https://docs.astral.sh/uv/). The requested change is to adopt Astral's uv for dependency management and developer workflows.
Proposed approach
- Define scope: decide whether to fully migrate dependency management to Astral uv (preferred) or add uv alongside current requirements.txt for short-term compatibility.
- Migrate dependencies: follow Astral's uv docs to create uv configuration (pyproject.toml or uv-specific config), convert current requirements.txt to uv format, and generate a lock file via uv lock commands.
- Update developer/run tasks and docs: adjust Invoke tasks, README, and local run instructions to use uv commands (e.g., uv install, uv run) as documented by Astral.
- Update CI workflows: install uv in CI and replace dependency/install steps with uv equivalents; cache uv's virtualenv or lockfile artifacts per Astral recommendations.
- Test locally and on CI: ensure site builds (pelican), dev-serve commands still behave as expected, and no regressions occur.
- Open PR with migration notes, changelog, and rollback instructions.
Acceptance criteria (must use Astral uv)
- The project uses Astral uv (https://docs.astral.sh/uv/) as the canonical dependency manager; plan and PR reference the Astral docs.
- Dependency management: repository contains uv configuration (pyproject or uv config) and a uv-generated lock file committed where recommended by Astral.
- Local developer workflow: README and Invoke tasks document uv commands per Astral docs; running uv install followed by documented dev steps reproduces the dev environment.
- CI integration: CI installs and uses Astral uv to install dependencies and run build steps; CI passes using uv-managed dependencies.
- Documentation: PR includes migration notes citing Astral docs and rollback instructions.
Todos (high-level)
- confirm-uv-target: (done) Confirmed that "uv" means the Astral uv package manager.
- update-dependencies: Migrate requirements to Astral uv configuration and add uv lock file; follow https://docs.astral.sh/uv/ for commands and recommended practices.
- update-invoke-tasks: Update Invoke tasks and local run instructions to use uv commands per Astral docs.
- update-ci: Ensure CI installs Astral uv and replaces install steps with uv equivalents; add caching per Astral recommendations.
- test-local: Run local build, serve, and smoke tests with uv-managed environment.
- update-docs: Update README, CHANGELOG, and contributing docs to document Astral uv usage and link to https://docs.astral.sh/uv/.
- open-pr: Prepare PR with dependency migration, task edits, CI updates, and test notes; link to issue Update project to use uv #10 and reference Astral docs.
Notes & Risks
- The repo is a Pelican static site. Astral uv will primarily affect dependency management and developer workflows; confirm no production runtime changes needed.
- Follow Astral's guidance on lockfile management and caching; pin versions and include lock file to avoid surprises; add rollback guidance in PR.
Next steps
- Implement the migration steps above in order, starting with update-dependencies following Astral's docs.
Created-by: Copilot session
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
tech debtItems that come with age of a projectItems that come with age of a project
Activity