Skip to content

tutorial stack: use when_possible and bootstrap gcc12 (new container)#2277

Merged
alecbcs merged 7 commits intodevelopfrom
tutorial/bootstrap-gcc-for-tutorial
Nov 12, 2025
Merged

tutorial stack: use when_possible and bootstrap gcc12 (new container)#2277
alecbcs merged 7 commits intodevelopfrom
tutorial/bootstrap-gcc-for-tutorial

Conversation

@becker33
Copy link
Copy Markdown
Member

@becker33 becker33 commented Nov 3, 2025

Use new container that doesn't have gcc-12 installed

Use when_possible to bootstrap the compiler from the container in a multi-round solve as @haampie pointed out is possible.

@spackbot-triage spackbot-triage bot added the ci Issues related to Continuous Integration label Nov 3, 2025
@becker33 becker33 force-pushed the tutorial/bootstrap-gcc-for-tutorial branch from 5036572 to 2ec27f0 Compare November 4, 2025 00:13
@spackbot-triage spackbot-triage bot removed the ci Issues related to Continuous Integration label Nov 4, 2025
@spackbot-triage spackbot-triage bot added the ci Issues related to Continuous Integration label Nov 4, 2025
We add more padding for the package that is being built to better test
package relocation. Change to key this package by name/hash instead of
just name, for cases in which the package appears multiple times in
the DAG (e.g. when bootstrapping one gcc with another).

Signed-off-by: Gregory Becker <[email protected]>
@kwryankrattiger
Copy link
Copy Markdown
Contributor

Looks good to me. Will approve when image tags are changed

@becker33 becker33 added the v2025.11 PRs to include in the 2025.11 release label Nov 10, 2025
@becker33
Copy link
Copy Markdown
Member Author

I had to get more specific than ideal with some of the specs to keep them distinct while using the when_possible unification scheme... we'll see whether this works, but the runtime changes seem to be working.

@becker33
Copy link
Copy Markdown
Member Author

@kwryankrattiger @alecbcs this should be ready to go now, and I've tested the entire tutorial with the PR buildcache that it generated -- may require some light tweaking to the stacks tutorial but overall I'm happy with it and getting back to having automation is good.

Copy link
Copy Markdown
Member

@alecbcs alecbcs left a comment

Choose a reason for hiding this comment

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

Looks good to me. Thanks for pushing on this @becker33!

@alecbcs alecbcs merged commit 8d0701f into develop Nov 12, 2025
17 checks passed
@alecbcs alecbcs deleted the tutorial/bootstrap-gcc-for-tutorial branch November 12, 2025 04:01
@alecbcs alecbcs self-assigned this Nov 12, 2025
mkrack pushed a commit to mkrack/spack-packages that referenced this pull request Dec 23, 2025
…spack#2277)

* tutorial stack: use when_possible and bootstrap gcc12 (uses new container)

Signed-off-by: Gregory Becker <[email protected]>

* update generation container in addition to build container

Signed-off-by: Gregory Becker <[email protected]>

* fix padding for multiple-appearing package names

We add more padding for the package that is being built to better test
package relocation. Change to key this package by name/hash instead of
just name, for cases in which the package appears multiple times in
the DAG (e.g. when bootstrapping one gcc with another).

Signed-off-by: Gregory Becker <[email protected]>

* disable compiler mixing and lock down gcc runtimes

Signed-off-by: Gregory Becker <[email protected]>

* Be more specific to avoid when_possible confusion

Signed-off-by: Gregory Becker <[email protected]>

* update container to final hash post-merge

Signed-off-by: Gregory Becker <[email protected]>

* update to use main ref for container image

Signed-off-by: Gregory Becker <[email protected]>

---------

Signed-off-by: Gregory Becker <[email protected]>
becker33 added a commit that referenced this pull request Feb 5, 2026
…ntainer) (#2277)"

This reverts commit 8d0701f.

Signed-off-by: Gregory Becker <[email protected]>
alecbcs pushed a commit that referenced this pull request Feb 6, 2026
* Revert "ci: disable tutorial pipeline (#3249)"

* Revert "tutorial stack: use when_possible and bootstrap gcc12 (new container) (#2277)"

This commit re-enables the tutorial stack without using `when_possible` which was leading to extremely long multi round concretization times post spack/spack#51796. Although this implementation of the tutorial stack is not technically correct when using compilers as nodes, it'll allow us to continue to ensure that all of the components of the stack build and are not accidentally broken due to a package PR.

The long term solution here is to merge spack/spack#51891 which allows for multiple concretization groups in an environment and thus allows us to bootstrap a gcc compiler and then use it to build additional specs in the tutorial.

---------

Signed-off-by: Gregory Becker <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci Issues related to Continuous Integration v2025.11 PRs to include in the 2025.11 release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants