Skip to content

Conversation

@pditommaso
Copy link
Collaborator

Summary

  • Add feature specification for apt/debian:v1 build template as alternative to conda
  • Support APT packages via package list or requirements file (one package per line)
  • Support both Docker and Singularity build formats
  • Configurable via aptOpts (baseImage, basePackages, commands)

Key decisions

  • Default base image: ubuntu:24.04 (LTS with support through 2029)
  • Uses --no-install-recommends for minimal container images

Test plan

  • Review specification completeness in specs/251212-apt-build-template/spec.md
  • Validate requirements checklist in specs/251212-apt-build-template/checklists/requirements.md
  • Proceed to implementation planning with /speckit.plan

🤖 Generated with Claude Code

pditommaso and others added 4 commits December 12, 2025 16:32
Introduce spec for apt/debian:v1 build template as alternative to conda:
- Support for APT packages via package list or requirements file
- Both Docker and Singularity builds supported
- Configurable via aptOpts (baseImage, basePackages, commands)
- Default base image: ubuntu:24.04
- Uses --no-install-recommends for minimal images

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 0-1 artifacts:
- plan.md: Technical context, constitution check, project structure
- research.md: Architecture decisions, patterns, risk assessment
- data-model.md: Entity definitions, validation rules
- contracts/api-changes.md: API schema, examples, validation
- quickstart.md: Implementation guide

Key decisions:
- Support both entries (list) and environment (newline-separated file)
- 2 template files (dockerfile + singularityfile)
- Default base image: ubuntu:24.04
- Uses --no-install-recommends for minimal images

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Defines 31 tasks organized in 5 phases:
- Phase 1: Setup (API layer types and constants)
- Phase 2: Foundational (templates and helper)
- Phase 3: User Story 1 (basic APT builds)
- Phase 4: User Story 2 (customization)
- Phase 5: Polish (docs and validation)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This adds support for building containers with APT packages as an
alternative to Conda. Features include:

API Layer:
- Add APT_DEBIAN_V1 constant to BuildTemplate.java
- Add APT type to PackagesSpec.Type enum
- Create AptOpts configuration class for customization

Implementation:
- Create AptHelper.groovy with containerFile() method
- Add Dockerfile and Singularity templates in apt-debian-v1/
- Add APT dispatch logic to ContainerHelper.groovy

Features:
- Package list via entries or environment file (newline-separated)
- Version pinning support (e.g., nginx=1.18.0)
- Customizable base image (default: ubuntu:24.04)
- Customizable base packages (default: ca-certificates)
- Custom commands support
- Best practices: DEBIAN_FRONTEND=noninteractive,
  --no-install-recommends, cache cleanup

Tests:
- Comprehensive unit tests in AptHelperTest.groovy
- Tests for Docker and Singularity output
- Tests for environment file parsing
- Tests for custom options

Documentation:
- Update docs/api.md with APT type, aptOpts, and examples

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@pditommaso pditommaso requested review from t0randr and removed request for t0randr December 12, 2025 16:18
@pditommaso
Copy link
Collaborator Author

@t0randr enjoy!

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