Repository navigation
Install sonpipe from a GitHub archive URL so [ced] needs no git - #32
Merged
Merged
Conversation
pip and uv shell out to a system git for git+ URLs, and many end-user machines (the planned uv-tool-based NDI installer's targets) have no git. Point the [ced] extra and ndr.setup.sonpipe at https://github.com/VH-Lab/sonpipe/archive/refs/heads/main.zip, fetched over plain HTTPS. The constant keeps its SONPIPE_GIT_URL name because the tests import it; add tests that it has no git+ and matches the extra. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017vKVGMMtp468mia5dVhAh5
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
Make NDR-python's optional CED/Spike2 support installable on machines with no
git. We're building a double-click NDI installer on top ofuv tool install. Forgit+URLs, uv and pip both shell out to a systemgit, and many end users (especially on Windows and macOS) don't have one. A GitHub archive (zip) URL is fetched over plain HTTPS instead. sonpipe is public, and its own dependencies (numpy, sonpy) come from PyPI, so after this change neitherpip install ndr[ced]norpython -m ndr.setup.sonpipeneeds git.Changes
pyproject.toml: the[ced]extra changes fromsonpipe @ git+https://github.com/VH-Lab/sonpipe.gittosonpipe @ https://github.com/VH-Lab/sonpipe/archive/refs/heads/main.zip. The comments around it now explain why it's an archive URL and how to upgrade.src/ndr/setup/sonpipe.py: the constant now holds the same archive URL string as the extra. The two must stay identical, because an environment that ends up with both would otherwise have conflicting direct references. The constant keeps the nameSONPIPE_GIT_URLbecausetests/test_setup_sonpipe.pyimports it. A comment now says the name is historical, and the module docstring no longer describes the URL as a git URL.tests/test_setup_sonpipe.py: renamed the URL test and added two tests. One checks that the URL has nogit+. The other checks that the constant matches the[ced]extra inpyproject.toml, so the two can't drift apart..github/workflows/ci.yml(comment only) andsrc/ndr/ndr_matlab_python_bridge.yaml(header comment only): wording changed from "git URL" to "archive URL". No bridge entries, statuses or hashes changed, and MATLAB-facing behaviour is the same.Upgrade note
uv and pip cache a branch's archive URL, so
--upgradealone may not pick up a newer sonpipe. To force it, usepip install --upgrade --force-reinstall ...oruv ... --reinstall.Downstream
NDI-python's CI ced job runs
python -m ndr.setup.sonpipe, so it will use the new URL automatically once this is merged. NDI-python doesn't need a matching change.Testing
blackandruff checkare clean.pytest tests/ src/ndr/test/ -m "not needs_matlab") has the same 55 failures locally with and without this change. All of them are import errors from optional dependencies that weren't in the sandbox (neo, pyabf and similar). This branch adds 2 tests, and both pass.https://github.com/VH-Lab/sonpipe/archive/refs/heads/main.zip. Theced-integrationCI job runspip install -e ".[dev,ced]", which now resolves through the archive URL, so that job is the real check.🤖 Generated with Claude Code
https://claude.ai/code/session_017vKVGMMtp468mia5dVhAh5
Generated by Claude Code