Fix pixi resolver: pytantan from PyPI, bump buscolite, drop Dockerfile source rebuild#57
Conversation
- pixi.toml: move pytantan from conda [dependencies] to [pypi-dependencies] pinned >=0.1.4 (bioconda only ships 0.1.3, PyPI has 0.1.4 which matches pyproject.toml's new floor). - pixi.toml: bump buscolite floor to >=26.2.22 to match pyproject.toml (prevents pixi resolver conflict between conda-side pin and local funannotate2 sdist's pypi requirement). - pixi.lock: regenerated. pytantan/archspec/scoring-matrices now sourced from PyPI; buscolite bumped to 26.4.22 from bioconda. - Dockerfile: drop the pytantan-from-git source rebuild (ARG PYTANTAN_VERSION, apt-get build toolchain, and the SKBUILD_CMAKE_ARGS pip install step). pixi install --locked is now the single install path and pulls 0.1.4 directly from the PyPI wheel. Agent-Id: agent-4d333a81-18f1-408d-8560-0c846ac09121
Agent-Id: agent-4d333a81-18f1-408d-8560-0c846ac09121
The published pytantan 0.1.4 wheels cause unit-test failures on Py 3.9, 3.10, 3.11 in GitHub Actions (while 3.12/3.13 pass on the same cp311-abi3 wheel). Rebuild from source so every Python in the matrix gets the AVX2-off portable baseline the pre-PR Dockerfile used. - Dockerfile: restore the PYTANTAN_VERSION=0.1.4 arg, the build-essential/cmake/zlib1g-dev apt install, and the SKBUILD_CMAKE_ARGS="-DHAVE_AVX2:BOOL=OFF;..." pip install --force-reinstall step against git@v0.1.4. - .github/workflows/tests.yml: add cmake to the Linux apt install (and the macOS conda install), and export PIP_NO_BINARY=pytantan so pip installs pytantan from sdist on all runners. pixi.lock and pixi.toml are unchanged — pixi still resolves pytantan 0.1.4 from PyPI; the pip --force-reinstall inside the Docker build replaces the wheel with the source-compiled version. Agent-Id: agent-4d333a81-18f1-408d-8560-0c846ac09121
Update: CI failures resolved in
|
| Job | 1cc8fe26 |
b75fc6c7 |
|---|---|---|
ubuntu-latest, 3.9 |
❌ | ✅ |
ubuntu-latest, 3.10 |
❌ | ✅ |
ubuntu-latest, 3.11 |
❌ | ✅ |
ubuntu-latest, 3.12 |
✅ | ✅ |
ubuntu-latest, 3.13 |
✅ | ✅ |
macos-latest, 3.11 |
❌ | ✅ |
Trade-off: each CI job now compiles pytantan from sdist, adding ~10–20s to Install dependencies. Worth it for reliability until the upstream wheels are fixed.
Problem
After #56 merged,
mainreceived a dependency bump (3bfa9baa) that landedpyproject.tomlwithpytantan>=0.1.4andbuscolite>=26.2.22. That broke the Docker build because:0.1.3.pixi.tomlhadpytantan = "*"under conda[dependencies], so pixi would never try PyPI for it — thepyproject.tomlfloor of>=0.1.4from the localfunannotate2sdist was unsatisfiable.pixi.tomlstill pinned>=26.1.26under conda[dependencies], but the localfunannotate2sdist (viapyproject.toml) now requires>=26.2.22. Pixi's conda-vs-PyPI pin reconciliation raised an unsatisfiable-requirements error onpixi lock --check.PYTANTAN_VERSION=0.1.3— now redundant since 0.1.4 comes from PyPI as a wheel.Changes
pixi.tomlpytantan = "*"from conda[dependencies].pytantan = ">=0.1.4"to[pypi-dependencies].buscolite = ">=26.1.26"→">=26.2.22"to matchpyproject.toml.pixi.lockRegenerated in a
linux/amd64pixi container (pixi's build dispatch can't resolve onosx-arm64for thislinux-64-only workspace). Packages changed:pytantan 0.1.3(bioconda) →0.1.4(PyPI wheelcp311-abi3-manylinux_2_24_x86_64)archspec 0.2.5,scoring-matrices 0.3.4→ moved to PyPI alongside pytantan (same versions)buscolite 26.1.26→26.4.22(bioconda)DockerfileARG PYTANTAN_VERSION=0.1.3(top-level and the build-stage duplicate).apt-get install git build-essential cmake zlib1g-dev ca-certificatesstep — it only existed for the pytantan source rebuild.SKBUILD_CMAKE_ARGS=... pip install --no-deps --force-reinstall "pytantan @ git+..."step.COPY+pixi install --locked+ entrypoint shell-hook.Diff stat:
3 files changed, 36 insertions(+), 72 deletions(-)Verification
Risk notes
pytantan 0.1.4uses runtimearchspecdispatch, but the x86_64 wheel may still ship AVX2 code paths thatSIGILLon non-AVX2 CPUs. If a crash report comes in from such a host, the source-rebuild pattern can be re-introduced behind a build arg (preserved in git history from commit1a7e3356).pixi lockcan't be run natively onosx-arm64for this workspace (linux-64-only, plus the localfunannotate2sdist needs a matching-platform Python in pixi's build dispatch). Usedocker run --rm --platform=linux/amd64 -v "$PWD":/work -w /work ghcr.io/prefix-dev/pixi:0.67.0 pixi lockor rely on CI.Pull Request opened by Augment Code with guidance from the PR author