Repository navigation
Install every runtime dependency from archive URLs, not git - #328
Merged
Merged
Conversation
Switch did, ndr[formats], ndi-compress and ndi-ontology from git+ URLs to GitHub archive (zip) URLs, so installing ndi needs no git on the user's machine. Add a CI job that installs with git shadowed by a failing stub, so a git+ dependency cannot sneak back in unnoticed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013Te2MAzqGZo8MQ4V788DkB
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.
Goal
Installing
ndishould not needgiton the user's machine. The double-click installer we're building is based onuv tool install. Forgit+URLs, uv shells out to a systemgit, and end users (especially on Windows and macOS) often don't have one. GitHub archive (zip) URLs are fetched over plain HTTPS instead. #326 already switched the two vhlab-* dependencies. This PR switches the remaining four.Changes
pyproject.toml: four dependency linesThe extras and package names are unchanged. After this change,
grep 'git+' pyproject.tomlfinds nothing, in either[project.dependencies]or any extra. No sibling package depends on these four, so there are no cross-repo URLs to keep in step. A docstring intests/test_intan_blockinfo_arity.pyquoted the oldgit+pin; it now quotes the archive URL. The point it makes still holds, because the archive still tracksmain.New CI job:
Install without git(inci.yml)Runs on
ubuntu-latest, on the same triggers as the other jobs (pull_request, and push to main):astral-sh/setup-uv@v6, pinned to uv0.11.32, with the cache turned off;gitstub that always fails ahead of the real git onPATH, and checks thatgit --versionfails before going any further;uv venv --python 3.12, thenuv pip install ".[tutorials]"from the checked-out tree.[tutorials]brings in pandas and matplotlib, whichndi checklooks for;ndi, did, ndr, vlt, vhlib, ndicompress, ndi_ontology;python -m ndi checkfrom outside the checkout, so it tests the installed wheel.The job exists so that a
git+dependency added back later (directly or through an extra we install) fails CI rather than failing on a user's machine.Notes
maintherefore needs--reinstallor--refresh(for exampleuv tool install --reinstall ndi ...oruv pip install --refresh ...).ndi_install.pystill clones NDIcalc-vis-matlab and Pyraview. Those are separate upcoming steps.[ced]extra (sonpipe) still uses git. NDI doesn't request it, and it is being fixed in a separate NDR-python PR.github.com/.../archive/...downloads. I could not test the archive-URL install locally; the new CI job is the real test.git --versionfail and that uv then stops on the 403 rather than trying git.ndi checkpasses all 19 checks, and the full suite gives 5791 passed, 698 skipped.blackandruffare clean.🤖 Generated with Claude Code
https://claude.ai/code/session_013Te2MAzqGZo8MQ4V788DkB
Generated by Claude Code