Skip to content

CI: pin Linux concretization target to x86_64_v3 for buildcache ABI consistency - #1015

Open
wdconinc with Copilot wants to merge 8 commits into
developfrom
copilot/ensure-packages-built-for-x86-64-v3
Open

CI: pin Linux concretization target to x86_64_v3 for buildcache ABI consistency#1015
wdconinc with Copilot wants to merge 8 commits into
developfrom
copilot/ensure-packages-built-for-x86-64-v3

Conversation

Copilot AI commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

CI was reusing buildcache artifacts built for newer microarchitectures (for example x86_64_v4) on x86_64_v3 runners, causing ABI-incompatible dependency reuse during concretization/install. This change standardizes Linux target selection so CI and cache production stay compatible.

  • What changed

    • Added a global Linux package constraint in CI Spack config to require target=x86_64_v3 for concretization.
    • Applied at config/ci/packages.yaml under packages: all, so both environment and changed-package CI jobs inherit the same target policy.
  • Effect on CI/cache behavior

    • Linux specs produced in CI now converge on a single microarchitecture baseline (x86_64_v3).
    • Buildcache artifacts uploaded by CI align with that baseline, reducing cross-runner ABI mismatches.
packages:
  all:
    require:
    - spec: target=x86_64_v3
      when: platform=linux

Co-authored-by: wdconinc <4656391+wdconinc@users.noreply.github.com>
Copilot AI changed the title ci: force Linux builds and buildcache artifacts to x86_64_v3 CI: pin Linux concretization target to x86_64_v3 for buildcache ABI consistency Aug 30, 2026
Copilot AI requested a review from wdconinc August 30, 2026 21:18
@wdconinc
wdconinc marked this pull request as ready for review August 30, 2026 21:19
Copilot AI lite review requested due to automatic review settings August 30, 2026 21:19

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 standardizes Spack concretization on Linux in CI by pinning the microarchitecture target to x86_64_v3, preventing ABI-incompatible reuse of buildcache artifacts produced for newer targets (e.g., x86_64_v4) on x86_64_v3 runners.

Changes:

  • Added a packages:all:require rule to enforce target=x86_64_v3 when platform=linux in CI Spack configuration.
  • Ensures both environment-based and changed-package CI jobs share the same Linux target baseline via config/ci/packages.yaml.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@wdconinc

Copy link
Copy Markdown
Contributor

This will fix things like this:

 -           ^davix@0.8.10~ipo~thirdparty build_system=cmake build_type=Release cxxstd=11 generator=make platform=linux os=ubuntu24.04 target=x86_64_v4 %c,cxx=gcc@13.3.0
 -               ^rapidjson@1.2.0-2024-08-16~doc~ipo build_system=cmake build_type=Release commit=7c73dd7de7c4f14379b781418c6e947ad464c818 generator=make patches:=ee123c7 platform=linux os=ubuntu24.04 target=x86_64_v4 %cxx=gcc@13.3.0
 -               ^util-linux-uuid@2.41 build_system=autotools platform=linux os=ubuntu24.04 target=x86_64_v3 %c=gcc@13.3.0

https://github.com/eic/eic-spack/actions/runs/33336035164/job/99322998842?pr=1015#step:12:80

@wdconinc
wdconinc requested a review from veprbl August 30, 2026 21:40
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.

3 participants