feat: distribute fork-built scip so typeHierarchy works for end users - #29
Merged
Conversation
Upstream scip through v0.9.0 never populates global_symbols.relationships (scip-code/scip#464), so typeHierarchy errors on every real index. Until fix PR scip-code/scip#465 merges, build-scip.yml cross-compiles the public fork phuongddx/scip at the SCIP_COMMIT pin and publishes the binaries to jarvis-intelligence/jarvis-index releases -- the zoekt pattern -- and setup.sh installs from there instead of upstream releases.
Review findings: a presence-gated install_scip would strand every existing user on the broken upstream binary, so the skip now requires the installed scip to report the pinned fork commit, with a PATH-shadow warning after install. The typeHierarchy error text, plugin skills, README, and AGENTS.md now state the remedy (re-run setup.sh + reindex) instead of declaring the tool permanently broken.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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.
Why
typeHierarchyis broken for every end user: upstreamscip(throughv0.9.0) never populates
global_symbols.relationshipsinexpt-convert(scip#464), and the fix
(scip#465) is still
unmerged upstream. The fix IS merged in the public fork
phuongddx/scip.This PR distributes fork-built binaries to users via the existing zoekt
pattern — the private dev repo can't serve release assets anonymously, so
binaries are published to
jarvis-intelligence/jarvis-indexreleases.Plan:
plans/0807-0948-patched-scip-distribution/plan.mdWhat changed
SCIP_COMMIT(new): 12-char fork-commit pin, mirroringZOEKT_COMMIT.build-scip.yml(new): on pin change or manual dispatch, clones thefork at the pin (a git clone, not
go get— the fork keeps upstream'smodule path and a local
replacedirective), cross-compiles 4 platformswith
CGO_ENABLED=0 GOWORK=off, smoke-tests (version must stamp the pin;expt-convert --helpmust work), and publishes tarballs + sha256sidecars to jarvis-index under tag
scip-<pin>viaJARVIS_DIST_TOKEN.setup.sh: downloads scip from the jarvis-index release instead ofupstream. The install skip is version-gated, not presence-gated: an
installed scip that doesn't stamp the pinned commit (i.e. every existing
user's upstream v0.9.0) is reinstalled exactly once per pin bump. A
warning fires if an older scip earlier on PATH would shadow the install.
typeHierarchyerror, plugin skills, README,AGENTS.md, and CLAUDE.md now state the remedy (re-run setup.sh, then
jarvis reindex <slug>) instead of declaring the tool permanentlybroken — and the issues skill no longer tells users not to report it.
release-repo invariants, and upgrade-path tests (pin-stamped binary
skips; unpatched upstream binary falls through to reinstall).
Chicken-and-egg, handled
setup-smoke.ymlruns setup.sh for real on PRs, so the releasescip-56791658a873was published before this PR (locally cross-compiled at the pin, all 8
assets, anonymous download verified 200, binary stamps the pin with
clean: true). The post-merge push re-triggersbuild-scip.yml(the pinfile is new in that push), which rebuilds on CI and clobbers the same tag
— proving the workflow for future pin bumps.
Verified
sh -nclean;no new shellcheck warnings; workflow YAML parses.
install_scipvia the modified setup.shdownloaded from the live release, sha256-verified, installed; binary
reports
SHA: 56791658…/clean: true.269dcb1— chiefly the upgrade path for existing installs, which theoriginal implementation would have stranded on the broken binary.
Exit ramp
When upstream merges #465 and cuts a release: repoint setup.sh's scip
download at
scip-code/scip, deletebuild-scip.yml+SCIP_COMMIT.Documented in setup.sh, the workflow header, and CLAUDE.md.
After merging
build-scip.ymlrun rebuild/clobber the release.jarvis reindex <slug>to activate typeHierarchy (release also syncs the publicsetup.sh to jarvis-index).