Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update ESMF from spack-stack fork: fix netcdf static libs and variant combinations #39738

Merged

Conversation

climbfuji
Copy link
Contributor

@climbfuji climbfuji commented Aug 31, 2023

Description

This PR updates the ESMF package from the version in spack-stack's spack fork:

  1. Fix the call to nc-config for static builds.
  2. Simplify the version constraints (@8.4.0:8.4.99 --> @8.4 etc.)
  3. Include logic for commonly used beta snapshots so that spack users can work with versions of the ufs-weather-model, for example, that sometimes point to these beta snapshots.
  4. Fix a bug in versions up to 8.4.1 on Cray machines (see The ESMF build system strikes back: failure to build on Narwhal JCSDA/spack-stack#517 for the full details)

@spackbot-app
Copy link

spackbot-app bot commented Aug 31, 2023

@theurich can you review this PR?

This PR modifies the following package(s), for which you are listed as a maintainer:

  • esmf

Copy link
Contributor

@theurich theurich left a comment

Choose a reason for hiding this comment

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

The --static for netcdf ~shared looks good to me. But the parallelio section seems to bring back an old version of that section. That part should be updated.

var/spack/repos/builtin/packages/esmf/package.py Outdated Show resolved Hide resolved
@climbfuji
Copy link
Contributor Author

@theurich Thanks for the pointer. I wasn't sure about the timeline and which version was the correct/better one. I will revert this block of changes, and to make sure it doesn't happen again, update our fork again immediately after this PR is merged.

@climbfuji
Copy link
Contributor Author

@theurich I reverted the change and used the simplified syntax for the versions. I would like to ask @AlexanderRichert-NOAA and @tldahlgren for confirmation that this syntax is indeed equivalent.

Copy link
Contributor

@theurich theurich 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 now. Thanks!

Copy link
Contributor

@jedwards4b jedwards4b left a comment

Choose a reason for hiding this comment

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

@theurich thanks for the clarification

@climbfuji
Copy link
Contributor Author

Thanks @jedwards4b and @theurich for the rapid turnaround!

Copy link
Contributor

@tldahlgren tldahlgren left a comment

Choose a reason for hiding this comment

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

How is the snapshot variant being used in the package?

Comment on lines +88 to +91
variant(
"snapshot",
default="none",
description="Named variant for snapshots versions (e.g., 'b09')",
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't see this variant being passed to the build process. Am I missing something?

Copy link
Contributor

Choose a reason for hiding this comment

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

It's a workaround for the fact that in modules.yaml, spack doesn't distinguish between, say, "@1.2.3" and "@1.2.3b09". I discussed this at some length with Todd once upon a time and there wasn't really another good solution. So this is essentially a dummy variant that let's us distinguish ESMF's "b??" subversions when we customize the modulefile names of one of our dependencies (MAPL).

Copy link
Contributor

@theurich theurich Sep 5, 2023

Choose a reason for hiding this comment

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

One question to consider - and I do not know the answer - is how much longer will anything depend on a specific snapshot tag like v8.3.0b09? I think it was unfortunate that some models started depending on that specific snapshot tag, but hopefully that is a thing of the past now?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

If I was the one to make this decision, I would say that any submitted ufs-weather-model code must use an official release of ESMF. But as long as UFS WM developers want to test with a beta snapshot (and have the mapl dependency be built with it, too), and spack(-stack) is used to install that version, this code needs to stay.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It's ok of course to leave this out of mainline spack and keep that "feature" in our fork, just one more difference to carry around.

Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks @climbfuji for clarifying. I have no issue with this "feature" moving into the mainline spack ESMF package. Generally I think the fewer differences between your fork and the mainline, the better.

Copy link
Member

Choose a reason for hiding this comment

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

I don't want to hold up the PR on this but would like to understand the notion better: the module file should be able to access the version of dependencies (e.g. 8.3.0b09). I can see how you might not want to alter all module file names just to account for this.

That being said I think this variant could be named more-clearly, like:

variant(ufs-weather-model)

And furthermore if it's a dummy variant which derives from the version, it might also be useful to encode a conflict

conflicts(+ufs-weather-model, when=)

admittedly this would be difficult to encode given that we don't support not.

Copy link
Member

Choose a reason for hiding this comment

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

We do have require come to think of it, so you can do

require(@8.3.0b09, when=+ufs-weather-model)

Comment on lines +88 to +91
variant(
"snapshot",
default="none",
description="Named variant for snapshots versions (e.g., 'b09')",
Copy link
Member

Choose a reason for hiding this comment

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

I don't want to hold up the PR on this but would like to understand the notion better: the module file should be able to access the version of dependencies (e.g. 8.3.0b09). I can see how you might not want to alter all module file names just to account for this.

That being said I think this variant could be named more-clearly, like:

variant(ufs-weather-model)

And furthermore if it's a dummy variant which derives from the version, it might also be useful to encode a conflict

conflicts(+ufs-weather-model, when=)

admittedly this would be difficult to encode given that we don't support not.

@scheibelp scheibelp merged commit 31fe78e into spack:develop Sep 20, 2023
13 checks passed
@climbfuji climbfuji deleted the feature/update_esmf_from_spack_stack branch September 20, 2023 17:29
@AlexanderRichert-NOAA
Copy link
Contributor

@scheibelp FWIW-- I conferred with Todd on this some time ago, because the problem we ran into is that when Spack considers version in modules.yaml, it doesn't distinguish between, e.g., 8.3.0 and 8.3.0b09, in that if we have entries for both, both modifications will be applied. At first we considered a boolean variant, but in principle there can be multiple beta snapshots per version number, so that's why we went with the named variant (with an entry in modules.yaml for each).

@climbfuji
Copy link
Contributor Author

I am not sure I understand the question/comment @scheibelp. The reasoning was to be able to encode the beta snapshot in the module names, which requires a bit of logic in the modules.yaml section of the environment when we build multiple combinations of dependencies, for example for mapl:

      mapl:
        suffixes:
          ^esmf@8.2.0~debug snapshot=none: 'esmf-8.2.0'
          ^esmf@8.2.0+debug snapshot=none: 'esmf-8.2.0-debug'
          ^esmf@8.3.0b09~debug snapshot=b09: 'esmf-8.3.0b09'
          ^esmf@8.3.0b09+debug snapshot=b09: 'esmf-8.3.0b09-debug'
          ^esmf@8.3.0~debug snapshot=none: 'esmf-8.3.0'
          ^esmf@8.3.0+debug snapshot=none: 'esmf-8.3.0-debug'
          ^esmf@8.4.0~debug snapshot=none: 'esmf-8.4.0'
          ^esmf@8.4.0+debug snapshot=none: 'esmf-8.4.0-debug'
          ^esmf@8.4.1~debug snapshot=none: 'esmf-8.4.1'
          ^esmf@8.4.1+debug snapshot=none: 'esmf-8.4.1-debug'
          ^esmf@8.4.2~debug snapshot=none: 'esmf-8.4.2'
          ^esmf@8.4.2+debug snapshot=none: 'esmf-8.4.2-debug'
          ^esmf@8.5.0~debug snapshot=none: 'esmf-8.5.0'
          ^esmf@8.5.0+debug snapshot=none: 'esmf-8.5.0-debug'

@scheibelp
Copy link
Member

scheibelp commented Sep 20, 2023

why wouldn't

      mapl:
        suffixes:
          ^esmf+ufs-weather-model: esmf-ufs-wm

work? or, stripping the variant entirely and just pinning it to versions:

      mapl:
        suffixes:
          ^esmf@=8.3.0b09: esmf-ufs-wm

that when Spack considers version in modules.yaml, it doesn't distinguish between, e.g., 8.3.0 and 8.3.0b09

I think I see what you mean, if you have a listing like

          ^esmf@8.3.0b09: '...'
          ^esmf@8.3.0: '...'

then, as stated, the second entry matches both:

  • Firstly, I thought module files used ordered matching
  • Secondly, my initial suggestions in this comment avoid an extensive per-version listing (you should be able to conceptually generate the suffixes based on the different aspects of the spec - version, variant, etc. - vs. handling them combinatorially)
  • Lastly, one thing that has likely changed since your conversation is that you can more-precisely specify versions with @=, where @=8.3.0 would not match @8.3.0b09

Does any of that suggest a means to eliminate or clarify the use of this snapshot variant?

@climbfuji
Copy link
Contributor Author

Within one release / one environment that we build (each quarter), we have to support multiple combinations of mapl and esmf, for example

mapl@2.40.3 ^esmf@8.5.0
mapl@2.35.2 ^esmf@8.5.0
mapl@2.35.2 ^esmf@8.4.2
mapl@2.42.7 ^esmf@8.5.1b03

(I made up the last one)

and since we don't want hashes in modules, we need module names like this:

mapl/2.40.3-esmf-8.5.0
mapl/2.35.2-esmf-8.5.0
mapl/2.35.2-esmf-8.4.2
mapl/2.42.7-esmf-8.5.1b03

@scheibelp
Copy link
Member

I think my note about @= accounts for your latter need. Also, according to https://spack.readthedocs.io/en/latest/module_file_support.html#customize-the-naming-of-modules you could do something like

suffixes:
  ^esmf: esmf-{^esmf.version}

so you don't have to list them out individually.

@climbfuji
Copy link
Contributor Author

I think my note about @= accounts for your latter need. Also, according to https://spack.readthedocs.io/en/latest/module_file_support.html#customize-the-naming-of-modules you could do something like

suffixes:
  ^esmf: esmf-{^esmf.version}

so you don't have to list them out individually.

That's a neat idea, we should try that next. Thanks @scheibelp !

marcmengel added a commit to FNALssi/spack that referenced this pull request Sep 21, 2023
* Use correct hash for 3.0 (#39743)

* xyce: add version 7.7.0 and specialize patch (#39696)

* cgns: Add -fPIC to Fortan/C compilation flags (#39700)

* cgns: Add -fPIC to Fortan/C compilation flags
  This should fix #39699
* cgns: Add -fPIC compilation flags when +fortran
  Incorporating suggestions of @aumuell with addition of making +pic required when +fortran

* seacas: Set TPL_ENABLE_Pthread=ON when +thread_safe (#39703)

* seacas: Set TPL_ENABLE_Pthread=ON when +thread_safe
  This should fix #39702
  Basically, following suggestion of error message and setting
  TPL_ENABLE_Pthread to the value of the boolean spack variant thread_safe
* seacas: Fix style issue
  Add space after comment #

* CUDA 10.1/10.2: Fix conflicts with PGI 19+. (#39747)

The condition probably did not get updated when the behavior of the version specifier changed.

* r-tinytiger: Add tinytiger R package. (#39828)

* r-tinytiger: Add tinytiger R package.
* Fix homepage.

---------

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>

* duckdb: add v0.8.1 (#39851)

* Add Figcone Package (#39804)

* Add Figcone Package
* Fix the style
* add url
* fix style removing whitespace of a blanck line
* remove versions

* r-functional: Add the functional R package. (#39826)

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>

* r-furrr: Add furrr R package. (#39814)

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>

* lua: unzip also required during build (#39802)

Unzip required during build otherwise configuration of luarocks fails during installation of lua@5.3.6 on ubuntu 22.04 w/o system unzip.

* move determine_number_of_jobs into spack.util.cpus, use it in concretize (#37620)

* Automated deployment to update package flux-security 2023-09-07 (#39855)

Co-authored-by: github-actions <github-actions@users.noreply.github.com>

* Automated deployment to update package flux-core 2023-09-07 (#39856)

Co-authored-by: github-actions <github-actions@users.noreply.github.com>

* add SUNDIALS v6.6.1 (#39853)

* neko: add v0.6.1 and fix package (#39751)

* neko: add v0.6.1 and fix package
* Change to a conditional variant for gslib

* Allow to build latest released version of CP2K with CMake (#39782)

* allow to build latest version of cp2k with cmake
* apply black

* Make Cabana a Cuda/ROCm package (matching ArborX) (#39809)

* epics-base package: use the Spack compiler wrappers (#39752)

Edit configuration file to use the Spack compiler wrappers.

* CI Timing Statistics (#38598)

* Write timing information for installs from cache

* CI: aggregate and upload install_times.json to artifacts

* CI: Don't change root directory for artifact generation

* Flat event based timer variation

Event based timer allows for easily starting and stopping timers without
wiping sub-timer data. It also requires less branching logic when
tracking time.

The json output is non-hierarchical in this version and hierarchy is
less rigidly enforced between starting and stopping.

* Add and write timers for top level install

* Update completion

* remove unused subtimer api

* Fix unit tests

* Suppress timing summary option

* Save timers summaries to user_data artifacts

* Remove completion from fish

* Move spack python to script section

* Write timer correctly for non-cache installs

* Re-add hash to timer file

* Fish completion updates

* Fix null timer yield value

* fix type hints

* Remove timer-summary-file option

* Add "." in front of non-package timer name

---------

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
Co-authored-by: Harmen Stoppels <me@harmenstoppels.nl>

* Docs/Packaging guide: Add BundlePackage (#39691)

* Docs/Packaging guide: Add BundlePackage
* Adjusted version ordering note to reflect convention.

* build(deps): bump pytest from 7.4.1 to 7.4.2 in /lib/spack/docs (#39883)

Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.4.1 to 7.4.2.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.4.1...7.4.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* crosstool-ng: add new package (#39865)

* Speed-up `spack external find` execution (#39843)

* Perform external spec detection with multiple workers

The logic to perform external spec detection has been refactored
into classes. These classes use the GoF "template" pattern to account
for the small differences between searching for "executables" and
for "libraries", while unifying the larger part of the algorithm.

A ProcessPoolExecutor is used to parallelize the work.

* Speed-up external find by tagging detectable packages automatically

Querying packages by tag is much faster than inspecting the repository,
since tags are cached. This commit adds a "detectable" tag to every
package that implements the detection protocol, and external detection
uses it to search for packages.

* Pass package names instead of package classes to workers

The slowest part of the search is importing the Python modules
associated with candidate packages. The import is done serially
before we distribute the work to the pool of executors.

This commit pushes the import of the Python module to the job
performed by the workers, and passes just the name of the packages
to the executors.

In this way imports can be done in parallel.

* Rework unit-tests for Windows

Some unit tests were doing a full e2e run of a command
just to check a input handling. Make the test more
focused by just stressing a specific function.

Mark as xfailed 2 tests on Windows, that will be fixed
by a PR in the queue. The tests are failing because we
monkeypatch internals in the parent process, but the
monkeypatching is not done in the "spawned" child
process.

* BUILD_TESTING is a CMake variable and should not be scoped (#39866)

* bugfix: only complete aliases for potential aliases (#39887)

Smart alias completion introduced in #39499 wasn't as smart as it needed to be, and
would complete any invalid command prefix and some env names with alias names.

- [x] don't complete aliases if there are no potential completions
      e.g., don't convert `spack isnotacommand` -> `spack concretize`

- [x] don't complete with an aliases if we're not looking at a top-level subcommand.

* Windows decompression: fix removal of intermediate file (#38958)

Extensionless archives requiring two-stage decompression and extraction
require intermediate archives to be renamed after decompression/extraction
to prevent collision. Prior behavior attempted to cleanup the intermediate
archive with the original name, this PR ensures the renamed folder is
cleaned instead.

Co-authored-by: Dan Lipsa <dan.lipsa@khq.kitware.com>
Co-authored-by: John Parent <john.parent@kitware.com>

* Cloverleaf-ref: proposal for a -ref version only (#39894)

* Cloverleaf-ref: proposal for a -ref version only
* Cloverleaf-ref: fixing typo.

---------

Co-authored-by: fpanichi <fpanichi@amd.com>

* Spack on Windows: fix shell scripts when root contains a space (#39875)

Enclose variable tracking root in quotes.

* veloc: add v1.7 (#39465)

* updates for VELOC 1.6

* veloc: add v1.7

---------

Co-authored-by: Bogdan Nicolae <bogdan.nicolae@acm.org>

* NMake Builder: change property name (#39824)

NMake makefiles are still called makefiles. The corresponding builder
variable was called "nmakefile", which is a bit unintuitive and lead
to a few easy-to-make, hard-to-notice mistakes when creating packages.
This commit renames the builder property to be "makefile"

* root: add latest available tag (#39895)

* build(deps): bump actions/upload-artifact from 3.1.2 to 3.1.3 (#39852)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/0b7f8abb1508181956e8e162db84b466c27e18ce...a8a3f3ad30e3422c9c7b888a15615d19a852ae32)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump docker/build-push-action from 4.1.1 to 4.2.1 (#39901)

Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.1.1 to 4.2.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/2eb1c1961a95fc15694676618e422e8ba1d63825...0a97817b6ade9f46837855d676c4cca3a2471fc9)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* spglib: add v2.1.0 (#39910)

* ensure umpire~cuda~rocm when ~cuda~rocm

* update spglib

* Update package H5Z-ZFP to 1.1.1 (#39740)

* update to 1.1.1

* add maintainers

* add 1.1.0; set default

* singularity: fix package name in comment (#39822)

* DisCoTec: add new package (#35239)


Co-authored-by: Alexander Van Craen <40516079+vancraar@users.noreply.github.com>
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>

* intel-oneapi-mkl: hpcx-mpi support (#39750)

* wrf: fix patches for 4.2 to 4.4.2 for aarch64 config (#39900)

* gffcompare: new package @0.12.6 (#39917)

Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>

* transdecoder: add 5.7.1 (#39916)

Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>

* openfoam-org: zoltan renumbering and decompsition (#39915)

* likwid: search library path for compilation with hwloc (#39659)

* Garfield++: Add the patch to fix the missing headers and Set the environment variable HEED_DATABASE (#39904)

* sp: add develop version, build precision, and OpenMP support (#39874)

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>

* acfl: map rocky9 to RHEL-9 (#39892)

* w3emc: add develop version and more variants (#39884)

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>

* gitlab ci: Use image with awscli for rebuild-index job (#39636)

Instead of pointing to the image on DockerHub, which rate limits us and
causes pipeline failures durying busy times, use the version at ghcr.

And we might as well use the ghcr version everywhere else too.

* sirius: fix cuda_arch flags (#39889)

* celeritas: add v0.3.2 (#39879)

* elpa: Add --enable-scalapack-tests to configure when +autotune (#39728)

When building elpa +autotune, we apparently need to add
the configure option --enable-scalapack-tests

* Support of versions of cp2k below 7 marked as deprecated (#39652)

SIRIUS was introduced in version 7 of cp2k but could be used
in practice in version 9 (input format and functionalities).
SIRIUS with version 6 and below are marked as a dependency
conflict until CP2K version 9.

Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi>

* Update archspec to latest commit (#39920)

- [x] Intel flags for old architectures
- [x] Support for Sapphire Rapids
- [x] Cache the "ancestors" computation

* glibc: fix deps, drop pre 2.17 (#39806)

* glibc: add missing deps, drop < 2.17

Building glibc 2.17 requires linking libgcc_{s,eh}.a, which themselves
depend on whatever glibc the current gcc uses for its runtime libraries.

Newer gcc depends on gnu extensions of libdl it seems, so that means you
simply cannot build old glibc with gcc-using-new-glibc.

The relevant fix in glibc is this commit:

commit 95f5a9a866695da4e038aa4e6ccbbfd5d9cf63b7
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue Jul 3 19:14:59 2012 +0000

    Avoid use of libgcc_s and libgcc_eh when building glibc.

See also references to that commit in the glibc mailing list.

* update the gmake bound

* add --without-selinux

* py-dunamai: add 1.18.0 (#39849)

* NUMAPROF: add v1.1.5 (#39891)

* MALT: add v1.2.2 (#39890)

* ctffind: extend a Power 9 patch to AArch64 (#39137)

* dd4hep: make sure to find libraries correctly (#39516)

* dakota: add v6.18 (#39882)


Co-authored-by: Travis Drayna <tdrayna@loki.local>

* py-enum-tools: add new package and dependencies (#39672)

* Adds package 'enum-tools'

* Fixes syntax

* py-enum-tools: update pypi link and dependencies

* py-whey: add new package

* py-consolekit: add new package

* py-shippinglabel: add new package

* py-project-parser: add new package

* py-handy-archives: add new package

* py-domdf-python-tools: add new package

* py-dom-toml: add new package

* py-dist-meta: add new package

* py-deprecation-alias: add new package

* py-pygments: add versions 2.16.0 and 2.16.1

* py-mistletoe: add new package

* py-apeye: add new package

* py-apeye-core: add new package

* Fix dependencies' names and remove redundancies

* Fix style

* py-enum-tools: fix dependencies

* py-mistletoe: update dependencies

* Apply suggestions from code review

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* py-whey: fix dependencies

* py-whey: fix style

* py-apeye: fix dependencies

---------

Co-authored-by: Fábio de Andrade Barboza <f168817@dac.unicamp.br>
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* SLEPc: add v3.19.2 (#39805)

Co-authored-by: Satish Balay <balay@mcs.anl.gov>

* py-pipdeptree: add new package; py-hatchling: add 1.18.0 (#39697)

* py-hatchling: add 1.18.0

* py-pipdeptree: add new package

* py-hatchling: add Python 3.8 dependency

* Apply suggestion from code review

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

---------

Co-authored-by: Fábio de Andrade Barboza <f168817@dac.unicamp.br>
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* gdrcopy: inherit from CudaPackage, update dependencies (#39596)

* Add another url for whizard (#37354)

Co-authored-by: jmcarcell <jmcarcell@users.noreply.github.com>

* update q-e-sirius package (#39744)

* Update MDAnalysis (#39787)

* ensure umpire~cuda~rocm when ~cuda~rocm

* update mdanalysis

* Update var/spack/repos/builtin/packages/py-mdanalysis/package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* Update var/spack/repos/builtin/packages/py-mdanalysis/package.py

---------

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* spectre: add v2023.08.18 and v2023.09.07 (#39925)

* py-fairscale and dependencies py-pgzip libgit2 py-pygit2 (#39220)

* simple build of py-openai

* added variants to py-openai

* py-pandas-stubs is a dependency for py-openai

* fixed format and flake8 errors for py-openai

* black format error for py-pandas-stubs

* [@spackbot] updating style on behalf of sidpbury

* made style and format changes to py-openai

* made style and format changes to py-pandas-stubs

* py-types-pytz is a dependency for py-openai

* [@spackbot] updating style on behalf of sidpbury

* updated py-openpyxl for ver 3.0.7 and 3.1.2

* Update var/spack/repos/builtin/packages/py-pandas-stubs/package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* ajs requested changes for py-openai

* updated py-openpyxl for supported python

* [@spackbot] updating style on behalf of sidpbury

* updated py-openpyxl

* removed requirement.txt dependencies in  py-openpyxl

* removed python depends on from openpyxl

* updated package to support newer versions

* updated version of py-pygit2

* py-fairscale is a new package in support of torch

* py-pgzip is a dependency for py-fairscale

* switch fairscale pypi, added extra variant for convenience

* removed python dependency

* changed multiple requirement versions

* changes for upstream py-fairscale

* changes for upsteam py-pygit2

* Update package.py

* Update package.py

* sorted out some of the dependency versions

* removed version 1.12.2 because dependency could not be met

* updated py-cached-property dependency

* suggested changes from adamjstewart

---------

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* cuda: add versions 12.2.0 and 12.2.1 (#39684)

* fpchecker: add version 0.4.0 (#39924)

* correct py-bx-python@0.8.8 python dependency (#39766)

* correct python dependency for 0.8.8

* add missing zlib dependency

* restore missing whitespace

* correct versions for 0.9.0, clarify rules for future releases

* Update package.py

* Remove whitespace for black check

* tidynamics: add v1.1.2 (#39911)

* ensure umpire~cuda~rocm when ~cuda~rocm

* update tydynamics

* py-tomlkit: add 0.12.1 (#39922)

* py-tinycss2: add 1.2.1 (#39921)

* py-tifffile: add 2023.8.30 (#39918)

* py-black: add v23.9 (#39931)

* package_qscintilla_build_with_qt6 (#39544)

* package_qscintilla_build_with_qt6

* Update var/spack/repos/builtin/packages/qscintilla/package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* improve

* fix Qsci.abi3.so install

* simplify, fix, tidy

* fix style

* fix style

* fix style

* Update var/spack/repos/builtin/packages/qscintilla/package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* Update var/spack/repos/builtin/packages/qscintilla/package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* Update var/spack/repos/builtin/packages/qscintilla/package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* Update var/spack/repos/builtin/packages/qscintilla/package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* Update var/spack/repos/builtin/packages/qscintilla/package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* improve

* improve style

* fix style

* make black happy

* add ver 2.14.1

* update

* make black happy

* Update var/spack/repos/builtin/packages/qscintilla/package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* improve

---------

Co-authored-by: Sinan81 <Sinan@world>
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* Add awscli@1.29.41 and its dependency py-botocore@1.31.41 (#39878)

* Add awscli@1.29.41 and its dependency py-botocore@1.31.41

* Update var/spack/repos/builtin/packages/awscli/package.py

Co-authored-by: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com>

---------

Co-authored-by: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com>

* py-build: add v1 (#39930)

* fish: add 3.6.0, 3.6.1, update cmake requirement (#39899)

* [gromacs] Fix 2021.2 build error (#39722)

* [gromacs] Fix 2021.2 build error

See https://gromacs.bioexcel.eu/t/compilation-failure-for-gromacs-2021-1-and-2021-2-with-cmake-3-20-2/2129

* Update var/spack/repos/builtin/packages/gromacs/package.py

Co-authored-by: Andrey Alekseenko <al42and@gmail.com>

---------

Co-authored-by: Andrey Alekseenko <al42and@gmail.com>

* lbann: make two variants sticky (#39710)

* Make the state of the Python Front End (PFE) and Python data reader
support sticky so that the concretizer does not arbitrarily disable
them.

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>

* build(deps): bump black from 23.7.0 to 23.9.1 in /lib/spack/docs (#39937)

Bumps [black](https://github.com/psf/black) from 23.7.0 to 23.9.1.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/compare/23.7.0...23.9.1)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* filtlong: add v0.2.1, patch for %gcc@13: (#39775)

Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>

* Add gperftools 2.13 (#39940)

* asp.py: fix deprecation warning (#39943)

* openssl: deprecate 1.1.1 (#39942)

* Update PennyLane packages to v0.32. (#39688)

* Update PennyLane packages to v0.32.

* Reformat.

* Couple small fixes.

* Fix Lightning cmake_args.

* Couple dep fixes in py-pennylane + plugins.

* Fix scipy condition.

* Add comment on conflicting requirement.

* openexr: add 2.4.3, 2.5.9, 3.1.11 & 3.2.0 (#39863)

* openexr: add 2.4.3, 2.5.9, 3.1.11 & 3.2.0

- 2.5.9 is the latest version compatible with OpenScenGraph
- improved compatibility with GCC 13

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* openexr: drop unsupported debug variant

--disable/enable-debug is not supported by ./configure in 1.3, 1.7, 2.0, 2.2 and 2.3

* openexr: transform into multi-build system package

simplifies package considerably, as nothing special seems to be required

* openexr: pkg-config is also used by @3

* openexr: use system libdeflate instead of internal

if no libdeflate is found, openexr would download and build its own starting with 3.2.0

* openexr: disable tests

would download lots of data during cmake and make build times noticably longer

---------

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* amrex: add v23.09 (#39788)

* g2 package bugfix (#39923)

* g2 package bugfix

* g2: fix w3emc dep

* fix setup_run_environment

* Update package.py

* Update package.py

* Update package.py

* Update package.py

* Update package.py

* style fix

* Update var/spack/repos/builtin/packages/g2/package.py

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>

* Update var/spack/repos/builtin/packages/g2/package.py

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>

---------

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>

* Filter spack compiler wrappers for h4cc in var/spack/repos/builtin/packages/hdf/package.py (#39870)

* libjpeg-turbo: Fix Darwin lib install name (#39834)

* Fix Darwin lib install name in var/spack/repos/builtin/packages/libjpeg-turbo/package.py

* Update var/spack/repos/builtin/packages/libjpeg-turbo/package.py

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>

---------

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>

* mpifileutils: switch to main branch (#39525)

* CI/Add superlu-dist to broken stand-alone tests due to hang (#38908)

* Add superlu-dist to broken stand-alone CI tests
* Revert "disable superlu test (#38894)"
  This reverts commit e16397b5d865d402c749482d05bb2bdc09b96661.

* bam-readcount: add 1.0.1, correct build flags (#39950)

Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>

* binutils: add v2.41 (#39483)

* r-pl94171: Add R package PL94171 (#39926)

* r-piggyback: Add `R` package `piggyback` (#39932)

* ci: Tag reindex job to match the image architecture (#39958)

* Fix typo in metaclasses (#39947)

* py-lightly: add v1.4.18 (#39960)

* Update g2c recipe: add develop version and misc. variants (#39965)

* Update g2c recipe: add develop version and misc. variants
* add testing to g2c
* Update package.py

* py-maestrowf: new version, fix artificial py-cryptography dep, support openssl 3 (#39946)

* py-maestrowf: add new version 1.1.9, deprecate development releases

* py-maestrowf: drop py-cryptography in 1.1.9

* py-maestrowf: drop py-cryptography dependency entirely, since it is not a direct dependency

* py-merlin: new version, ensure openssl 3 compat

* py-merlin: drop py-coloredlogs@10: lowerbound

* py-maestrowf: add py-rich, reorder deps

* py-celery: explain why upperbound is in spack but not in requirements.txt

* unifyfs: support openssl 3 (#39945)

* unifyfs: drop upperbound on deprecated openssl

The package uses deprecated MD5 functions from OpenSSL, which causes
warnings, but (a) Spack by default disables -Werror, and (b) those
functions will continue to exist in OpenSSL 3.

* unifyfs: enable parallel build, only make check sequential

* unifyfs: order class methods by install phases

* gitlab ci: temporarily disable darwin aarch64 (#39974)

as there are no or few runners available

* Spec.tree: add type hints (#39948)

* ASP-based solver: don't declare deprecated versions unless required (#38181)

Currently, the concretizer emits facts for all versions known to Spack, including deprecated versions, and has a specific optimization objective to minimize their use.

This commit simplifies how deprecated versions are handled by considering possible versions for a spec only if they appear in a spec literal, or if the `config:deprecated:true` is set directly or through the `--deprecated` flag. The optimization objective has also been removed, in favor of just ordering versions and having deprecated ones last.

This results in:

a) no delayed errors on install, but concretization errors when deprecated versions would be the only option. This is in particular relevant for CI where it's better to get errors early
b) a slight concretization speed-up due to fewer facts
c) a simplification of the logic program.

Co-authored-by: Harmen Stoppels <me@harmenstoppels.nl>

* Add cmake package for v2.1.0 and master (git) versions of libfirefly (#39778)

* libfirefly: Add cmake package for v2.1.0 and master (git) versions

* Separate git URL from version declaration

Co-authored-by: Alec Scott <alec@bcs.sh>

* CP2K package: various AOCC compatibility fixes (#39773)

* cp2k: patch several old versions to help newer compilers
* cp2k: use -O2 optimization for AOCC compiler
* cp2k: do not support old AOCC compilers
* cp2k: simplify when clause due to conflicting out old compilers
* cp2k: give a more meaningful message for confilcts

Co-authored-by: Ning Li <ning.li@amd.com>
Co-authored-by: Phil Tooley <phil.tooley@amd.com>

* GDAL: add v3.7.2 (#39979)

* glibc: add older versions (#39978)

* hiop: Add version 1.0.0 (#39972)

* scorep: Change in configuration option for nvhpc compiler  (#39919)

* scorep version 8.1 added
* configure finds cudart and cupti in the nvhpcsdk suite
* style fixed
* changes to find libcuda.so in cuda directory

---------

Co-authored-by: Laura Bellentani <lbellen1@login01.leonardo.local>

* Revert "ASP-based solver: don't declare deprecated versions unless required (#38181)" (#40010)

This reverts commit babd29da5015d740748329006487b7d7f96df169.

* add charliecloud 0.34, deprecate previous (#40008)

* interproscan: adding new version and variant to include databases. (#40009)

* Update upp recipe (#40006)

* Add check() to sp recipe (#40005)

* Add develop version to wrfio (#40004)

* Add develop version to sigio (#40003)

* Add develop version to sfcio (#40002)

* Add develop version to sfcio
* Update package.py

* Add develop version to nemsiogfs (#40001)

* Add develop version for nemsio (#40000)

* Add two versions to ncio recipe (#39999)

* Add develop version to landsfcutil (#39998)

* Add develop version for gfsio (#39995)

* Add develop version for gfsio
* Update package.py

* Add develop version to g2tmpl (#39994)

* Add develop version to g2tmpl
* Update package.py

* ip recipe updates (#39997)

* Add pic and shared variants to GSL (#37961)

* Add pic and shared variants for gsl

* fix gsl variant logic

* make +pic default for gsl

* Add libs property/find_libraries to libiconv (#37962)

* Add static-only option for udunits (#38099)

* Add static-only option for udunits

* add maintainer to udunits

* add trompeloeil package (#39944)

* add trompeloeil package
* remove maintainer as he wish not to be
* fix style

* Allow git to compile against static curl (#37960)

* Add pic variant for libpng (#37964)

* Support static case for find_libraries() in xz (#38100)

* Update xz

* add maintainer to xz

* [@spackbot] updating style on behalf of AlexanderRichert-NOAA

* data-vis-sdk: make llvm~libomptarget the default (#40007)

Currently the configuration of the pipeline is such that
there are multiple "optimal" solutions. This is due to
the pipeline making ~lld the default for LLVM, but leaving
+libomptarget from package.py

Since LLVM recipe has a:

conflicts("~lld", "+libomptarget")

clingo is forced to change one of the two defaults, and
the penalty for doing so is the same for each. Hence, it
is random whether we'll get +libomptarget+lld
or ~libomptarget~lld.

This fixes it by changing also the default for libomptarget.

* Add efficient `deptype` flag and `spack.deptypes` module (#39472)

This commit replaces the internal representation of deptypes with `int`, which is more compact
and faster to operate with.

Double loops like:
```
any(x in ys for x in xs)
```
are replaced by constant operations bool(xs & ys), where xs and ys are dependency types. 

Global constants are exposed for convenience in `spack.deptypes`

* Add OIDC tokens to gitlab-ci jobs (#39813)

* Add OIDC tokens to gitlab-ci jobs

This should allow us to start issuing just-in-time generated
credentials for CI jobs that need to modify binary mirrors. The "aud"
claim of the token describes what the token is allowed to do. The
claim is verified against a set of rules on the IAM role using signed
information from GitLab. See spack-infrastructure for the claim
verification logic.

---------

Co-authored-by: Scott Wittenburg <scott.wittenburg@kitware.com>

* Ensure PythonExtension is consistent when finding externals (#40012)

PythonExtension is a base class for PythonPackage, and
is meant to be used for any package that is a Python
extension but is not built using "python_pip".

The "update_external_dependency" method in the base
class calls another method that is defined in the derived
class.

Push "get_external_python_for_prefix" up in the hierarchy
to make method calls consistent.

* Add pic option & maintainer to lz4 (#38095)

Co-authored-by: Greg Becker <becker33@llnl.gov>

* Set # of ninja procs to 'make_jobs' for scipy (#293) (#38831)

* gffread: new package @0.12.7 (#40015)

Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>

* meme: add 5.5.4, correct dependencies (#40014)

* meme: add 5.5.4, correct dependencies
* variant renaming

---------

Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>

* gitlab ci: Put Cray binaries in public mirrors (#39938)

* Add Scine QCMaquis recipe to builtin packages (#39709)

* Add Scine QCMaquis recipe to builtin packages
* Format scine-qcmaquis recipe using black
* Remove import os from scine-qcmaquis recipe
* Reduce length of symmetries line in scine-qcmaquis
* Add myself as a maintainer of the scine-qcmaquis recipe
* Update Scine-QCMaquis recipe following the review
  PR URL: https://github.com/spack/spack/pull/39709
  Changes:
  - Updated Symmetries variant to us multi feature
  - Added dependency to boost+chrono since it was undocumented
  - Use define_from_variant to setup CMake args
  - Make version 3.1.2 be preferred since 3.1.3 build is broken
* Change build_tests boolean condition

---------

Co-authored-by: Adam Grofe <adamgrofe@microsoft.com>

* Add shared and pic variants to libxml2 (#38094)

* build(deps): bump sphinx from 7.2.5 to 7.2.6 in /lib/spack/docs (#40029)

Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 7.2.5 to 7.2.6.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/master/CHANGES.rst)
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v7.2.5...v7.2.6)

---
updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Sandia OpenSHMEM: Update to include version 1.5.2 (#40025)

* Group primitive url/path handling functions together (#40028)

* update sha256 after new tarball uploads (#40030)

* linux-headers: drop rsync dep, add new version (#39867)

* Windows RPATHing: fix symlink error (#39933)

With 349ba83, you cannot symlink() if the link already exists.
Update the simulated RPATHing logic on Windows to account for that.

* gitlab ci: submit the correct audience for protected publish jobs (#40046)

* CI: add spec to job vars (#39905)

* CI: add details about built spec to ci job variables

Co-authored-by: Alec Scott <alec@bcs.sh>
Co-authored-by: Alec Scott <hi@alecbcs.com>

* grass: Update spec for gdal dependency (#38396)

* Julia: Fix sha256 for some LLVM patches (#40041)

* coin3d: apply upstream patches to fix build on Centos 8 (#39839)

fixes undefined references to dlerror, dlopen, dlsym, dlclose and
XDefaultScreenOfDisplay, XScreenNumberOfScreen, XCreatePixmap, XFree, XFreePixmap, XCloseDisplay, XOpenDisplay

* checksum: use FIXME instead of FIX ME when adding versions (#40050)

The former is highlighted by editors, while the latter is not.

* chexmix: new package (#38441)

Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>

* Nextflow: add 22.04.3 (#40034)

* [chore] py-aniso8601: Add version 7.0.0 (#39808)

* [chore] py-aniso8601: Add version 3.0.2 required by py-graphene

* py-aniso8601: Add version 7.0.0 and constraints on python version

* py-aniso8601: fix style

* [fix] py-aniso8601: remove version 3.0.2 which depends on removed version of python; set the minimal version of python to 3.7

* py-aniso8601: remove version constraint on python

* py-rseqc: add 5.0.1 (#39953)

* py-rseqec: add 5.0.1

* Update package.py

* style ...

---------

Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>

* py-trove-classifiers: add 2023.8.7 (#39977)

* py-traits: add 6.4.2 (#39976)

* [add] py-ldap3: new recipe, required by py-metomi-rose (#39982)

* python: Don't prefer 3.10 (#40036)

* Enabled building GCC 13.1 on darwin/aarch64. (#38667)

* py-werkzeug: Add version 0.12.2 required by py-graphene-tornado @2.6.1 (#39984)

* build(deps): bump docker/build-push-action from 4.2.1 to 5.0.0 (#39969)

Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.2.1 to 5.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/0a97817b6ade9f46837855d676c4cca3a2471fc9...0565240e2d4ab88bba5387d719585280857ece09)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump docker/setup-qemu-action from 2.2.0 to 3.0.0 (#39968)

Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2.2.0 to 3.0.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/2b82ce82d56a2a04d2637cd93a637ae1b359c0a7...68827325e0b33c7199eb31dd4e31fbe9023e06e3)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump docker/login-action from 2.2.0 to 3.0.0 (#39966)

Bumps [docker/login-action](https://github.com/docker/login-action) from 2.2.0 to 3.0.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/465a07811f14bebb1938fbed4728c6a1ff8901fc...343f7c4344506bcbf9b4de18042ae17996df046d)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* py-types-setuptools: add 68.2.0.0 (#40040)

* py-types-requests: add 2.31.0.2 (#40039)

* py-types-python-dateutil: add 2.8.19.14 (#40038)

* cpat: new package @3.0.4 (#40022)

* cpat: new package @3.0.4

* Update package.py

---------

Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>

* py-types-urllib3: add 1.26.25.14 (#40048)

* py-types-urllib3: add 1.26.25.14

* Fix style

* py-types-typed-ast: add 1.5.8.7 (#40047)

* Fix several build errors for hdf-eos2 (not only but in particular on macOS w/ apple-clang) (#39877)

Fix permissions for configure file in var/spack/repos/builtin/packages/hdf-eos2/package.py, fix dependencies to match what hdf provides, update compiler flags for apple-clang

* py-types-psutil: add 5.9.5.16 (#40027)

* py-twine: add 4.0.2 (#40026)

* py-tornado: add 6.3.3 (#39949)

* py-tornado: add 6.3.3

* Fix style

* SeLaLib: add new package (#39847)

* Revert "gitlab ci: temporarily disable darwin aarch64 (#39974)" (#40052)

This reverts commit 2c13361b09c552427623f9e8a728fad94e3de4e9.

* py-tqdm: add 4.66.1 (#39952)

* Add cuda as a variant to opa-psm2 (#39754)



Signed-off-by: Raafat Feki <rfeki@cornelisnetworks.com>

* xxdiff: add new package  (#40021)

* Add new package xxdiff

* style fixes

* Versioning updates to match best practices

* Full hash and flex, bison as build deps

* pmix: new versions (#40055)

* grads: add versions and variants (#40017)

* Add grads versions, variants, and dependency
* Bugfix for hdf4 libs and style fixes
* Switch boolean variant checking syntax

* r-wru: Add `R` package `wru` (#39935)

* new package composable kernel (#39222)

* initial commit to add composable kernel package
* change dependencies to type build and add amdgpu_target variant
* fix spacing
* fix styling
* remove rocmmlir from miopen-hip recipe
* enable miopen with ck after 5.5.1
* fix typo

* Better detection of Python libs/headers (#39308)

* mdspan: new package (#40024)

* new package mdspan

* Update var/spack/repos/builtin/packages/mdspan/package.py

Co-authored-by: Alec Scott <alec@bcs.sh>

* mdspan- fix style

---------

Co-authored-by: Alec Scott <alec@bcs.sh>

* build(deps): bump docker/setup-buildx-action from 2.10.0 to 3.0.0 (#39967)

Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.10.0 to 3.0.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/885d1462b80bc1c1c7f0b00334ad271f09369c55...f95db51fddba0c2d1ec667646a06c2ce06100226)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* adios2: add smoke tests (#39970)

* py-rarfile: add v4.1 (#40054)

* py-lightning: add v2.0.8/9 (#40058)

* py-typing-extensions: add 4.8.0 (#40049)

* extrae: add versions 4.0.5, 4.0.6 (#40063)

* Lammps: don't apply AOCC patches to versions containing the backport (#39844)


Co-authored-by: Phil Tooley <phil.tooley@amd.com>

* ASP-based solver: declare deprecated versions iff config:deprecated:true (#40011)

By default, do not let deprecated versions enter the solve.

Previously you could concretize to something deprecated, only to get errors on install.

With this commit, we get errors on concretization, so the issue is caught earlier.

* ci: drop redundant packages.yaml (#40068)

* Use process pool executors for web-crawling and retrieving archives (#39888)

Fix a race condition when searching urls, and updating a shared
set '_visited'.

* conquest: add new package (#40053)

* ci: dont use nightly image tag (#40070)

* python version dependency for supporting nwchem-702 build (#40072)

Co-authored-by: viveshar <vivek.sharma2@amd.com>

* eospac: expose version 6.5.7 (#40060)

Co-authored-by: Daryl W. Grunau <dwg@lanl.gov>

* FleCSI updates (#40087)

* flecsi: update description and flog variant help
* flecsi: use kokkos_cxx when needed

* Fix error in qt5.15 building qtlocation with gcc13 (#40091)

* Add details on error messages from requirements (#40092)

* Add 23 to the cxxstd variant of fmt (#40080)

* DLA-Future: add v0.2.1 (#40098)

* cython: add build-tools tag (#40100)

* Fix a leftover typo from depflag rework (#40101)

* Add 23 and 26 to the cxxstd variant for boost (#40081)

* Add support for C++23 in pika and pika-algorithms packages (#40078)

* Add C++23 support for pika

* Add C++23 support for pika-algorithms as well

* Revert PR 40091 which duplicates PR 38987 (#40107)

* ESMF package: fix netcdf static libs and variant combinations (#39738)

Add "snapshot" variant for identifying UFS WM support

* gptune: doesnt depend on cython (#40104)

* py-gevent: relax dependency constraints (#40117)

* e4s-cray: drop in ci as there are no runners (#40122)

* Bazel patch specs were too restrictive (#40084)

These patches should always be applied - the existing Bazel code is always wrong, working on some older compilers was a lucky fluke.

* py-scikit-sparse: add 0.4.11, 0.4.12 (#40077)

* py-vcrpy: add 5.1.0 (#40075)

* [add] py-ansimarkup: new recipe required by py-cylc-flow (#39989)

* [add] py-ansimarkup: new recipe required by py-cylc-flow

* py-ansimarkup: remove version constraint on python, add version 2.1.0

* package:pylint fix isort dependency versions (#40094)

Co-authored-by: sbulut <sbulut@3vgeomatics.com>

* cython: fix recythonize by default patch (#40096)

* py-versioneer: add 0.29 (#40076)

* Revert "Merge pull request #132 from greenc-FNAL/feature/reusable-externals-from-buildcache"

This reverts commit 45f8936b0a00e66f725af4db631085037b89313e, reversing
changes made to 4343707720cf4d8e44e9727005a3710ff515855d.

* e4s: drop python 3.8 preference (#40123)

* Remove Python 3.6 from bootstrap tests on Ubuntu, add 3.11 (#40131)

* Restore virtuals normalization on edge construction (#40130)

Put back normalization of the "virtuals" input as a sorted tuple. 

Without this we might get edges that differ just for the order of 
virtuals, or that have lists, which are not hashable.

Add unit-tests to prevent regressions.

* reuse concretization: allow externals from remote when locally configured

This looks to me like the best compromise regarding externals in a
buildcache. I wouldn't want `spack install` on my machine to install
specs that were marked external on another. At the same time there are
centers that control the target systems on which spack is used, and
would want to use external in buildcaches.

As a solution, reuse concretization will now consider those externals
used in buildcaches that match a locally configured external in
packages.yaml.

So for example person A installs and pushes specs with this config:

```yaml
packages:
  ncurses:
    externals:
    - spec: ncurses@6.0.12345 +feature
      prefix: /usr
```

and person B concretizes and installs using that buildcache with the
following config:

```yaml
packages:
  ncurses:
    externals:
    - spec: ncurses@6
    prefix: /usr
```

the spec will be reused (or rather, will be considered for reuse...)

* aocl-sparse: use `.libs` instead of hard-coded value for library computation (#39868)

Co-authored-by: matooley <phil.tooley@amd.com>

* Harden compiler detection against errors (#39736)

Fixes #39622

Add a timeout to compiler detection and allow Spack to proceed when
this timeout occurs.

In all cases, the timeout is 120 seconds: it is assumed any compiler
invocation we do for the purposes of verifying it would resolve in
that amount of time.

Also refine executables that are tested as being possible MSVC
instances, and limit where we try to detect MSVC. In more detail:

* Compiler detection should timeout after a certain period of time.
  Because compiler detection executes arbitrary executables on the
  system, we could encounter a program that just hangs, or even a
  compiler that hangs on a license key or similar. A timeout
  prevents this from hanging Spack.
* Prevents things like cl-.* from being detected as potential MSVC
  installs. cl is always just cl in all cases that Spack supports.
  Change the MSVC class to indicate this.
* Prevent compilers unsupported on certain platforms from being
  detected there (i.e. don't look for MSVC on systems other than
  Windows).

The first point alone is sufficient to address #39622, but the
next two reduce the likelihood of timeouts (which is useful since
those slow down the user even if they are survivable).

* [add] py-graphql-ws: new recipe, required by py-cylc-uiserver (#39991)

* [add] py-graphql-ws: new recipe, required by py-cylc-uiserver

* py-graphql-ws: remove constraint on version for python

* py-nanobind add cmake path (#40079)

* py-nanobind add cmake path

* fix style

---------

Co-authored-by: Robert Underwood <runderwood@anl.gov>

* Fix false detection of llvm-amdgpu as llvm and llvm-doe (#40113)

* SIRIUS: remove old versions (#40105)

* phist: fix compatibility with python@3.11: (#40082)

* relion: add 4.0.1, fix build on Rocky8 (#40074)

Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>

* lorene: add C++ headers to the install (#39909)

* Add missing platform in Charm++ (#40051)

Add missing `linux` platform in Charm++ when building for `arm8`.

* py-fenics-dolfinx: add version upper bound for Python dependency (#40125)

* py-fenics-dolfinx: add upper bound on Python version

* Small fix

* Update var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

---------

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* Accumulated tweaks from Marc M.

Be less specific about gettext with ~libxml2

can use libc+iconv or gettext with or without libxml2

initial round of ups compatability from prev release

readonly bootstrap (cvmfs) workaround

package updates from fnal-develop

added ups compat files

more missing files

moderncmakedomain package

per_os_scope

Redo of FNALssi/spack #94

redo of FNALssi #162

Revert "redo of FNALssi #162"

This reverts commit f92ed6e74a6e755d5314774ea2197148d24c8d60.

Someone fixed the geant4 recipe with a for loop in the recipe instead,
so not doing this after all.

redo of FNALssi #161

more cleanups from fnal-develop

More lib64 fun

speling of startswith

version

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Raafat Feki <rfeki@cornelisnetworks.com>
Co-authored-by: Brian Vanderwende <vanderwb@ucar.edu>
Co-authored-by: Paul Kuberry <pakuber@sandia.gov>
Co-authored-by: Tom Payerle <payerle@umd.edu>
Co-authored-by: Rémi Lacroix <remi.lacroix@idris.fr>
Co-authored-by: Johann Gaebler <43016598+jgaeb@users.noreply.github.com>
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
Co-authored-by: Geoffrey Lentner <glentner@purdue.edu>
Co-authored-by: Matheus Henrique <matheushmshenrique@gmail.com>
Co-authored-by: Martin Aumüller <aumuell@reserv.at>
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
Co-authored-by: Vanessasaurus <814322+vsoch@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@users.noreply.github.com>
Co-authored-by: David Gardner <gardner48@llnl.gov>
Co-authored-by: Niclas Jansson <njansson@kth.se>
Co-authored-by: Rocco Meli <r.meli@bluemail.ch>
Co-authored-by: Sam Reeve <6740307+streeve@users.noreply.github.com>
Co-authored-by: eflumerf <61473357+eflumerf@users.noreply.github.com>
Co-authored-by: kwryankrattiger <80296582+kwryankrattiger@users.noreply.github.com>
Co-authored-by: Harmen Stoppels <me@harmenstoppels.nl>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Co-authored-by: Anton Kozhevnikov <toxa81@gmail.com>
Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
Co-authored-by: Dan Lipsa <dan.lipsa@kitware.com>
Co-authored-by: Dan Lipsa <dan.lipsa@khq.kitware.com>
Co-authored-by: John Parent <john.parent@kitware.com>
Co-authored-by: AMD Toolchain Support <73240730+amd-toolchain-support@users.noreply.github.com>
Co-authored-by: fpanichi <fpanichi@amd.com>
Co-authored-by: John W. Parent <45471568+johnwparent@users.noreply.github.com>
Co-authored-by: eugeneswalker <38933153+eugeneswalker@users.noreply.github.com>
Co-authored-by: Bogdan Nicolae <bogdan.nicolae@acm.org>
Co-authored-by: Thomas Madlener <thomas.madlener@desy.de>
Co-authored-by: Mark (he/his) C. Miller <miller86@llnl.gov>
Co-authored-by: Adam Fidel <ledif@users.noreply.github.com>
Co-authored-by: Freifrau von Bleifrei <freifrauvonbleifrei@users.noreply.github.com>
Co-authored-by: Alexander Van Craen <40516079+vancraar@users.noreply.github.com>
Co-authored-by: Robert Cohn <robert.s.cohn@intel.com>
Co-authored-by: Annop Wongwathanarat <annop.wongwathanarat@gmail.com>
Co-authored-by: George Young <A-N-Other@users.noreply.github.com>
Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>
Co-authored-by: kjrstory <kjrstory@gmail.com>
Co-authored-by: Thomas Gruber <Thomas.Roehl@googlemail.com>
Co-authored-by: Tao Lin <831611+mirguest@users.noreply.github.com>
Co-authored-by: Alex Richert <82525672+AlexanderRichert-NOAA@users.noreply.github.com>
Co-authored-by: Scott Wittenburg <scott.wittenburg@kitware.com>
Co-authored-by: Simon Pintarelli <1237199+simonpintarelli@users.noreply.github.com>
Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
Co-authored-by: Taillefumier Mathieu <29380261+mtaillefumier@users.noreply.github.com>
Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi>
Co-authored-by: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com>
Co-authored-by: Sébastien Valat <sebastien.valat@inria.fr>
Co-authored-by: dslarm <38504854+dslarm@users.noreply.github.com>
Co-authored-by: Travis <128559955+tdrayna@users.noreply.github.com>
Co-authored-by: Travis Drayna <tdrayna@loki.local>
Co-authored-by: Fábio de Andrade Barboza <69045579+Barbozafab@users.noreply.github.com>
Co-authored-by: Fábio de Andrade Barboza <f168817@dac.unicamp.br>
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
Co-authored-by: Jose E. Roman <jroman@dsic.upv.es>
Co-authored-by: Satish Balay <balay@mcs.anl.gov>
Co-authored-by: Scot Halverson <shalverson@nvidia.com>
Co-authored-by: Juan Miguel Carceller <22276694+jmcarcell@users.noreply.github.com>
Co-authored-by: jmcarcell <jmcarcell@users.noreply.github.com>
Co-authored-by: Nils Vu <owls@nilsvu.de>
Co-authored-by: sid <48367591+sidpbury@users.noreply.github.com>
Co-authored-by: Richard Berger <rberger@lanl.gov>
Co-authored-by: Tim Haines <thaines.astro@gmail.com>
Co-authored-by: Mike Renfro <mike+github@renf.ro>
Co-authored-by: Sinan <sbulutw@gmail.com>
Co-authored-by: Sinan81 <Sinan@world>
Co-authored-by: Dom Heinzeller <dom.heinzeller@icloud.com>
Co-authored-by: Caetano Melone <cmelone@users.noreply.github.com>
Co-authored-by: Stephen Sachs <stephenmsachs@gmail.com>
Co-authored-by: Andrey Alekseenko <al42and@gmail.com>
Co-authored-by: Brian Van Essen <vanessen1@llnl.gov>
Co-authored-by: Vincent Michaud-Rioux <vincent.michaud-rioux@xanadu.ai>
Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov>
Co-authored-by: Adam Moody <moody20@llnl.gov>
Co-authored-by: Gurkirat Singh <tbhaxor@gmail.com>
Co-authored-by: Alec Scott <alec@bcs.sh>
Co-authored-by: Ning Li <ning.li@amd.com>
Co-authored-by: Phil Tooley <phil.tooley@amd.com>
Co-authored-by: Cameron Rutherford <robert.rutherford@pnnl.gov>
Co-authored-by: Laura Bellentani <l.bellentani@cineca.it>
Co-authored-by: Laura Bellentani <lbellen1@login01.leonardo.local>
Co-authored-by: Jordan Ogas <jogas@lanl.gov>
Co-authored-by: snehring <7978778+snehring@users.noreply.github.com>
Co-authored-by: Billae <65948826+Billae@users.noreply.github.com>
Co-authored-by: Dan LaManna <danlamanna@users.noreply.github.com>
Co-authored-by: Greg Becker <becker33@llnl.gov>
Co-authored-by: Adam Grofe <agrofe1417@gmail.com>
Co-authored-by: Adam Grofe <adamgrofe@microsoft.com>
Co-authored-by: Jack Morrison <32687739+jack-morrison@users.noreply.github.com>
Co-authored-by: Alec Scott <hi@alecbcs.com>
Co-authored-by: Joscha Legewie <joscha.legewie@gmail.com>
Co-authored-by: Michael Kuhn <michael.kuhn@ovgu.de>
Co-authored-by: Diego Alvarez S <dialvarezs@gmail.com>
Co-authored-by: Lydéric Debusschère <lyderic.de@gmail.com>
Co-authored-by: Ben Cowan <ben@bencowan.org>
Co-authored-by: rfeki <113144418+rfeki@users.noreply.github.com>
Co-authored-by: afzpatel <122491982+afzpatel@users.noreply.github.com>
Co-authored-by: Andrew-Dunning-NNL <67964561+Andrew-Dunning-NNL@users.noreply.github.com>
Co-authored-by: Tuomas Koskela <t.koskela@ucl.ac.uk>
Co-authored-by: viveshar <vivek.sharma2@amd.com>
Co-authored-by: Daryl W. Grunau <DarylGrunau@gmail.com>
Co-authored-by: Daryl W. Grunau <dwg@lanl.gov>
Co-authored-by: Patrick Gartung <gartung@fnal.gov>
Co-authored-by: Marc Mengel <mengel@fnal.gov>
Co-authored-by: Auriane R <48684432+aurianer@users.noreply.github.com>
Co-authored-by: Raffaele Solcà <rasolca@cscs.ch>
Co-authored-by: Thomas Dickerson <elfprince13@gmail.com>
Co-authored-by: Christian Glusa <cgcgcg@users.noreply.github.com>
Co-authored-by: sbulut <sbulut@3vgeomatics.com>
Co-authored-by: Robert Underwood <robertu94@users.noreply.github.com>
Co-authored-by: Robert Underwood <runderwood@anl.gov>
Co-authored-by: Wileam Y. Phan <50928756+wyphan@users.noreply.github.com>
Co-authored-by: Jonas Thies <16190001+jthies@users.noreply.github.com>
Co-authored-by: Steven R. Brandt <sbrandt@cct.lsu.edu>
Co-authored-by: Garth N. Wells <gnw20@cam.ac.uk>
RikkiButler20 pushed a commit to RikkiButler20/spack that referenced this pull request Sep 25, 2023
…39738)

Add "snapshot" variant for identifying UFS WM support
mtaillefumier pushed a commit to mtaillefumier/spack that referenced this pull request Oct 11, 2023
…39738)

Add "snapshot" variant for identifying UFS WM support
xylar pushed a commit to E3SM-Project/spack that referenced this pull request Nov 28, 2023
…39738)

Add "snapshot" variant for identifying UFS WM support
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.

None yet

6 participants