Skip to content

Conversation

@wdconinc
Copy link
Contributor

Briefly, what does this PR introduce?

This PR reverts commit 161a8ec in #126, and reapplies commit 4e49b9c in #115.

What kind of change does this PR introduce?

  • Bug fix (issue #__)
  • New feature (issue: earlier full concretization)
  • Documentation update
  • Other: __

Copilot AI review requested due to automatic review settings January 18, 2026 23:16
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR reapplies the three-track container build approach from PR #115, which was previously reverted in PR #126 due to image bloat issues. The key fix is changing builder_concretization_custom to derive from builder_concretization_default instead of builder_installation_default, preventing the custom stage from inheriting installed packages and causing a full rebuild.

Changes:

  • Updated documentation to describe three-track build approach (concretization track, installation track, runtime track)
  • Restructured Dockerfile stages to separate concretization from installation in the builder track
  • Modified CI workflow to test builder_concretization_custom stage earlier for cuda and tf environments

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
docs/architecture.md Updated mermaid diagram and description from two-track to three-track build approach, showing separate concretization and installation tracks
containers/eic/Dockerfile Changed builder_concretization_custom to derive from builder_concretization_default (line 150), consolidated runtime stages by removing intermediate concretization/installation split
.github/workflows/build-push.yml Updated target from builder_concretization_default to builder_concretization_custom for cuda and tf environments to enable earlier concretization testing

Comment on lines +21 to +34
## builder track: runtime track:
## concretization: installation: concretization/installation:
## ---------------------------------------------------------------------------------------
## builder_image runtime_image
## builder_concretization_default
## builder_installation_default -> runtime_concretization_default (copy spack.lock)
## \-> runtime_installation_default (from buildcache)
## builder_concretization_custom
## builder_installation_custom -> runtime_concretization_custom (copy spack.lock)
## \-> runtime_installation_custom (from buildcache)
## \-> builder_installation_default
## runtime_default
## (copy spack.lock from builder_installation_default)
## (install via buildcache)
## \-> builder_concretization_custom
## \-> builder_installation_custom
## \-> runtime_custom
## (copy spack.lock from builder_installation_custom)
## (install via buildcache)
Copy link

Copilot AI Jan 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The ASCII diagram is misleading about the dependency structure. Line 30 shows ## \-> builder_concretization_custom which suggests it derives from builder_image, but it actually derives from builder_concretization_default (as shown in line 150). The arrow should be indented to show it's a continuation from builder_concretization_default on line 25, similar to how builder_installation_default is shown on line 26.

Copilot uses AI. Check for mistakes.
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