Skip to content

Add conda/pixi:v1-fast template with layered conda builds - #1153

Merged
pditommaso merged 4 commits into
masterfrom
pixi-v1-fast
Oct 5, 2026
Merged

pditommaso merged 4 commits into
masterfrom
pixi-v1-fast

Conversation

@pditommaso

Copy link
Copy Markdown
Collaborator

Summary

Pixi counterpart of conda/micromamba:v2-fast (#1146, #1151). conda/pixi:v1-fast installs the environment exactly like conda/pixi:v1. In the same RUN, the existing condasplit tool moves it into up to 32 per-package layer directories, and the same BuildKit frontend adds one COPY --link layer per directory.

  • No change to the condasplit tool, frontend or image. It uses the wave.build.condasplit-image default (condasplit:v1)
  • No --exclude. The pixi package cache (~/.cache/rattler) is outside the environment
  • Opt-in. conda/pixi:v1 and the default template are unchanged, so existing container ids don't change
  • Docker only. format: "sif" → HTTP 400. Lock file URLs are rejected as with conda/pixi:v1

Changes

  • BuildTemplate.CONDA_PIXI_V1_FAST, the conda-pixi-v1-fast template, and routing in TemplateUtils, PixiHelper and ContainerHelper
  • Unit tests for all modified components
  • New test-conda-layers.yml workflow. It builds each -fast template (micromamba and pixi) next to its base template on a runner, using BuildKit v0.25.2 and gatk4 + samtools. It fails if the environment file listings differ (type, size, mode, owner, symlink target, path), and prints the layer plan and image layers
  • Docs, condasplit/README.md and a new ADR (adr/20261003-pixi-layered-builds.md)

The comments in condasplit/Dockerfile and frontend/main.go still only mention v2-fast. Editing them would change the tool's source checksum and require a new tool version.

Test plan

  • Unit tests pass in CI
  • test-conda-layers / build-test (pixi) passes: same environment as conda/pixi:v1, multiple layers
  • test-conda-layers / build-test (micromamba) passes

🤖 Generated with Claude Code

Pixi counterpart of conda/micromamba:v2-fast: installs the environment as
conda/pixi:v1, then the condasplit tool and frontend split it into up to
32 per-package layers. No change to the condasplit tool or image.

- New BuildTemplate.CONDA_PIXI_V1_FAST, template, PixiHelper/ContainerHelper routing
- Singularity format rejected with HTTP 400, lock files rejected as with conda/pixi:v1
- CI workflow building each -fast template next to its base template and
  comparing the environment file listings
- Docs and ADR

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@pditommaso
pditommaso requested a review from jordeu October 3, 2026 09:33
Mirror the micromamba v2-fast unit tests for the pixi v1-fast template:
controller response and Singularity rejection, container file from
request with default and custom options, custom base image and pixi
options with a custom condasplit image.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Comment thread .github/workflows/test-conda-layers.yml
pditommaso and others added 2 commits October 5, 2026 10:54
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.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.

2 participants