Remove conda: CI and docs build from the container#733
Merged
Conversation
The Docker image (slim Python + apt + uv-frozen wheels) is already the deployment environment; testing a separate conda env in ci-release.yml tested something nothing ships — and that conda path had silently rotted. Move the suite into the artifact: deploy-image.yml now runs `pytest` inside the dev image alongside the existing example-pipeline and binary smokes. Split build/test from publish — pull_request builds and tests without pushing (works for fork PRs too); only pushes to develop/main/ master publish to ghcr. Delete ci-release.yml. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
cd.yml built docs via conda + install_shapepipe + `conda install pandoc`. Build them inside the dev image instead (its `doc` extra carries sphinx + myst-parser + the theme). pandoc was vestigial — docs use myst_parser and autodoc, no nbsphinx/notebooks — so it's dropped, along with the old importlib-metadata workaround. Delete doc-tests.yml: a workflow_dispatch-only duplicate of cd.yml's build with no deploy. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Nothing builds from conda anymore: the container uses apt + uv-frozen wheels, CI tests inside that image, and docs build there too. The install_shapepipe script (conda env creation + from-source C builds) and the production/dev environment files served only the retired conda path — including the unsolvable production pin (astropy==5.2 vs python=3.12), which is now moot rather than something to fix. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- installation.md: remove the deprecated conda section and the install_shapepipe-based MPI/uninstall sections; keep container (recommended) + library-only (pip / `.[dev]`) paths. Note the image bundles the astromatic binaries and MPI. - pipeline_tutorial.md: point the quick-start install at installation.md (container), not a conda env + a broken anchor. - CONTRIBUTING.md: cite pyproject.toml / uv.lock for version compat instead of environment.yml. Cluster job scripts under example/pbs/ and scripts/sh/ still reference personal conda envs; those are operational, cluster-specific, and out of scope here — tracked as follow-up. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
cailmdaley
added a commit
that referenced
this pull request
Jun 10, 2026
Backfill ULID ids across 19 fibers; close docs-versioning, smoke-test-read-only, docker-uv-revert (superseded by #733); refresh shapepipe.md active-threads list to current PRs (#737–741); add np-str0-numpy2 fiber; minor outcome/status normalizations. Co-Authored-By: Claude Fable 5 <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.
Why
The Docker work already made the runtime conda-free — slim Python + apt system deps + uv-frozen wheels, with
pyproject.toml/uv.lockas the single source of truth. But CI (ci-release.yml) and the docs deploy (cd.yml) still went throughsetup-miniconda+install_shapepipe+environment*.yml. That second dependency story had silently rotted: turning on the develop CI trigger revealed a multi-layer install failure in the conda path (conda.sh discovery, a wrong install flag, and an unsolvable production env). Rather than repair an environment nothing deploys, this removes conda entirely and points CI and docs at the container.The astromatic binaries that were conda's original reason for existing (
psfex,source-extractor,weightwatcher) ship as Debian packages and are already in the image.What changed
deploy-image.ymlnow runs the fullpytestsuite inside the dev image (alongside the existing example-pipeline and binary smokes), so CI tests exactly what ships. Build/test is split from publish:pull_requestbuilds and tests without pushing (works for fork PRs); only pushes to develop/main/master publish to ghcr.ci-release.ymldeleted — the conda test suite is fully superseded.cd.ymlbuilds the API docs inside the dev image (itsdocextra) instead of conda.pandocwas vestigial (myst-parser + autodoc, no nbsphinx) and is dropped.doc-tests.ymldeleted (aworkflow_dispatchduplicate).install_shapepipe,environment.yml,environment-dev.yml.installation.md,pipeline_tutorial.md,CONTRIBUTING.md) now document the container + uv workflow.Python is pinned to 3.12 by the base image and
requires-python>=3.12, so the matrix/version drift that the conda path suffered is gone.Out of scope (follow-up)
Cluster job scripts under
example/pbs/andscripts/sh/*.bashstill reference personal~/.conda/envs/shapepipepaths. Porting those to the apptainer workflow is cluster-specific and operational — a separate pass, not bundled here.Supersedes
Closes the conda-repair direction of #732 (closed). The production
environment.ymlastropy bug becomes moot with the file removed.— Claude on behalf of Cail