Fix from-scratch install: coolbox PyPI quarantine (P0) + epinformerseq nvidia channel (P1)#91
Merged
lucapinello merged 1 commit intoJun 17, 2026
Conversation
…rseq nvidia channel) A scorched-earth fresh install on macOS arm64 surfaced two install-blocking bugs that warm CI/pytest paths miss: - P0: coolbox>=0.4.0 is QUARANTINED on PyPI, so `mamba env create -f environment.yml` fails for everyone. Because pip installs the pip: block as one batch, it also drops fastmcp/huggingface_hub/oxbow (the MCP server stack). Pin coolbox to the official GitHub 0.4.0 tag (SHA 651b930) instead. Verified cross-platform on arm64: installs, imports, and all symbols chorus uses (GTF, TabFileReaderInMemory, FMT2COLUMNS) resolve. Revert to PyPI once un-quarantined. - P1: the new epinformerseq oracle env fails to build (`Failed to create environment: None`) because its yaml declares the vestigial `nvidia` conda channel and, unlike every other oracle, is not run through platform adaptation; the channel SSL-times-out on non-CUDA hosts. Remove it (torch comes via pip, which auto-selects CUDA on Linux / MPS on macOS). Also: - manager.py: env-create failures logged process.stderr (always None — stderr is merged into the streamed stdout), giving the useless "Failed to create environment: None". Capture and log the output tail + exit code instead. - cli: the --include-alternative-backends help text wrongly said alphagenome_pt is opt-in; it installs by default (_SKIP_FROM_DEFAULT_SETUP is empty). Fix the text to describe the flag as a no-op. - README: note that the MCP server must be restarted after upgrading. - audits/: full scorched-earth fresh-install audit write-up (all findings + fixes). Verified: mamba env create -f environment.yml builds clean; 8/8 oracle envs healthy; Enformer prediction + variant scan pass; MCP server serves tool calls. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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
A genuine scorched-earth fresh install (every env / weight / background / genome wiped, nothing cached) on macOS arm64 surfaced two install-blocking bugs that the warm CI/pytest path misses. Both are fixed here; verified end-to-end (8/8 oracles healthy, real prediction + variant scan pass, MCP server serves tool calls).
Full write-up:
audits/2026-06-16_macos_arm64_fresh_install_audit.md.Bugs fixed
1. P0 —
coolboxquarantined on PyPI breaks the documented installcoolbox>=0.4.0is quarantined on PyPI (simple index returnspypi:project-status: quarantinedwith zero files), somamba env create -f environment.ymlfails for every new user. Worse, pip installs thepip:block as one batch, so the failure also dropsfastmcp/huggingface_hub/oxbow— the MCP server stack — leaving a confusing error pointed only at coolbox.Fix: install coolbox from the official upstream repo, SHA-pinned to the
0.4.0release tag (GangCaoLab/CoolBox@651b930), which is the legit actively-maintained source (257★, last push 2026-06-08), pure-pip /requires-python >=3.7(cross-platform). Verified on arm64: builds, imports as0.4.0, and the exact symbols chorus uses (GTF,TabFileReaderInMemory,FMT2COLUMNS) resolve. A comment tells us to revert tocoolbox>=0.4.0once PyPI un-quarantines it.2. P1 — new
epinformerseqoracle env fails to buildchorus setupreports7/8 oracles ready; epinformerseq dies withFailed to create environment: None. Root cause:environments/chorus-epinformerseq.ymldeclares the vestigialnvidiaconda channel, and — unlike every other oracle — epinformerseq is not registered for platform adaptation, so the channel isn't stripped on non-CUDA hosts.conda.anaconda.org/nvidiaSSL-times-out → build aborts. Nothing uses the channel (torch comes viapip: torch>=2.0, which auto-selects CUDA on Linux / MPS on macOS).Fix: remove the dead
nvidiachannel. Rebuilt clean (env + weights + background).Supporting fixes
manager.py— env-create failures loggedprocess.stderr, which is alwaysNone(stderr is merged into the streamed stdout), producing the uselessFailed to create environment: None. Now captures the last 25 output lines + exit code. (This is why New version of chorus package #2 was opaque.)--include-alternative-backendshelp text claimedalphagenome_ptis opt-in; it actually installs by default (_SKIP_FROM_DEFAULT_SETUPis empty). Corrected to describe the flag as a no-op. No behavior change.Verification
mamba env create -f environment.ymlbuilds clean (throwaway env, coolbox + MCP deps import) ✅chorus health→ 8/8 oracles healthy ✅list_oracles()returns data ✅Open item (NOT in this PR — needs a maintainer decision)
cwd-relative data paths:
genomes/anddownloads/resolve relative to the working directory, so running setup from two clones silently duplicated ~31 GB andchorus cleanupwould orphan one copy. This is a behavioral/migration change, so it's documented in the audit as a proposal rather than changed here.🤖 Generated with Claude Code