Skip to content

Remove conda: CI and docs build from the container#733

Merged
cailmdaley merged 4 commits into
developfrom
chore/remove-conda
May 29, 2026
Merged

Remove conda: CI and docs build from the container#733
cailmdaley merged 4 commits into
developfrom
chore/remove-conda

Conversation

@cailmdaley

Copy link
Copy Markdown
Contributor

Why

The Docker work already made the runtime conda-free — slim Python + apt system deps + uv-frozen wheels, with pyproject.toml/uv.lock as the single source of truth. But CI (ci-release.yml) and the docs deploy (cd.yml) still went through setup-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.yml now runs the full pytest suite 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_request builds and tests without pushing (works for fork PRs); only pushes to develop/main/master publish to ghcr.
  • ci-release.yml deleted — the conda test suite is fully superseded.
  • cd.yml builds the API docs inside the dev image (its doc extra) instead of conda. pandoc was vestigial (myst-parser + autodoc, no nbsphinx) and is dropped. doc-tests.yml deleted (a workflow_dispatch duplicate).
  • Deleted install_shapepipe, environment.yml, environment-dev.yml.
  • Docs (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/ and scripts/sh/*.bash still reference personal ~/.conda/envs/shapepipe paths. 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.yml astropy bug becomes moot with the file removed.

— Claude on behalf of Cail

cailmdaley and others added 4 commits May 29, 2026 12:53
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 cailmdaley merged commit 1db97ae into develop May 29, 2026
1 check passed
@cailmdaley cailmdaley deleted the chore/remove-conda branch May 29, 2026 11:57
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>
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