Skip to content

build: add reproducible uv setup and cross-platform lockfile - #14

Open
himynameisben wants to merge 1 commit into
0x0funky:mainfrom
himynameisben:main
Open

build: add reproducible uv setup and cross-platform lockfile#14
himynameisben wants to merge 1 commit into
0x0funky:mainfrom
himynameisben:main

Conversation

@himynameisben

Copy link
Copy Markdown

Summary

This PR adds an optional, reproducible uv workflow for the local Python processors:

  • add a pyproject.toml virtual project for Python 3.10+
  • commit a cross-platform uv.lock
  • export a pinned requirements.txt for existing pip users
  • document uv sync --locked in all localized READMEs
  • ignore the project-local .venv

No runtime dependencies were added. The project still only uses Pillow and NumPy, while ffmpeg remains an external system dependency for video2dsprite.

Why uv?

The previous requirements.txt only specified lower bounds, so installations performed at different times could resolve different package versions.

A committed uv lockfile provides:

  • reproducible dependency versions across supported Python versions and platforms

  • package artifact hashes recorded in the lockfile

  • fast, isolated setup with one command:

    uv sync --locked
  • an explicit failure when pyproject.toml and uv.lock are out of sync

  • continued pip compatibility through the exported requirements.txt

The repository is configured as a uv virtual project (package = false) because it is a collection of skills and scripts rather than an installable Python package.

Validation

  • uv lock --check
  • uv sync --locked
  • uv run --locked python -m unittest discover -s tests -v
    • 15 tests passed
  • all three skill directories passed quick_validate.py

Notes

uv only manages the Python environment. It does not install or lock the external ffmpeg executable required for video frame extraction.

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