Skip to content

axom: Add 0.13.0, add new RAJA versions#3866

Open
bmhan12 wants to merge 4 commits intospack:developfrom
bmhan12:feature/han12/axom_0_13_0
Open

axom: Add 0.13.0, add new RAJA versions#3866
bmhan12 wants to merge 4 commits intospack:developfrom
bmhan12:feature/han12/axom_0_13_0

Conversation

@bmhan12
Copy link
Contributor

@bmhan12 bmhan12 commented Mar 16, 2026

This PR:

  • Updates Axom recipe for 0.13.0 changes using diff of upstream spack-packages recipe and axom v0.13.0 repo recipe:
    • Added variant components to selectively build axom components.
    • Added conduit variant
    • Added adiak and caliper variants to replace profiling variant for axom versions 0.13.0 and newer
    • Added int64 variant
  • Adds newer RAJA versions required by latest Axom version. Done by RAJA: Add RAJA versions 2025.12.1 and 2025.12.2 #3804

@bmhan12
Copy link
Contributor Author

bmhan12 commented Mar 17, 2026

Tagging: @white238 , @kennyweiss , @gberg617

Comment on lines +144 to +145
variant("adiak", default=False, when="@0.13.0:", description="Build with adiak")
variant("caliper", default=False, when="@0.13.0:", description="Build with caliper")
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I've specified that the caliper and adiak variants to only be enabled 0.13.0 and onwards.
Otherwise, older spec's could have values set for all 3 with some configuration like +profiling~caliper~adiak

values=any_combination_of("all", *_AXOM_COMPONENTS).with_default("all"),
)

variant("int64", default=True, description="Use 64bit integers for IndexType")
Copy link
Contributor Author

@bmhan12 bmhan12 Mar 17, 2026

Choose a reason for hiding this comment

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

I've left the default to True, same as the Axom repo recipe.

For reference: +int64/AXOM_USE_64BIT_INDEXTYPE has been defaulted to True since version 0.12.0 going off of the release notes: https://github.com/llnl/axom/blob/develop/RELEASE-NOTES.md

Comment on lines +244 to +250
with when("+adiak"):
for fwd in ("mpi", "shared"):
depends_on(f"adiak+{fwd}", when=f"+{fwd}")

with when("+caliper"):
for fwd in ("cuda", "rocm", "mpi", "shared"):
depends_on(f"caliper+{fwd}", when=f"+{fwd}")
Copy link
Contributor Author

@bmhan12 bmhan12 Mar 17, 2026

Choose a reason for hiding this comment

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

In the axom repo recipe these were originally ^adiak/^caliper, but spack audit / CI was not happy with the dependency-check-based logic.

I've converted them to +adiak/+caliper for the 0.13.0 and onwards case, while +profiling keeps its pre-existing caliper/adiak logic for the 0.12.0 and older case.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think I had ^adiak/^caliper to support the case where these dependencies were activated by +profiling, but the user did not activate the adiak or caliper variants.

If this is better, I'm happy with it..

Copy link
Contributor

@white238 white238 left a comment

Choose a reason for hiding this comment

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

@bmhan12 Thanks!

bmhan12 added 2 commits March 17, 2026 09:13
…orwarding for caliper/adiak respected between 0.12.0 and 0.13.0; restrict caliper/adiak variants to 0.13.0 and newer so you do not get caliper/adiak/profiling for older axom versions
@bmhan12 bmhan12 force-pushed the feature/han12/axom_0_13_0 branch from 0d58244 to 2b8e7ce Compare March 17, 2026 16:13
Copy link
Contributor

@kennyweiss kennyweiss left a comment

Choose a reason for hiding this comment

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

Thanks @bmhan12 !

Comment on lines +244 to +250
with when("+adiak"):
for fwd in ("mpi", "shared"):
depends_on(f"adiak+{fwd}", when=f"+{fwd}")

with when("+caliper"):
for fwd in ("cuda", "rocm", "mpi", "shared"):
depends_on(f"caliper+{fwd}", when=f"+{fwd}")
Copy link
Contributor

Choose a reason for hiding this comment

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

I think I had ^adiak/^caliper to support the case where these dependencies were activated by +profiling, but the user did not activate the adiak or caliper variants.

If this is better, I'm happy with it..

Copy link
Member

@becker33 becker33 left a comment

Choose a reason for hiding this comment

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

One very minor future-proofing request, otherwise LGTM

Co-authored-by: Greg Becker <becker33@llnl.gov>
becker33
becker33 previously approved these changes Mar 17, 2026
Copy link
Member

@becker33 becker33 left a comment

Choose a reason for hiding this comment

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

That might be the fastest review turnaround ever

@becker33 becker33 enabled auto-merge (squash) March 17, 2026 16:35
auto-merge was automatically disabled March 17, 2026 16:38

Head branch was pushed to by a user without write access

@kennyweiss
Copy link
Contributor

That might be the fastest review turnaround ever

We did have a fairly significant review on the original PR (llnl/axom#1740) w/ lots of good input from @tgamblin and others.

adrienbernede added a commit to llnl/radiuss-spack-configs that referenced this pull request Mar 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants