Skip to content

Support python 3.13 and oneAPI 2026.1 - #2086

Merged
climbfuji merged 21 commits into
JCSDA:developfrom
eap:feature/python-updates
Sep 17, 2026
Merged

climbfuji merged 21 commits into
JCSDA:developfrom
eap:feature/python-updates

Conversation

@eap

@eap eap commented Aug 14, 2026 •

Copy link
Copy Markdown
Collaborator

September 14, this is updated and ready for review

Apologies up-front for the weighty PR here. I've been working dilligently to get something that builds on the aws-ubuntu system and this is what I've come up with. I've coupled the changes of oneapi and python because they were all interdependent anyways and any single-purpose PR would create a similar mess to be cleaned up by the other connected PR. Putting them all in one place at least concentrates the pain.

While this was developed with oneAPI 2026.1, I suspect it would also work with 2026.0.

Nothing here is a code change to this PR — it is all upstream plumbing that has
to land before the repos/builtin submodule can be bumped and this PR merged.

This PR is blocking #2111

Dependencies

Testing

This has been tested on Ubuntu 2024.04.

Checklist

  • This PR addresses one issue/problem/enhancement or has a very good reason for not doing so.
  • These changes have been tested on the affected systems and applications.
  • All dependency PRs/issues have been resolved and this PR can be merged.
  • All necessary updates to the documentation (spack-stack wiki) will be made when this PR is merged

@rickgrubin-noaa

Copy link
Copy Markdown
Contributor

@eap perhaps also consider this request?

Comment thread configs/common/packages.yaml
Comment thread configs/common/packages_oneapi.yaml
@eap
eap force-pushed the feature/python-updates branch from 92de0a2 to 7613be7 Compare August 14, 2026 20:15
@eap
eap force-pushed the feature/python-updates branch from 7613be7 to ce28283 Compare August 14, 2026 23:28
@eap
eap marked this pull request as ready for review August 18, 2026 16:42
eap added 4 commits August 19, 2026 13:47
…ates

# Conflicts:
#	configs/common/packages.yaml
ecFlow 5.18 configures its Python bindings with pybind11. Built against
pybind11 3.x, a bare "import ecflow" completes and then aborts during
garbage collection at interpreter teardown:

    munmap_chunk(): invalid pointer     -> SIGABRT, exit 134

The work itself succeeds, so this surfaces as scripts and CI steps failing
on exit status after doing their job; "uw --version" prints correctly and
then dies the same way.

The recipe carried this bound as py-pybind11@2.10.3:2 in spack-packages
b141387c8d, but bb52369c42 ("Fix for ecflow") dropped the upper bound. That
revert reached develop via spack-packages PR JCSDA#82 (spack-stack cd20203),
which is why this only appears after merging develop.

Verified on aws-ubuntu2404 with unified-dev/gcc-13.3.0: same ecflow 5.18.0
and python 3.13.13, only pybind11 differing -- 3.0.2 exits 134, 2.13.6
exits 0. Full 419-spec env rebuilds and concretizes clean with the bound.
@eap
eap requested review from climbfuji and mathomp4 September 14, 2026 21:38
@eap

eap commented Sep 14, 2026 •

Copy link
Copy Markdown
Collaborator Author

This is ready for review.

Edit: CI failures were due to known duplicate packages and are fixed.

Comment thread configs/common/packages.yaml Outdated
- '@5.11.4'
- +ui
- '@5.18:'
- ^py-pybind11@:2

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Is this to avoid duplicates, or does the ecflow recipe potentially need to be updated?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I need to update the ecflow recipe.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Here's the fix. JCSDA/spack-packages#88
I'll revert this change in anticipation of the merge.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This can be removed if you update spack-packages to the head of spack-stack-dev

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@eap Last request to remove this line 127, then it's good!

Comment thread configs/sites/tier1/acorn/packages_intel-19.1.3.304.yaml Outdated
Comment thread configs/sites/tier1/acorn/packages.yaml Outdated
@eap

eap commented Sep 15, 2026

Copy link
Copy Markdown
Collaborator Author

This now works end-to-end on intel and GCC, I was able to simplify a number of old config/common/packages.yaml constraints due to updates in our python build chain.

Comment thread configs/common/packages.yaml Outdated
Comment thread configs/common/packages_oneapi.yaml Outdated
@climbfuji

Copy link
Copy Markdown
Collaborator

@eap I will create a pull request against your branch later today or tomorrow with findings from my neptune-dev template builds.

eap and others added 2 commits September 16, 2026 14:27
Co-authored-by: Dom Heinzeller <dom.heinzeller@icloud.com>
@eap
eap force-pushed the feature/python-updates branch from ec24a61 to a80e7c5 Compare September 16, 2026 20:41
@eap
eap requested a review from climbfuji September 16, 2026 20:42
Comment thread configs/common/packages.yaml
Comment thread configs/common/packages_oneapi.yaml Outdated
@climbfuji

Copy link
Copy Markdown
Collaborator

Merge conflict for a80e7c5

@climbfuji

Copy link
Copy Markdown
Collaborator

@eap I created eap#2 which does the following:

  • fix repos/builtin submodule pointer
  • pin py-numpy to avoid duplicates (2.3.5 and 2.4.6)
  • move cairo from packages_oneapi.yaml into packages.yaml
  • py-lis-ncoda-utils (NRL) needs meson with Python 3.12+

Tested: built

  • neptune-env with oneapi@2026.1.0 and gcc@14.2.1
  • cylc-env with gcc@14.2.1

Didn't run anything yet, but anything that comes up can be fixed later.

Once that's merged, I'll approve.

@climbfuji

Copy link
Copy Markdown
Collaborator

@eap Last one! eap#3

Update configs/common/packages.yaml: pin py-bind11 separately from ecflow
Comment thread configs/common/packages.yaml Outdated
@climbfuji

Copy link
Copy Markdown
Collaborator

No more duplicate packages! Will approve once the CI tests finish.

@climbfuji climbfuji left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks to you @eap and @mathomp4 for all your hard work on this.

@climbfuji
climbfuji enabled auto-merge (squash) September 17, 2026 15:59
@climbfuji
climbfuji merged commit 49d0eb9 into JCSDA:develop Sep 17, 2026
6 checks passed
@mathomp4 mathomp4 mentioned this pull request Sep 22, 2026
1 of 9 tasks
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.

5 participants