build: add reproducible uv setup and cross-platform lockfile - #14
Open
himynameisben wants to merge 1 commit into
Open
build: add reproducible uv setup and cross-platform lockfile#14himynameisben wants to merge 1 commit into
himynameisben wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds an optional, reproducible uv workflow for the local Python processors:
pyproject.tomlvirtual project for Python 3.10+uv.lockrequirements.txtfor existing pip usersuv sync --lockedin all localized READMEs.venvNo 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.txtonly 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:
an explicit failure when
pyproject.tomlanduv.lockare out of synccontinued pip compatibility through the exported
requirements.txtThe 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 --checkuv sync --lockeduv run --locked python -m unittest discover -s tests -vquick_validate.pyNotes
uv only manages the Python environment. It does not install or lock the external ffmpeg executable required for video frame extraction.