Skip to content

Fix from-scratch install: coolbox PyPI quarantine (P0) + epinformerseq nvidia channel (P1)#91

Merged
lucapinello merged 1 commit into
mainfrom
fix/2026-06-16-fresh-install-coolbox-epinformerseq
Jun 17, 2026
Merged

Fix from-scratch install: coolbox PyPI quarantine (P0) + epinformerseq nvidia channel (P1)#91
lucapinello merged 1 commit into
mainfrom
fix/2026-06-16-fresh-install-coolbox-epinformerseq

Conversation

@lucapinello

Copy link
Copy Markdown
Contributor

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 — coolbox quarantined on PyPI breaks the documented install

coolbox>=0.4.0 is quarantined on PyPI (simple index returns pypi:project-status: quarantined with zero files), so mamba env create -f environment.yml fails for every new user. Worse, pip installs the pip: block as one batch, so the failure also drops fastmcp / 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.0 release 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 as 0.4.0, and the exact symbols chorus uses (GTF, TabFileReaderInMemory, FMT2COLUMNS) resolve. A comment tells us to revert to coolbox>=0.4.0 once PyPI un-quarantines it.

2. P1 — new epinformerseq oracle env fails to build

chorus setup reports 7/8 oracles ready; epinformerseq dies with Failed to create environment: None. Root cause: environments/chorus-epinformerseq.yml declares the vestigial nvidia conda 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/nvidia SSL-times-out → build aborts. Nothing uses the channel (torch comes via pip: torch>=2.0, which auto-selects CUDA on Linux / MPS on macOS).

Fix: remove the dead nvidia channel. Rebuilt clean (env + weights + background).

Supporting fixes

  • manager.py — env-create failures logged process.stderr, which is always None (stderr is merged into the streamed stdout), producing the useless Failed to create environment: None. Now captures the last 25 output lines + exit code. (This is why New version of chorus package #2 was opaque.)
  • CLI help--include-alternative-backends help text claimed alphagenome_pt is opt-in; it actually installs by default (_SKIP_FROM_DEFAULT_SETUP is empty). Corrected to describe the flag as a no-op. No behavior change.
  • README — added a note to restart Claude Code/Desktop after upgrading (a running MCP server serves stale in-memory code; it listed only 6 oracles until restart).

Verification

  • mamba env create -f environment.yml builds clean (throwaway env, coolbox + MCP deps import) ✅
  • chorus health8/8 oracles healthy
  • Enformer prediction + variant scan at the β-globin locus → PASS
  • MCP server connected and list_oracles() returns data ✅

Open item (NOT in this PR — needs a maintainer decision)

cwd-relative data paths: genomes/ and downloads/ resolve relative to the working directory, so running setup from two clones silently duplicated ~31 GB and chorus cleanup would 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

…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>
@lucapinello lucapinello merged commit 256fca2 into main Jun 17, 2026
1 check passed
@lucapinello lucapinello deleted the fix/2026-06-16-fresh-install-coolbox-epinformerseq branch June 17, 2026 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant