Repository navigation
fix: revive Quay container build (dead ADD endpoint + py3.8 dep-rot) - #202
Merged
Merged
Conversation
The Quay container build has been failing. A full local `docker build` reproduction found two stacked failures: 1. `ADD http://date.jsontest.com /etc/builddate` (a cache-bust trick) now fails: the endpoint returns HTTP 403, and Docker/Quay treat a non-200 on `ADD <url>` as a fatal error. Build died at step 2/5, before any package installed. This is the "internal system error after the ADD command" seen on Quay's manual build. Removed — the Docker cache already invalidates on content change, so the manual bust was both broken and unnecessary. 2. With the ADD line gone, the build got far enough to hit a second failure: the base image `hdc-workflows/ubuntu:20.04` ships Python 3.8, which is below phippery's own `requires-python >=3.9`. On 3.8, the POT dependency has no wheel and builds from source, where its pre-Cython-3 `.pyx` fails to compile ("'ndarray' is not a type identifier", ~40 errors). Bumping the base image to `ubuntu:22.04` (Python 3.10.12) fixes both: it matches phippery's Python floor and lets POT install a prebuilt cp310 wheel (no source compile). Verified locally end-to-end — image builds green, `import phippery` -> 1.3.1, `phippery --help` runs. Also modernized the LABEL to the `key=value` form (Docker deprecated the legacy `key value` form). bumpver's Dockerfile pattern is the bare `{version}`, so `1.3.1` is still matched. Co-Authored-By: Claude Opus 4.8 <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
The Quay container build (
quay.io/hdc-workflows/phippery) has beenfailing — the README's container badge shows "building"/no-status. A full
local
docker buildreproduction found two stacked failures, bothfixed here:
1. Dead
ADDcache-bust endpoint (the immediate blocker).ADD http://date.jsontest.com /etc/builddatenow returns HTTP 403;Docker/Quay treat a non-200 on
ADD <url>as a fatal build error, so thebuild died at step 2/5 before installing anything. This is the "internal
system error after the ADD command" seen on Quay's manual build. Removed —
Docker already invalidates the cache on content change, so the manual bust
was both broken and unnecessary.
2. Python 3.8 dependency rot (hidden behind #1).
With the
ADDline gone, the build reached thepip installstep andfailed there: the base image
hdc-workflows/ubuntu:20.04ships Python3.8, which is below phippery's own
requires-python >=3.9. On 3.8 thePOTdependency has no wheel and builds from source, where itspre-Cython-3
.pyxfails to compile ('ndarray' is not a type identifier, ~40 errors).Fix: bump the base image to
ubuntu:22.04(Python 3.10.12). Thismatches phippery's Python floor and lets
POTinstall a prebuiltcp310wheel — no source compile, no Cython crash. Also modernized theLABELto thekey=valueform (Docker deprecated the legacykey valueform); bumpver's Dockerfile pattern is the bare
{version}, so1.3.1isstill matched.
Test plan
Verified locally end-to-end with
docker build --no-cache(the currentmainDockerfile was reproduced failing first, then this version):pip install git+…@1.3.1POT-0.9.7installs as a wheel (was: source build → Cython crash)docker run … python3 -c "import phippery"→ 1.3.1docker run … phippery --help→ CLI runsdocker run … python3 --version→ Python 3.10.12 (≥ 3.9 floor)Merging to
maintriggers a fresh Quay build, which is the realend-to-end confirmation.
Deviations from spec
This PR was scoped by a live decision (not a written issue spec). The user
asked to "remove the ADD line and push to main to test." During local
verification I found the second failure (POT/Cython on py3.8) and asked how
deep to fix; the user chose "ADD + modern base image." The
LABELmodernization was a minor, in-scope cleanup folded into the header change I
was already making. No other departures.
🤖 Generated with Claude Code