summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-12-18podio: Add latest tag 0.17.4 (#41735)Thomas Madlener1-0/+1
2023-12-18build(deps): bump isort in /.github/workflows/style (#41650)dependabot[bot]1-1/+1
Bumps [isort](https://github.com/pycqa/isort) from 5.12.0 to 5.13.2. - [Release notes](https://github.com/pycqa/isort/releases) - [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md) - [Commits](https://github.com/pycqa/isort/compare/5.12.0...5.13.2) --- updated-dependencies: - dependency-name: isort 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>
2023-12-18build(deps): bump isort from 5.12.0 to 5.13.2 in /lib/spack/docs (#41651)dependabot[bot]1-1/+1
Bumps [isort](https://github.com/pycqa/isort) from 5.12.0 to 5.13.2. - [Release notes](https://github.com/pycqa/isort/releases) - [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md) - [Commits](https://github.com/pycqa/isort/compare/5.12.0...5.13.2) --- updated-dependencies: - dependency-name: isort 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>
2023-12-18spack.config: cleanup and add type hints (#41741)Massimiliano Culpo4-164/+177
2023-12-18gcc: fix run environment variables not being exported in environments (#41729)Michael Kuhn1-1/+3
Since views use symlinks, all compiler binaries were skipped in this case. Instead, only skip them if their target does not exist.
2023-12-18pika-algorithms: Add upper bound for pika version (#41736)Mikael Simberg1-5/+5
2023-12-18glib: add v2.78.3 (#41697)Michael Kuhn1-0/+1
2023-12-18asp.py: remove "CLI" reference (#41718)Harmen Stoppels2-6/+6
Can also be an environment root, or programatically `Spec("x").concretized()`.
2023-12-18`spack develop`: convert to config (#35273)Peter Scheibel12-211/+368
Convert the 'develop' section of an environment to a dedicated configuration section. This means for example that instead of having to define `develop` specs in the `spack.yaml`, the environment can `include:` another `develop.yaml` configuration which specifies which specs should be developed in the environment. This change is not expected to be disruptive given that existing environment `spack.yaml` files will conform to the new schema. (Update 11/28/2023) I have implemented the `develop`/`undevelop` commands in terms of more-generic modification functions added to the `config` module: `change_or_add` and `update_all`. It is assumed that the semantics added here (described in 11/18 update) would be desirable to extend to other config update actions (e.g. adding compilers, changing package requirements, adding mirrors). (Update 11/18/2023) I have updated this such that `spack develop`, and `spack undevelop` to potentially modify all writable scopes, like https://github.com/spack/spack/pull/41147. https://github.com/spack/spack/pull/35307 will be useful for modifying included scopes, but generally speaking specifying a `--scope` will not be required for `spack develop`: `spack develop` will add new develop specs to whatever scope already has develop specs defined, or to the highest-priority writable scope (which should be the env scope). TODOs: - [x] If you `spack undevelop` a package which is mentioned at multiple layers of configuration, then currently this would only modify one of them. That's not technically a new issue (has always existed for configuration modification), but may be confusing to users when presented via an interface other than `spack config set` - [x] Need to add (or confirm) the ability to modify individual config files by providing a path (rather than using a scope identifier as a key to retrieve associated config). - [x] `spack develop` adds new develop specs to the scope that defines them (potentially skipping higher priority scopes to e.g. augment included scope files) --------- Co-authored-by: scheibelp <scheibelp@users.noreply.github.com> Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2023-12-17py-plum-dispatch: add new package (#41536)Christopher Christofi1-0/+23
* py-plum-dispatch: add new package * Update var/spack/repos/builtin/packages/py-plum-dispatch/package.py Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> --------- Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2023-12-17py-htgettoken: use os.environ, avoid AttributeError (#41717)Wouter Deconinck1-2/+2
* py-htgettoken: use os.environ, avoid AttributeError This avoids the following error: ``` Warning: could not load runtime environment due to AttributeError: 'EnvironmentModifications' object has no attribute 'get' ``` * py-htgettoken: allow for undefined variables * py-htgettoken: use dict get() Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> --------- Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2023-12-17qt: apply patch for apple-clang@15: (#41695)Wouter Deconinck1-0/+8
2023-12-17py-pyopenssl: add version 18.0.0 (#41709)Christopher Christofi1-1/+3
2023-12-17py-sortedcontainers: add new version 2.4.0 (#41652)Christopher Christofi1-0/+1
2023-12-17py-python-utils: add version 2.7.1 (#41653)Christopher Christofi1-1/+2
2023-12-17py-pyasn1: add version 0.4.3 (#41654)Christopher Christofi1-0/+1
2023-12-17py-cryptography: add version 2.8 (#41621)Christopher Christofi1-0/+1
2023-12-17py-lxml: add new version 4.4.2 (#41623)Christopher Christofi1-0/+1
2023-12-17py-progressbar2: add version 3.43.1 (#41624)Christopher Christofi1-0/+1
2023-12-17py-fenics-dolfinx: update for v0.7.2 (#41394)Garth N. Wells1-4/+12
* Update for v0.7.2 * Dependency fix * Dep type fix
2023-12-16py-optax: add new package (#41278)Christopher Christofi1-0/+25
* py-optax: add new package with version 0.1.7 * Update var/spack/repos/builtin/packages/py-optax/package.py Co-authored-by: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com> --------- Co-authored-by: Manuela Kuhn <36827019+manuelakuhn@users.noreply.github.com>
2023-12-17py-jupyterlab: Use the correct version dependency for jinja2 (#41543)Thomas Madlener1-1/+1
2023-12-17Add new python package to spack - py-pygame (game development package) (#41477)Henrique Finger Zimerman1-0/+23
Add pygame to spack
2023-12-16py-poetry: Add version 1.6.1 (#41291)Lydéric Debusschère8-35/+90
* py-poetry: Add version 1.6.1 * py-poetry-core: Add version 1.7.0 * py-dulwich: Add version 0.21.6 * py-installer: Add version 0.7.0 * py-keyring: Add version 24.3.0 * py-poetry-plugin-export: Add version 1.6.0 * py-cachecontrol: Add version 0.13.0 * py-xattr: Add version 0.10.1, py-poetry dependence on darwin platform * py-cachecontrol: fix typo * py-cachecontrol: add version 0.13.1 * py-dulwich: remove version constraint on python, sort dependences, add py-typing-extensions dependence * py-poetry-core: add version constraint on python * py-poetry-plugin-export: fix python dependence, sort dependences * py-poetry: sort dependences, fix dependences with respect to reviewing * py-cachecontrol: fix typo * py-poetry-plugin-export: comment py-poetry dependence; py-poetry: fix py-build dependence --------- Co-authored-by: LydDeb <lyderic.debusschere@eolen.com>
2023-12-15libfabric: Add uring variant (#41563)Kyle Gerheiser1-0/+6
* libfabric: Add uring variant * Remove tcp fabric requirement for uring * Fix style and use spec.satisfies
2023-12-15perl-rose-object: New package (#41715)Arne Becker1-0/+28
Adds Rose::Object
2023-12-15perl-compress-lzo: New package (#41716)Arne Becker1-0/+30
Adds Compress::LZO
2023-12-15perl-dbd-oracle: New package (#41719)Arne Becker1-0/+34
2023-12-15clingo: patch clingo to allow for build with modern msvc (#41188)John W. Parent2-0/+31
2023-12-15mpifileutils: add DAOS variant (#35618)Sean Koyama1-7/+17
* mpifileutils: add DAOS variant * mpifileutils: Add daos dep when +daos Add dependency on DAOS when +daos Pass DAOS prefix to ensure correct DAOS is found by during configuration * Change in to satisfies for boolean variants --------- Co-authored-by: Ryan Krattiger <ryan.krattiger@kitware.com>
2023-12-14Automated deployment to update package flux-sched 2023-12-14 (#41658)Vanessasaurus1-0/+1
Co-authored-by: github-actions <github-actions@users.noreply.github.com>
2023-12-14perl-proc-daemon: New package (#41666)Arne Becker1-0/+28
2023-12-14perl-test-base: New package (#41668)Arne Becker1-0/+31
Adds Test::Base
2023-12-14perl-datetime-format-strptime: New package (#41676)Arne Becker13-4/+274
* perl-datetime-format-strptime: New package Adds package: - perl-datetime-format-strptime And adds these because they are test dependencies: - perl-test-file-sharedir - perl-test2-plugin-nowarnings - perl-test2-suite And modifies these to enable build time tests: - perl-b-hooks-endofscope - perl-class-singleton - perl-datetime-locale - perl-datetime-timezone - perl-file-sharedir - perl-namespace-autoclean - perl-namespace-clean - perl-params-validationcompiler - perl-specio * Add myself as maintainer
2023-12-14perl-common-sense: New package (#41677)Arne Becker1-0/+26
2023-12-14perl-time-clock: New package (#41678)Arne Becker1-0/+28
2023-12-14perl-sql-reservedwords: New package (#41685)Arne Becker1-0/+28
2023-12-14py-pandas: add v2.1.4 (#41590)Adam J. Stewart1-0/+1
2023-12-14py-black: add v23.12.0 (#41589)Adam J. Stewart1-0/+1
2023-12-14intel-oneapi-compilers 2023.2.3: added new version to dpcpp package (#41680)Andrey Perestoronin1-20/+32
* add new cpp compiler version * empty ftn for 2023.2.3 * OLD ftn in 2023.2.3 version * tolerate missing fortran compiler --------- Co-authored-by: Robert Cohn <robert.s.cohn@intel.com>
2023-12-14spec parser: precompile quoting-related regular expressions (#41657)Todd Gamblin2-8/+8
This adds a small (~5%) performance improvement to Spec parsing. Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2023-12-14Fix spack compiler wrappers in ESMF's esmf.mk on Cray when using cc, CC, ftn ↵Dom Heinzeller1-0/+8
(#41640)
2023-12-14geant4: new version 11.2.0 (#41643)Wouter Deconinck6-4/+27
* geant4: new version 11.2.0 * geant4: depends_on geant4-data@11.2: * geant4-data: new version 11.2.0 * g4abla: new version 3.3 * g4emlow: new version 8.4 * g4incl: new version 1.1 * geant4: depends_on vecgeom@1.2.6: * geant4: depends_on qt@5.9: when @11.2: +qt * vecgeom: new version 1.2.6
2023-12-13perl-cpanel-json-xs: New package (#41646)Arne Becker1-0/+26
2023-12-13perl-mock-config: New package (#41647)Arne Becker1-0/+28
2023-12-13perl-ref-util: New package (#41648)Arne Becker1-0/+28
2023-12-13Improve parsing of quoted flags and variants in specs (#41529)Todd Gamblin7-188/+198
This PR does several things: - [x] Allow any character to appear in the quoted values of variants and flags. - [x] Allow easier passing of quoted flags on the command line, e.g. `cflags="-O2 -g"`. - [x] Handle quoting better in spec output, using single quotes around double quotes and vice versa. - [x] Disallow spaces around `=` and `==` when parsing variants and flags. ## Motivation This PR is motivated by the issues above and by ORNL's [tips for launching at scale on Frontier](https://docs.olcf.ornl.gov/systems/frontier_user_guide.html#tips-for-launching-at-scale). ORNL recommends using `sbcast --send-libs` to broadcast executables and their libraries to compute nodes when running large jobs (e.g., 80k ranks). For an executable named `exe`, `sbcast --send-libs` stores the needed libraries in a directory alongside the executable called `exe_libs`. ORNL recommends pointing `LD_LIBRARY_PATH` at that directory so that `exe` will find the local libraries and not overwhelm the filesystem. There are other ways to mitigate this problem: * You could build with `RUNPATH` using `spack config add config:shared_linking:type:runpath`, which would make `LD_LIBRARY_PATH` take precedence over Spack's `RUNPATHs`. I don't recommend this one because `RUNPATH` can cause many other things to go wrong. * You could use `spack config add config:shared_linking:bind:true`, added in #31948, which will greatly reduce the filesystem load for large jobs by pointing `DT_NEEDED` entries in ELF *directly* at the needed `.so` files instead of relying on `RPATH` search via soname. I have not experimented with this at 80,000 ranks, but it should help quite a bit. * You could use [Spindle](https://github.com/hpc/Spindle) (as LLNL does on its machines) which should transparently fix this without any changes to your executable and without any need to use `sbcast` or other tools. But we want to support the `sbcast` use case as well. ## `sbcast` and Spack Spack's `RPATHs` break the `sbcast` fix because they're considered with higher precedence than `LD_LIBRARY_PATH`. So Spack applications will still end up hitting the shared filesystem when searching for libraries. We can avoid this by injecting some `ldflags` in to the build, e.g., if were were going to launch, say, `LAMMPS` at scale, we could add another `RPATH` specifically for use with `sbcast`: spack install lammps ldflags='-Wl,-rpath=$ORIGIN/lmp_libs' This will put the `lmp_libs` directory alongside `LAMMPS`'s `lmp` executable first in the `RPATH`, so it will be searched before any directories on the shared filesystem. ## Issues with quoting Before this PR, the command above would've errored out for two reasons: 1. `$` wasn't an allowed character in our spec parser. 2. You would've had to double quote the flags to get them to pass through correctly: spack install lammps ldflags='"-Wl,-rpath=$ORIGIN/lmp_libs"' This is ugly and I don't think many users will easily figure it out. The behavior was added in #29282, and it improved parsing of specs passed as a single string, e.g.: spack install 'lammps ldflags="-Wl,-rpath=$ORIGIN/lmp_libs"' but a lot of users are naturally going to try to quote arguments *directly* on the command line, without quoting their entire spec. #29282 used a heuristic to detect unquoted flags and warn the user, but the warning could be confusing. In particular, if you wrote `cflags="-O2 -g"` on the command line, it would break the flags up, warn, and tell you that you could fix the issue by writing `cflags="-O2 -g"` even though you just wrote that. It's telling you to *quote* that value, but the user has to know to double quote. ## New heuristic for quoted arguments from the CLI There are only two places where we allow arbitrary quoted strings in specs: flags and variant values, so this PR adds a simpler heuristic to the CLI parser: if an argument in `sys.argv` starts with `name=...`, then we assume the whole argument is quoted. This means you can write: spack install bzip2 cflags="-O2 -g" directly on the command line, without multiple levels of quoting. This also works: spack install 'bzip2 cflags="-O2 -g"' The only place where this heuristic runs into ambiguity is if you attempt to pass anonymous specs that start with `name=...` as one large string. e.g., this will be interpreted as one large flag value: spack find 'cflags="-O2 -g" ~bar +baz' This sets `cflags` to `"-O2 -g" ~bar +baz`, which is likely not what you wanted. You can fix this easily by either removing the quotes: spack find cflags="-O2 -g" ~bar +baz Or by adding a space at the start, which has the same effect: spack find ' cflags="-O2 -g" ~bar +baz' You may wonder why we don't just look for quotes inside of flag arguments, and the reason is that you *might* want them there. If you are passing arguments like: spack install zlib cppflags="-D DEBUG_MSG1='quick fox' -D DEBUG_MSG2='lazy dog'" You *need* the quotes there. So we've opted for one potentially confusing, but easily fixed outcome vs. limiting what you can put in your quoted strings. ## Quotes in formatted spec output In addition to being more lenient about characters accepted in quoted strings, this PR fixes up spec formatting a bit. We now format quoted strings in specs with single quotes, unless the string has a single quote in it, in which case we JSON-escape the string (i.e., we add `\` before `"` and `\`). zlib cflags='-D FOO="bar"' zlib cflags="-D FOO='bar'" zlib cflags="-D FOO='bar' BAR=\"baz\""
2023-12-13camp: fixing build issue (#41400)yizeyi182-0/+26
* adding necessary headers, to fix https://github.com/spack/spack/issues/41398 * deleting something imported by accident * [@spackbot] updating style on behalf of yizeyi18 * undo commit 7688fed according to suggestion from @msimberg * patching camp@:2022.10.1 for compatibility with gcc-13 * adding the patch * fixing paths in the patch * [@spackbot] updating style on behalf of yizeyi18 * Update camp patch using LLNL/camp@05e1c35 Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi> * changing patch name --------- Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi>
2023-12-13python: don't run mkdirp in `setup_dependent_package` (#41603)Harmen Stoppels2-5/+2
`setup_dependent_package` is not a build phase, it should just set globals for a package. It's called during setup of runtime environment of packages, and there have been reports of it actually failing due to a read only file system (not sure under what exact conditions that is possible).
2023-12-13perl-config-tiny: New package (#41584)Arne Becker1-0/+28