[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/289607909","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/289607909\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/289607909\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v1.0.4","id":289607909,"author":{"login":"becker33","id":13971568,"node_id":"MDQ6VXNlcjEzOTcxNTY4","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/13971568?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/becker33","html_url":"https:\/\/github.com\/becker33","followers_url":"https:\/\/api.github.com\/users\/becker33\/followers","following_url":"https:\/\/api.github.com\/users\/becker33\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/becker33\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/becker33\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/becker33\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/becker33\/orgs","repos_url":"https:\/\/api.github.com\/users\/becker33\/repos","events_url":"https:\/\/api.github.com\/users\/becker33\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/becker33\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4RQxDl","tag_name":"v1.0.4","target_commitish":"releases\/v1.0","name":"v1.0.4","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-02-23T20:38:23Z","updated_at":"2026-02-23T21:47:28Z","published_at":"2026-02-23T21:47:09Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/361035376","id":361035376,"node_id":"RA_kwDOAPAIsc4VhPZw","name":"spack-1.0.4.tar.gz","label":null,"uploader":{"login":"becker33","id":13971568,"node_id":"MDQ6VXNlcjEzOTcxNTY4","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/13971568?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/becker33","html_url":"https:\/\/github.com\/becker33","followers_url":"https:\/\/api.github.com\/users\/becker33\/followers","following_url":"https:\/\/api.github.com\/users\/becker33\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/becker33\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/becker33\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/becker33\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/becker33\/orgs","repos_url":"https:\/\/api.github.com\/users\/becker33\/repos","events_url":"https:\/\/api.github.com\/users\/becker33\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/becker33\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/x-gzip","state":"uploaded","size":5190173,"digest":"sha256:6ee1b77427966eff67e1f04019a07f1a67e94f5e3441edd2719aba603f862b0f","download_count":29,"created_at":"2026-02-23T21:47:26Z","updated_at":"2026-02-23T21:47:28Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v1.0.4\/spack-1.0.4.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v1.0.4","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v1.0.4","body":"# v1.0.4 (2026-02-23)\r\n\r\n## Bug fixes\r\n\r\n* Concretizer bugfixes:\r\n  * solver: remove a special case for provider weighting #51347\r\n  * solver: improve timeout handling and add Ctrl-C interrupt safety #51341\r\n  * solver: simplify interrupt\/timeout logic #51349\r\n* Repo management bugfixes:\r\n  * repo.py: support rhel 7 #51617\r\n  * repo.py: fix checking out commits #51695\r\n  * git: pull_checkout_branch RHEL7 git 1.8.3.1 fix #51779\r\n  * git: fix locking issue in pull_checkout_branch #51854\r\n  * spack repo remove: allow removing from unspecified scope #51563\r\n* build_environment.py: Prevent deadlock on install process join #51429\r\n* Fix typo in untrack_env #51554\r\n* audit.py: fix re.sub(..., N) positional count arg #51735\r\n\r\n## Enhancements\r\n\r\n* Support Macos Tahoe (#51373, #51394, #51479)\r\n* Support for Python 3.14, except for t-strings (#51686, #51687, #51688, #51697, #51663)\r\n* spack info: show conditional dependencies and licenses; allow filtering #51137\r\n* Spack fetch less likely to fail due to AI download protections #51496\r\n* config: relax concurrent_packages to minimum 0 #51840\r\n  * This avoids forward-incompatibility with Spack v1.2\r\n* Documentation improvements (#51315, #51640)"},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/280116990","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/280116990\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/280116990\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v1.1.1","id":280116990,"author":{"login":"becker33","id":13971568,"node_id":"MDQ6VXNlcjEzOTcxNTY4","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/13971568?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/becker33","html_url":"https:\/\/github.com\/becker33","followers_url":"https:\/\/api.github.com\/users\/becker33\/followers","following_url":"https:\/\/api.github.com\/users\/becker33\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/becker33\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/becker33\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/becker33\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/becker33\/orgs","repos_url":"https:\/\/api.github.com\/users\/becker33\/repos","events_url":"https:\/\/api.github.com\/users\/becker33\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/becker33\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4Qsj7-","tag_name":"v1.1.1","target_commitish":"releases\/v1.1","name":"v1.1.1 (2026-01-14)","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-01-26T08:35:39Z","updated_at":"2026-01-27T07:33:44Z","published_at":"2026-01-27T00:44:49Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/346363994","id":346363994,"node_id":"RA_kwDOAPAIsc4UpRha","name":"spack-1.1.1.tar.gz","label":null,"uploader":{"login":"becker33","id":13971568,"node_id":"MDQ6VXNlcjEzOTcxNTY4","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/13971568?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/becker33","html_url":"https:\/\/github.com\/becker33","followers_url":"https:\/\/api.github.com\/users\/becker33\/followers","following_url":"https:\/\/api.github.com\/users\/becker33\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/becker33\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/becker33\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/becker33\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/becker33\/orgs","repos_url":"https:\/\/api.github.com\/users\/becker33\/repos","events_url":"https:\/\/api.github.com\/users\/becker33\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/becker33\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/x-gzip","state":"uploaded","size":5194897,"digest":"sha256:a0160ae5e84adc81ac7832562a65ad79053d5c135996815dbb0d2eee6b2fca1c","download_count":938,"created_at":"2026-01-27T00:45:14Z","updated_at":"2026-01-27T00:45:17Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v1.1.1\/spack-1.1.1.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v1.1.1","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v1.1.1","body":"## Usability and performance enhancements\r\n\r\n* solver: do a precheck for non-existing and deprecated versions #51555\r\n* improvements to solver performance (PRs #51591, #51605, #51612, #51625)\r\n* python 3.14 support (PRs #51686, #51687, #51688, #51689, #51663)\r\n* display when conditions with dependencies in spack info #51588\r\n* spack repo remove: allow removing from unspecified scope #51563\r\n* spack compiler info: show non-external compilers too #51718\r\n\r\n## Improvements to the experimental new installer\r\n\r\n* support forkserver #51788 (for python 3.14 support)\r\n* support --dirty, --keep-stage, and `skip patch` arguments #51558\r\n* implement --use-buildcache, --cache-only, --use-cache and --only arguments #51593\r\n* implement overwrite, keep_prefix #51622\r\n* implement --dont-restage #51623\r\n* fix logging #51787\r\n\r\n## Bugfixes\r\n\r\n* repo.py: support rhel 7 #51617\r\n* solver: match glibc constraints by hash #51559\r\n* buildache list: list the component prefix not the root #51635\r\n* solver: fix issue with conditional language dependencies #51692\r\n* repo.py: fix checking out commits #51695\r\n* spec parser: ensure toolchains are expanded to different objects #51731\r\n* RHEL7 git 1.8.3.1 fix #51779\r\n* RewireTask.complete: return value from \\_process\\_binary\\_cache\\_tarball #51825\r\n\r\n## Documentation\r\n\r\n* docs: fix default projections setting discrepancy #51640","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/280116990\/reactions","total_count":1,"+1":0,"-1":0,"laugh":0,"hooray":1,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/262586092","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/262586092\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/262586092\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v1.1.0","id":262586092,"author":{"login":"becker33","id":13971568,"node_id":"MDQ6VXNlcjEzOTcxNTY4","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/13971568?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/becker33","html_url":"https:\/\/github.com\/becker33","followers_url":"https:\/\/api.github.com\/users\/becker33\/followers","following_url":"https:\/\/api.github.com\/users\/becker33\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/becker33\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/becker33\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/becker33\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/becker33\/orgs","repos_url":"https:\/\/api.github.com\/users\/becker33\/repos","events_url":"https:\/\/api.github.com\/users\/becker33\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/becker33\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4Ppr7s","tag_name":"v1.1.0","target_commitish":"releases\/v1.1","name":"v1.1.0 (2025-11-14)","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-11-14T22:35:12Z","updated_at":"2025-11-19T16:57:22Z","published_at":"2025-11-15T00:04:03Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/316598247","id":316598247,"node_id":"RA_kwDOAPAIsc4S3ufn","name":"spack-1.1.0.tar.gz","label":null,"uploader":{"login":"becker33","id":13971568,"node_id":"MDQ6VXNlcjEzOTcxNTY4","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/13971568?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/becker33","html_url":"https:\/\/github.com\/becker33","followers_url":"https:\/\/api.github.com\/users\/becker33\/followers","following_url":"https:\/\/api.github.com\/users\/becker33\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/becker33\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/becker33\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/becker33\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/becker33\/orgs","repos_url":"https:\/\/api.github.com\/users\/becker33\/repos","events_url":"https:\/\/api.github.com\/users\/becker33\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/becker33\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/x-gzip","state":"uploaded","size":5173389,"digest":"sha256:518474f546e87723c43b80143d83a51c065a8d54333c8140da6f48bc7d9e50c1","download_count":1151,"created_at":"2025-11-15T00:15:35Z","updated_at":"2025-11-15T00:15:39Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v1.1.0\/spack-1.1.0.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v1.1.0","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v1.1.0","body":"`v1.1.0` features major improvements to **compiler handling** and **configuration management**, a significant refactoring of **externals**, and exciting new **experimental features** like a console UI for parallel installations and concretization caching.\r\n\r\n## Major new features\r\n\r\n1. **Enhanced Compiler Control and Unmixing**\r\n\r\n   * Compiler unmixing (#51135)\r\n   * Propagated compiler preferences (#51383)\r\n\r\n   In Spack v1.0, support for compilers as nodes made it much easier to mix compilers for the same language on different packages in a Spec. This increased flexibility, but did not offer  options to constrain compiler selection when needed.\r\n  \r\n   * #51135 introduces the `concretizer:compiler_mixing` config option. When disabled, all specs in the \"root unification set\" (root specs and their transitive link\/run deps) will be assigned a single compiler for each language. You can also specify a list of packages to be excepted from the restriction.\r\n  \r\n   * #51383 introduces the `%%` sigil in the spec syntax. While `%` specifies a direct dependency for a single node, `%%` specifies a dependency for that node and a preference for its transitive link\/run dependencies (at the same priority as the `prefer` key in `packages.yaml` config). \r\n\r\n2. **Customizable configuration** (#51162)\r\n\r\n   All configuration now stems from `$spack\/etc\/spack` and `$spack\/etc\/spack\/defaults`, so the owner of a Spack instance can have full control over what configuration scopes exist.\r\n\r\n   * Scopes included in configuration can be named, and the builtin `site`, `user`, `system`, etc. scopes are now defined in configuration rather than hard-coded.\r\n   * `$spack\/etc\/spack\/defaults` is the lowest priority.\r\n   * `$spack\/etc\/spack` *includes* the other scopes at lower precedence than itself.\r\n   * You can override with any scopes *except* the defaults with `include::`. e.g., `include::[]` in an environment allows you to ignore everything but defaults entirely.\r\n   \r\n   Here is `$spack\/etc\/spack\/include.yaml`:\r\n   \r\n   ```yaml\r\n   include:\r\n     # user configuration scope\r\n     - name: \"user\"\r\n       path: \"~\/.spack\"\r\n       optional: true\r\n       when: '\"SPACK_DISABLE_LOCAL_CONFIG\" not in env'\r\n\r\n     # site configuration scope\r\n     - name: \"site\"\r\n       path: \"$spack\/etc\/spack\/site\"\r\n       optional: true\r\n\r\n     # system configuration scope\r\n     - name: \"system\"\r\n       path: \"\/etc\/spack\"\r\n       optional: true\r\n       when: '\"SPACK_DISABLE_LOCAL_CONFIG\" not in env'\r\n   ```\r\n\r\n   NOTE: This change inverts the priority order of configuration in `$spack\/etc\/spack` and `~\/.spack`.\r\n   \r\n   See the [configuration docs](https:\/\/spack.readthedocs.io\/en\/latest\/configuration.html) and\r\n   [include docs](https:\/\/spack.readthedocs.io\/en\/latest\/include_yaml.html) for \r\n   more information.\r\n\r\n3. **Git includes** (#51191)\r\n\r\n   Configuration files can now be included directly from a **remote Git repository**. This allows for easier sharing and versioning of complex configurations across teams or projects. These entries accept the same syntax as remote repository configuration, and can likewise be conditional with `when:`.\r\n  \r\n   ```yaml\r\n   include:\r\n   - git: https:\/\/github.com\/spack\/spack-configs\r\n     branch: main\r\n     when: os == \"centos7\"\r\n     paths:\r\n     - USC\/config\/config.yaml\r\n     - USC\/config\/packages.yaml\r\n   ```\r\n   \r\n   See [the docs](https:\/\/spack.readthedocs.io\/en\/latest\/include_yaml.html#git-repository-files) for details.\r\n\r\n4. **Externals Can Now Have Dependencies** (#51118)\r\n\r\n   Externals are treated as concrete specs, so there is a 1:1 mapping between an entry in `packages.yaml` and any installed external spec (for a fixed repository).\r\n   \r\n   Their YAML specification has been extended to allow modeling dependencies of external specs. This might be quite useful to better capture e.g. ROCm installations that are already installed on a given system, or in similar cases.\r\n   \r\n   To be backward compatible with external specs specifying a compiler, for instance `mpich %gcc@9`, Spack will match the compiler specification to an existing external. It will fail when the specification is ambiguous, or if it does not match any other externals.\r\n\r\n    See [the documentation](https:\/\/spack.readthedocs.io\/en\/latest\/packages_yaml.html#specifying-dependencies-among-external-packages) for more details.\r\n\r\n\r\n## Experimental Features\r\n\r\n5. **New installer UI** (experimental, see #51434)\r\n\r\n   New, experimental console UI for the Spack installer that allows:\r\n\r\n   * Spack to show progress on multiple parallel processes concurrently;\r\n   * Users to view logs for different installations independently; and\r\n   * Spack to share a jobserver among multiple parallel builds.\r\n\r\n   [![asciicast width=300](https:\/\/asciinema.org\/a\/755827.svg)](https:\/\/asciinema.org\/a\/755827)\r\n\r\n   Usage:\r\n\r\n   * Run this to enable by default (and persist across runs):\r\n     ```\r\n     spack config add config:installer:new\r\n     ```\r\n     or use:\r\n     ```\r\n     spack -c config:installer:new install ...\r\n     ```\r\n     to try one run with the new UI.\r\n   * The `-j` flag in spack install `-j <N> ...` is all you need, it will build packages in parallel. There is no need to set `-p`; the installer spawns as many builds as it can and shares work by default. \r\n   * Use `n` for next logs and `p\/N` for previous logs\r\n   * Use `v` to toggle between logs and overview\r\n   * Use `q` or `Esc` to go from logs back to overview.\r\n   * Use `\/` to enter search mode: filters the overview as you type; press `Enter` to follow logs or `Esc` to exit search mode.\r\n\r\n   > [!WARNING]\r\n   > This feature is experimental because it is not feature-complete to match the existing installer. See the issue #51515 for a list of features that are not completed. Particularly note that the new installer locks the entire database, and other spack instances will not install concurrently while it is running.\r\n\r\n6. **Concretization Caching** (experimental, see #50905, #51448)\r\n\r\n   Spack can cache concretization outputs for performance. With caching, Spack will still set up the concretization problem, but it can look up the solve result and avoid long solve times. This feature is currently off by default, but you can enable it with:\r\n   \r\n   ```\r\n   spack config add concretizer:concretization_cache:enable:true\r\n   ```\r\n   \r\n   > [!WARNING]\r\n   > Currently there is a bug that the cache will return results that do not properly reflect changes in the `package_hash` (that is, changes in the `package.py` source code). We will enable caching by default in a future release, when this bug is fixed.\r\n\r\n## Potentially breaking changes\r\n* Configurable configuration changes the precedence of the `site` scope.\r\n    * The `spack` scope (in `\/etc\/spack` within the Spack installation) is now the highest precedence scope\r\n    * The `site` scope is now *lower* precedence than `spack` and `user`.\r\n    * If you previously had configuration files in in `$spack\/etc\/spack`, they will take precedence over configuration in `~\/.spack`. If you do not want that, move them to `$spack\/etc\/spack\/site`. \r\n    * See #51162 for details.\r\n* Fixed a bug with command-line and environment scope ordering. The environment scope could previously override custom command-line scopes. Now, the active environment is *always* lower precedence than any configuration scopes provided on the command line. (#51461)\r\n    \r\n## Other notable improvements\r\n\r\n### Improved error messages\r\n* solver: catch invalid dependencies during concretization (#51176)\r\n* improved errors for requirements (#45800)\r\n\r\n### Performance Improvements\r\n* `spack mirror create --all` now runs in parallel (#50901)\r\n* `spack develop`: fast automatic reconcretization (#51140)\r\n* Don't spawn a process for `--fake` installs (#51491)\r\n* Use `gethostname` instead of `getfqdn` (#51481)\r\n* Check for `commit` variant only if not developing (#51507)\r\n* Concretization performance improvements (#51160, #51152, #51416)\r\n* spack diff: fix performance bug (#51270)\r\n\r\n### Concretizer improvements\r\n* concretizer: fix direct dep w\/ virtuals issue (#51037)\r\n* solver: reduce items in edge optimizations (#51503)\r\n\r\n### UI and Commands\r\n* Managed environments can now be organized into folders (#50994)\r\n* `spack info` shows full info about conditional dependencies and can filter by spec. (#51137)\r\n* `spack help` is now reorganized and has color sections (#51484)\r\n* `spack clean --all` means all (no exception for bootstrap cache) (#50984)\r\n* `--variants-by-name` no longer used (#51450)\r\n* `spack env create`: allow creation from env or env dir (#51433)\r\n\r\n## Notable Bugfixes\r\n* mirror: clean up stage when retrying (#43519)\r\n* Many smaller concretization fixes (#51361, #51355, #51341, #51347, #51282, #51190, #51226, #51065, #51064, #51074)\r\n* Bugfix for failed multi-node parallel installations (#50933)\r\n     \r\n## Spack community stats\r\n\r\n* 1,681 commits\r\n* 8,611 packages in the 2025.11.0 release, 112 new since 2025.07.0\r\n* 276 people contributed to this release\r\n* 265 committers to packages\r\n* 31 committers to core\r\n\r\nSee the [2025.11.0 release](https:\/\/github.com\/spack\/spack-packages\/releases\/tag\/v2025.11.0) of [spack-packages](https:\/\/github.com\/spack\/spack-packages\/) for more details.\r\n","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/262586092\/reactions","total_count":5,"+1":2,"-1":0,"laugh":0,"hooray":2,"confused":0,"heart":1,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/246721363","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/246721363\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/246721363\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v1.0.2","id":246721363,"author":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4OtKtT","tag_name":"v1.0.2","target_commitish":"releases\/v1.0","name":"v1.0.2 (2025-09-11)","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-09-12T08:47:46Z","updated_at":"2025-09-16T07:44:52Z","published_at":"2025-09-16T07:17:53Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/293745941","id":293745941,"node_id":"RA_kwDOAPAIsc4RgjUV","name":"spack-1.0.2.tar.gz","label":null,"uploader":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/gzip","state":"uploaded","size":5186108,"digest":"sha256:c0d4f142ba45160b7cb3fa0c6bb23633734cef689a4a193eb91d08c233ba1f1b","download_count":741,"created_at":"2025-09-16T07:44:50Z","updated_at":"2025-09-16T07:44:52Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v1.0.2\/spack-1.0.2.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v1.0.2","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v1.0.2","body":"## Bug Fixes\r\n\r\n* `spack config edit` can now open malformed YAML files. (#51088)\r\n* `spack edit -b` supports specifying the repository path or its namespace. (#51084)\r\n* `spack repo list` escapes the color code for paths that contain `@g`. (#51178)\r\n* Fixed various issues on the solver:\r\n  * Improved the error message when an invalid dependency is specified in the input. (#51176)\r\n  * Build the preferred compiler with itself by default. (#51201)\r\n  * Fixed a performance regression when using `unify:when_possible`. (#51226)\r\n  * Fixed an issue with strong preferences, when provider details are given. (#51263)\r\n  * Fixed an issue when specifying flags on a package that appears multiple times in the DAG. (#51218) \r\n* Fixed a regression for `zsh` in `spack env activate --prompt`. (#51258)\r\n* Fix a few cases where the `when` context manager was not dealing with direct dependencies correctly. (#51259)\r\n* Various fixes to string representations of specs. (#51207) \r\n\r\n## Enhancements\r\n\r\n* Various improvements to the documentation. (#51145, #51151, #51147, #51181, #51172, #51188, #51195)\r\n* Greatly improve the performance of `spack diff`. (#51270)\r\n* `spack solve` highlights optimization weights in a more intuitive way. (#51198)","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/246721363\/reactions","total_count":4,"+1":0,"-1":0,"laugh":0,"hooray":4,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/239287030","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/239287030\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/239287030\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v1.0.1","id":239287030,"author":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4OQzr2","tag_name":"v1.0.1","target_commitish":"releases\/v1.0","name":"v1.0.1 (2025-08-11)","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-08-12T00:22:01Z","updated_at":"2025-08-12T08:46:51Z","published_at":"2025-08-12T08:46:35Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/281714136","id":281714136,"node_id":"RA_kwDOAPAIsc4Qyp3Y","name":"spack-1.0.1.tar.gz","label":null,"uploader":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/gzip","state":"uploaded","size":5180728,"digest":"sha256:dd1345427dbc9281f359bdb6d0d53cb38edb94fd2ebee3256fda441c8242205e","download_count":1427,"created_at":"2025-08-12T08:46:48Z","updated_at":"2025-08-12T08:46:51Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v1.0.1\/spack-1.0.1.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v1.0.1","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v1.0.1","body":"## Bug Fixes\r\n\r\n* Ensure forward compatibility of package hashing with the upcoming Python 3.14 release. (#51042)\r\n* The `spack diff` command now shows differences in runtime dependencies (e.g., `gcc-runtime`, `glibc`), which were previously hidden. (#51076)\r\n* Fix a regression where the solver would mishandle a compiler that was required as both a build and a link dependency. (#51074)\r\n* Resolved issues with selecting external packages that have a specific compiler specified. (#51064)\r\n* Fix a bug where the concretizer would compute solution scores incorrectly when the package does not depend on a compiler. (#51037)\r\n* The solver now correctly evaluates and respects package requirements that specify a hash. (#51065)\r\n* Fix an issue where sparse checkouts for different packages could overwrite each other in a source cache or mirror. (#51080)\r\n* Prevent `spack repo add` from overwriting the default branch when initially cloning a repository. (#51105)\r\n* Add exception handling for bad URLs when fetching git provenance information. (#51022)\r\n* Spack no longer conflates git warning messages with command output. (#51045)\r\n* Fix an issue with non-path-based package repositories in environments. (#51055)\r\n* Spack now validates the terminal size and will fall back to `LINES` and `COLUMNS` environment variables if detection fails. (#51090)\r\n* Fix an issue where the package's fetcher was not being set correctly. (#51108)\r\n* Ensure `spack tutorial` clones Spack v1.0 instead of v0.23. (#51091)\r\n\r\n## Enhancements\r\n\r\n* Various improvements to the documentation (#51014, #51033, #51039, #51049, #51066, #51073, #51079, #51082, #51083, #51086, #51126, #51131, #51132, #51025)","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/239287030\/reactions","total_count":8,"+1":3,"-1":0,"laugh":0,"hooray":5,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/233428930","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/233428930\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/233428930\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v1.0.0","id":233428930,"author":{"login":"becker33","id":13971568,"node_id":"MDQ6VXNlcjEzOTcxNTY4","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/13971568?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/becker33","html_url":"https:\/\/github.com\/becker33","followers_url":"https:\/\/api.github.com\/users\/becker33\/followers","following_url":"https:\/\/api.github.com\/users\/becker33\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/becker33\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/becker33\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/becker33\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/becker33\/orgs","repos_url":"https:\/\/api.github.com\/users\/becker33\/repos","events_url":"https:\/\/api.github.com\/users\/becker33\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/becker33\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4N6dfC","tag_name":"v1.0.0","target_commitish":"releases\/v1.0","name":"v1.0.0 (2025-07-20)","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-07-20T10:44:46Z","updated_at":"2025-08-13T15:54:11Z","published_at":"2025-07-20T10:45:13Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/274787582","id":274787582,"node_id":"RA_kwDOAPAIsc4QYOz-","name":"spack-1.0.0.tar.gz","label":null,"uploader":{"login":"tgamblin","id":299842,"node_id":"MDQ6VXNlcjI5OTg0Mg==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/299842?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/tgamblin","html_url":"https:\/\/github.com\/tgamblin","followers_url":"https:\/\/api.github.com\/users\/tgamblin\/followers","following_url":"https:\/\/api.github.com\/users\/tgamblin\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/tgamblin\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/tgamblin\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/tgamblin\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/tgamblin\/orgs","repos_url":"https:\/\/api.github.com\/users\/tgamblin\/repos","events_url":"https:\/\/api.github.com\/users\/tgamblin\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/tgamblin\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/x-gzip","state":"uploaded","size":5172278,"digest":"sha256:70dceb9abdf1225d596714522a0fc4d0290e8c5496f1bae8192ffe611b60cfa1","download_count":266,"created_at":"2025-07-21T03:49:40Z","updated_at":"2025-07-21T03:50:26Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v1.0.0\/spack-1.0.0.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v1.0.0","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v1.0.0","body":"`v1.0.0` is a major feature release and a significant milestone. It introduces compiler dependencies, a foundational change that has been in development for almost seven years, and the project's first stable package API.\r\n\r\nIf you are interested in more information, you can find more details on the road to v1.0, as well as its features, in talks from the 2025 Spack User Meeting. For example:\r\n* [State of the Spack Community](https:\/\/www.youtube.com\/watch?v=4rInmUfuiZQ&list=PLRKq_yxxHw29-JcpG2CZ-xKK2U8Hw8O1t&index=2)\r\n* [Spack v1.0 overview](https:\/\/www.youtube.com\/watch?v=nFksqSDNwQA&list=PLRKq_yxxHw29-JcpG2CZ-xKK2U8Hw8O1t&index=4)\r\n\r\nIntroducing some of these features required us to make breaking changes. In most cases, we've also provided tools (in the form of Spack commands) that you can use to automatically migrate your packages and configuration.\r\n\r\n## Overview\r\n\r\n- [Overview](#overview)\r\n- [Stable Package API](#stable-package-api)\r\n    - [Separate Package Repository](#separate-package-repository)\r\n    - [Updating and Pinning Packages](#updating-and-pinning-packages)\r\n    - [Breaking changes related to package repositories](#breaking-changes-related-to-package-repositories)\r\n    - [Migrating to the new package API](#migrating-to-the-new-package-api)\r\n- [Compiler dependencies](#compiler-dependencies)\r\n    - [Compiler configuration](#compiler-configuration)\r\n    - [Languages are virtual dependencies](#languages-are-virtual-dependencies)\r\n    - [The meaning of % has changed](#the-meaning-of-%25-has-changed)\r\n    - [Virtual assignment syntax](#virtual-assignment-syntax)\r\n    - [Toolchains](#toolchains)\r\n    - [Ordering of variants and compilers now matters](#ordering-of-variants-and-compilers-now-matters)\r\n- [Additional Major Features](#additional-major-features)\r\n    - [Concurrent Package Builds](#concurrent-package-builds)\r\n    - [Content-addressed build caches](#content-addressed-build-caches)\r\n    - [Better provenance and mirroring for git](#better-provenance-and-mirroring-for-git)\r\n    - [Environment variables in environments](#environment-variables-in-environments)\r\n    - [Better include functionality](#better-include-functionality)\r\n- [New commands and options](#new-commands-and-options)\r\n- [Notable refactors](#notable-refactors)\r\n- [Documentation](#documentation)\r\n- [Notable Bugfixes](#notable-bugfixes)\r\n- [Additional deprecations, removals, and breaking changes](#additional-deprecations-removals-and-breaking-changes)\r\n- [Spack community stats](#spack-community-stats)\r\n\r\n## Stable Package API\r\n\r\nIn Spack `v1.0`, the package repository is separate from the Spack tool, giving you more control over the versioning of package recipes. There is also a stable [Package API](https:\/\/spack.readthedocs.io\/en\/latest\/package_api.html) that is versioned separately from Spack.\r\n\r\nThis release of Spack supports package API from `v1.0` up to `v2.2`. The older `v1.0` package API is deprecated and may be removed in a future release, but we are guaranteeing that any Spack `v1.x` release will be backward compatible with Package API `v.2.x` -- i.e., it can execute code from the packages in *this* Spack release.\r\n\r\nSee the [Package API Documentation](https:\/\/spack.readthedocs.io\/en\/latest\/package_api.html) for full details\r\non package versioning and compatibility. The high level details are:\r\n\r\n  1. The `spack.package` Python module defines the Package API;\r\n  2. The Package API *minor version* is incremented when new functions or classes are exported from `spack.package`; and\r\n  3. The major version is incremented when functions or classes are removed or have breaking changes to their signatures (a rare occurrence).\r\n\r\nThis independent versioning allows package authors to utilize new Spack features without waiting for a new Spack release. Older Spack packages (API `v1.0`) may import code from outside of `spack.package`, e.g., from `spack.*` or `llnl.util.*`. This is deprecated and *not* included in the API guarantee. We will remove support for these packages in a future Spack release. \r\n\r\n### Separate Package Repository\r\n\r\nThe Spack `builtin` package repository no longer lives in the Spack git repository. You can find it here:\r\n\r\n* https:\/\/github.com\/spack\/spack-packages\r\n\r\nSpack clones the package repository automatically when you first run, so you do not have to manage this manually. By default, Spack version `v1.0` uses the `v2025.07`  release of `spack-packages`. You can find out more about it by looking at the [package releases](https:\/\/github.com\/spack\/spack-packages\/releases).\r\n\r\nDownloaded package repos are stored by default within `~\/.spack`, but the fetch destination can be configured. (#50650). If you want your package repository to live somewhere else, run, e.g.:\r\n\r\n```\r\nspack repo set --destination ~\/spack-packages builtin\r\n```\r\n\r\nYou can also configure your *own* package repositories to be fetched automatically from git urls, just as you can with `builtin`. See the [repository configuration docs](https:\/\/spack.readthedocs.io\/en\/latest\/repositories.html) for details.\r\n\r\n### Updating and Pinning Packages\r\n\r\nYou can tell Spack to update the core package repository from a branch. For example, on `develop` or on a release, you can run commands like:\r\n\r\n  ```shell\r\n  # pull the latest packages\r\n  spack repo update\r\n  ```\r\nor\r\n\r\n  ```shell\r\n  # check out a specific commit of the spack-packages repo\r\n  spack repo update --commit 2bf4ab9585c8d483cc8581d65912703d3f020393 builtin\r\n  ```\r\n\r\nwhich will set up your configuration like this:\r\n\r\n  ```yaml\r\n  repos:\r\n    builtin:\r\n      git: \"https:\/\/github.com\/spack\/spack-packages.git\"\r\n      commit: 2bf4ab9585c8d483cc8581d65912703d3f020393\r\n  ```\r\n\r\nYou can use this within an environment to pin a specific version of its package files. See the [repository configuration docs](https:\/\/spack.readthedocs.io\/en\/latest\/repositories.html) for more details (#50868, #50997, #51021).\r\n\r\n### Breaking changes related to package repositories\r\n\r\n1. The builtin repo now lives in `var\/spack\/repos\/spack_repo\/builtin` instead of `var\/spack\/repos\/builtin`, and it has a new layout, which you can learn about in the [repo docs](https:\/\/spack.readthedocs.io\/en\/latest\/repositories.html).\r\n\r\n2. The module `spack.package` no longer exports the following symbols, mostly related to build systems: \r\n`AspellDictPackage`, `AutotoolsPackage`, `BundlePackage`, `CachedCMakePackage`, `cmake_cache_filepath`, `cmake_cache_option`, `cmake_cache_path`, `cmake_cache_string`, `CargoPackage`, `CMakePackage`, `generator`, `CompilerPackage`, `CudaPackage`, `Package`, `GNUMirrorPackage`, `GoPackage`, `IntelPackage`, `IntelOneApiLibraryPackageWithSdk`, `IntelOneApiLibraryPackage`, `IntelOneApiStaticLibraryList`, `IntelOneApiPackage`, `INTEL_MATH_LIBRARIES`, `LuaPackage`, `MakefilePackage`, `MavenPackage`, `MesonPackage`, `MSBuildPackage`, `NMakePackage`, `OctavePackage`, `PerlPackage`, `PythonExtension`, `PythonPackage`, `QMakePackage`, `RacketPackage`, `RPackage`, `ROCmPackage`, `RubyPackage`, `SConsPackage`, `SIPPackage`, `SourceforgePackage`, `SourcewarePackage`, `WafPackage`, `XorgPackage`\r\n\r\n   These are now part of the `builtin` package repository, not part of core spack or its package API. When using repositories with package API `v2.0` and higher, *you must explicitly import these package classes* from the appropriate module in `spack_repo.builtin.build_systems` (see #50452 for more).\r\n\r\n   e.g., for `CMakePackage`, you would write:\r\n\r\n     ```python\r\n     from spack_repo.builtin.build_systems.cmake import CMakePackage\r\n     ```\r\n\r\n   Note that `GenericBuilder` and `Package` *are* part of the core package API. They are currently re-exported from\r\n   `spack_repo.builtin.build_systems.generic` for backward compatibility but may be removed from the package repo. You should prefer to import them from `spack.package`.\r\n\r\n   The original names will still work for old-style (`v1.0`) package repositories but *not* in `v2.0` package repositories. Note that this means that the API stability promise does *not* include old-style package repositories. They are deprecated and will be removed in a future version. So, you should update as soon as you can.\r\n\r\n3. Package directory names within `v2.0` repositories are now valid Python modules\r\n\r\n    | Old                   | New                   | Description                         |\r\n    |-----------------------|-----------------------|-------------------------------------|\r\n    | `py-numpy\/package.py` | `py_numpy\/package.py` | hyphen is replaced by underscore.   |\r\n    | `7zip\/package.py`     | `_7zip\/package.py`    | leading digits now preceded by _    |\r\n    | `pass\/package.py`     | `_pass\/package.py`    | Python reserved words preceded by _ |\r\n\r\n\r\n4. Spack has historically injected `import` statements into package recipes, so there was no need to use `from spack.package import *` (though we have included it in `builtin` packages for years. `from spack.package import *` (or more specific imports) will be necessary in packages. The magic we added in the early days of Spack was causing IDEs, code editors, and other tools not to be able to understand Spack packages. Now they use standard Python import semantics and should be compatible with modern Python tooling. This change was also necessary to support Python 3.13. (see #47947 for more details).\r\n\r\n### Migrating to the new package API\r\n\r\nSupport will remain in place for the old repository layout for *at least a year*, so that you can continue to use old-style repos in conjunction with earlier versions. If you have custom repositories that need to migrate to the new layout, you can upgrade them to package API `v2.x` by running:\r\n\r\n```\r\nspack repo migrate\r\n```\r\n\r\nThis will make the following changes to your repository:\r\n\r\n   1. If you used to import from `spack.pkg.builtin` in Python, you now need to import from `spack_repo.builtin` instead:\r\n\r\n       ```python\r\n       # OLD: no longer supported\r\n       from spack.pkg.builtin.my_pkg import MyPackage \r\n\r\n       # NEW: spack_repo is a Python namespace package\r\n       from spack_repo.builtin.packages.my_pkg.package import MyPackage  \r\n       ```\r\n   2. Normalized directory names for packages\r\n   3. New-style `spack.package` imports\r\n\r\nSee #50507, #50579, and #50594 for more.\r\n\r\n## Compiler dependencies\r\n\r\nPrior to `v1.0`, compilers in Spack were attributes on nodes in the spec graph, with a name and a version (e.g., `gcc@12.0.0`). In `v1.0` compilers are packages like any other package in Spack (see #45189). This means that they can have variants, targets, and other attributes that regular nodes have.\r\n\r\nHere, we list the major changes that users should be aware of for this new model.\r\n\r\n### Compiler configuration\r\n\r\nIn Spack `v1.0`, `compilers.yaml` is deprecated.  `compilers.yaml` is still read by Spack, if present. We will continue to support this for at least a year, but we may remove it after that. Users are encouraged to migrate their configuration to use `packages.yaml` instead. \r\n\r\nOld style `compilers.yaml` specification:\r\n\r\n```yaml\r\ncompilers:\r\n  - compiler:\r\n      spec: gcc@12.3.1\r\n      paths:\r\n         c: \/usr\/bin\/gcc\r\n         cxx: \/usr\/bin\/g++\r\n         fc: \/usr\/bin\/gfortran\r\n       modules: [...]\r\n```\r\n\r\nNew style `packages.yaml` compiler specification:\r\n\r\n```yaml\r\npackages:\r\n  gcc:\r\n    externals:\r\n    - spec: gcc@12.3.1+binutils\r\n      prefix: \/usr\r\n      extra_attributes:\r\n        compilers:\r\n          c: \/usr\/bin\/gcc\r\n          cxx: \/usr\/bin\/g++\r\n          fc: \/usr\/bin\/gfortran\r\n        modules: [...]\r\n```\r\n\r\nSee [Configuring Compilers](https:\/\/spack.readthedocs.io\/en\/latest\/configuring_compilers.html) for more details.\r\n\r\n\r\n### Languages are virtual dependencies\r\n\r\nPackages that need a C, C++, or Fortran compiler now **must** depend on `c`, `cxx`, or `fortran` as a build dependency, e.g.:\r\n\r\n```python\r\nclass MyPackage(Package):\r\n    depends_on(\"c\", type=\"build\")\r\n    depends_on(\"cxx\", type=\"build\")\r\n    depends_on(\"fortran\", type=\"build\")\r\n```\r\n\r\nHistorically, Spack assumed that *every* package was compiled with C, C++, and Fortran. In Spack `v1.0`, we allow packages to simply not have a compiler if they do not need one. For example, pure Python packages would not depend on any of these, and you should not add these dependencies to packages that do not need them.\r\n\r\n[Spack `v0.23`](https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.23.0) introduced language virtual dependencies, and we have back-ported them to `0.21.3` and `v0.22.2`.  In pre-1.0 Spack releases, these are a no-op. They are present so that language dependencies do not cause an error. This allows you to more easily use older Spack versions together with `v1.0`.\r\n\r\nSee #45217 for more details.\r\n\r\n### The meaning of `%` has changed\r\n\r\nIn Spack `v0.x`, `%` specified a compiler with a name and an optional version. In Spack `v1.0`, it simply means \"direct dependency\". It is similar to the caret `^`, which means \"direct *or* transitive dependency\".\r\n\r\nUnlike `^`, which specifies a dependency that needs to be unified for the whole graph, `%` can specify direct dependencies of particular nodes. This means you can use it to mix and match compilers, or `cmake` versions, or any other package for which *multiple* versions of the same build dependency are needed in the same graph. For example, in this spec:\r\n\r\n```\r\nfoo ^hdf5 %cmake@3.1.2 ^zlib-ng %cmake@3.2.4\r\n```\r\n\r\n`hdf5` and `zlib-ng` are both transitive dependencies of `foo`, but `hdf5` will be built with `cmake@3.1.2` and `zlib-ng` will be built with `%cmake@3.2.4`. This is similar to mixing compilers, but you can now use `%` with other types of build dependencies, as well. You can have multiple versions of packages in the same graph, as long as they are purely build dependencies.\r\n\r\n### Virtual assignment syntax\r\n\r\nYou can still specify compilers with `foo %gcc`, in which case `gcc` will be used to satisfy any `c`, `cxx`, and `fortran` dependencies of `foo`, but you can also be specific about the compiler that should be used for each language. To mix, e.g., `clang` and `gfortran`, you can now use *virtual assignment* like so:\r\n\r\n```console\r\nspack install foo %c,cxx=gcc %fortran=gfortran\r\n```\r\n\r\nThis says to use `gcc` for `c` and `cxx`, and `gfortran` for `fortran`.\r\nIt is functionally equivalent to the already supported edge attribute syntax:\r\n\r\n```\r\nspack install foo %[virtuals=c,cxx] gcc %[virtuals=fortran] gfortran\r\n```\r\n\r\nBut, virtual assignment is more legible. We use it as the default formatting for virtual edge attributes, and we print it in the output of `spack spec`, `spack find`, etc. For example:\r\n\r\n```console\r\n> spack spec zlib\r\n -   zlib@1.3.1+optimize+pic+shared build_system=makefile arch=darwin-sequoia-m1 %c,cxx=apple-clang@16.0.0\r\n[e]      ^apple-clang@16.0.0 build_system=bundle arch=darwin-sequoia-m1\r\n -       ^compiler-wrapper@1.0 build_system=generic arch=darwin-sequoia-m1\r\n[+]      ^gmake@4.4.1~guile build_system=generic arch=darwin-sequoia-m1 %c=apple-clang@16.0.0\r\n[+]          ^compiler-wrapper@1.0 build_system=generic arch=darwin-sequoia-m1\r\n```\r\n\r\nYou can see above that only `zlib` and `gmake` are compiled, and `gmake` uses only `c`. The other nodes are either external, and we cannot detect the compiler (`apple-clang`) or they are not compiled (`compiler-wrapper` is a shell script).\r\n\r\n### Toolchains\r\n\r\nSpack now has a concept of a \"toolchain\", which can be configured in `toolchains.yaml`. A toolchain is an alias for common dependencies, flags, and other spec properties that you can attach to a node in a graph with `%`.\r\n\r\nToolchains are versatile and composable as they are simply aliases for regular specs. You can use them to represent mixed compiler combinations, compiler\/MPI\/numerical library groups, particular runtime libraries, and flags -- all to be applied together. This allows you to do with compiler dependencies what we used to do with `compilers.yaml`, and more. \r\n\r\nExample mixed clang\/gfortran toolchain:\r\n\r\n```yaml\r\ntoolchains:\r\n  clang_gfortran:\r\n    - spec: %c=clang\r\n      when: %c\r\n    - spec: %cxx=clang\r\n      when: %cxx\r\n    - spec: %fortran=gcc\r\n      when: %fortran\r\n    - spec: cflags=\"-O3 -g\"\r\n    - spec: cxxflags=\"-O3 -g\"\r\n    - spec: fflags=\"-O3 -g\"\r\n```\r\n\r\nThis enables you to write `spack install foo %clang_gfortran`, and Spack will resolve the `%clang_gfortran` toolchain to include the dependencies and flags listed in `toolchains.yaml`.\r\n\r\nYou could also couple the intel compilers with `mvapich2` like so:\r\n\r\n```yaml\r\ntoolchains:\r\n  intel_mvapich2:\r\n    - spec: %c=intel-oneapi-compilers @2025.1.1\r\n      when: %c\r\n    - spec: %cxx=intel-oneapi-compilers @2025.1.1\r\n      when: %cxx\r\n    - spec: %fortran=intel-oneapi-compilers @2025.1.1\r\n      when: %fortran\r\n    - spec: %mpi=mvapich2 @2.3.7-1 +cuda\r\n      when: %mpi\r\n```\r\n\r\nThe `when:` conditions here ensure that toolchain constraints are only applied when needed. See the [toolchains documentation](https:\/\/spack.readthedocs.io\/en\/latest\/advanced_topics.html#defining-and-using-toolchains) or #50481 for details.\r\n\r\n### Ordering of variants and compilers now matters\r\n\r\nIn Spack `v0.x`, these two specs parse the same:\r\n\r\n```\r\npkg %gcc +foo\r\npkg +foo %gcc\r\n```\r\n\r\nThe `+foo` variant applies to `pkg` in either case. In Spack `v1.0`, there is a breaking change, and `+foo` in `pkg %gcc +foo` now applies to `gcc`, since `gcc` is a normal package. This ensures we have the following symmetry:\r\n\r\n```\r\npkg +foo %dep +bar  # `pkg +foo` depends on `dep +bar` directly\r\npkg +foo ^dep +bar  # `pkg +foo` depends on `dep +bar` directly or transitively\r\n```\r\n\r\nIn Spack `v1.0` you may get errors at concretization time if `+foo` is not a variant of `gcc` in specs like`%pkg %gcc +foo`.\r\n\r\nYou can use the `spack style --spec-strings` command to update `package.py` files, `spack.yaml` files:\r\n\r\n  ```shell\r\n  # dry run\r\n  spack style --spec-strings $(git ls-files)  # if you have a git repo\r\n  spack style --spec-strings spack.yaml  # environments\r\n  ```\r\n\r\n  ```shell\r\n  # use --fix to perform the changes listed by the dry run\r\n  spack style --fix --spec-strings $(git ls-files)\r\n  spack style --fix --spec-strings spack.yaml\r\n  ```\r\n\r\n  See #49808, #49438, #49439 for details.\r\n\r\n## Additional Major Features\r\n\r\n### Concurrent Package Builds\r\n\r\nThis release has completely reworked Spack's build scheduler, and it adds a `-p`\/ `--concurrent-packages` argument to `spack install`, which can greatly accelerate builds with many packages. You can use it in combination with `spack install -j`. For example, this command:\r\n   \r\n```\r\nspack install -p 4 -j 16\r\n```\r\n   \r\nruns up to 4 package builds at once, each with up to 16 make jobs.  The default for `--concurrent-packages` is currently 1, so you must enable this feature yourself, either on the command line or by setting `config:concurrent_packages` (#50856):\r\n\r\n```yaml\r\nconfig:\r\n  concurrent_packages: 1\r\n```\r\n   \r\nAs before, you can run `spack install` on multiple nodes in a cluster, if the filesystem where Spack's `install_tree` is located supports locking.\r\n\r\nWe will make concurrent package builds the default in `1.1`, when we plan to include support for `gmake`'s jobserver protocol and for line-synced output. Currently, setting `-p` higher than 1 can make Spack's output difficult to read.\r\n\r\n### Content-addressed build caches\r\n\r\nSpack `v1.0` changes the format of build caches to address a number of scaling and consistency issues with our old (aging) buildcache layout. The new buildcache format is content-addressed and enables us to make many operations atomic (and therefore safer). It is also more extensible than the old buildcache format and can enable features like split debug info and different signing methods in the future. See #48713 for more details.\r\n\r\nSpack `v1.0` can still read, but not write to, the old build caches. The new build cache format is *not* backward compatible with the old format, *but* you can have a new build cache and an old build cache coexist beside each other. If you push to an old build cache, new binaries will start to show up in the new format.\r\n\r\nYou can migrate an old buildcache to the new format using the `spack buildcache migrate` command. It is nondestructive and can migrate an old build cache to a new one in-place. That is, it creates the new buildcache within the same directory, alongside the old buildcache.\r\n\r\nAs with other major changes, the old buildcache format is deprecated in `v1.0`, but will not be removed for at least a year.\r\n\r\n### Better provenance and mirroring for git\r\n\r\nSpack now resolves and preserves the commit of any git-based version at concretization time, storing the precise commit built on the Spec in a reserved `commit` variant.  This allows us to better reproduce git builds.    See #48702 for details.\r\n\r\nHistorically, Spack has only stored the ref name, e.g. the branch or tag, for git versions that did not already contain full commits. Now we can know exactly what was built regardless of how it was fetched.\r\n\r\nAs a consequence of this change, mirroring git repositories is also more robust. See #50604, #50906 for details.\r\n  \r\n### Environment variables in environments\r\n\r\nYou can now specify environment variables in your environment that should be set on activation (and unset on deactivation):\r\n\r\n```yaml\r\nspack:\r\n  specs:\r\n    - cmake%gcc\r\n  env_vars:\r\n    set:\r\n      MY_FAVORITE_VARIABLE: \"TRUE\"\r\n```\r\nThe syntax allows the same modifications that are allowed for modules: `set:`, `unset:`, `prepend_path:`, `append_path:`, etc.\r\n\r\nSee [the docs](https:\/\/spack.readthedocs.io\/en\/latest\/env_vars_yaml.html) or #47587 for more.\r\n\r\n### Better include functionality\r\n\r\nSpack allows you to include local or remote configuration files through `include.yaml`, and includes can be optional (i.e. include them only if they exist) or conditional (only include them under certain conditions:\r\n\r\n```yaml\r\nspack:\r\n  include:\r\n  - \/path\/to\/a\/required\/config.yaml\r\n  - path: \/path\/to\/$os\/$target\/config\r\n    optional: true\r\n  - path: \/path\/to\/os-specific\/config-dir\r\n    when: os == \"ventura\"\r\n```\r\n\r\nYou can use this in an environment, or in an `include.yaml` in an existing configuration scope. Included configuration files are required *unless* they are explicitly optional or the entry's condition evaluates to `false`. Optional includes are specified with the `optional` clause and conditional ones with the ``when`` clause.\r\n\r\nConditionals use the same syntax as [spec list references](https:\/\/spack.readthedocs.io\/en\/latest\/environments.html#spec-list-references) The [docs on `include.yaml`](https:\/\/spack.readthedocs.io\/en\/latest\/include_yaml.html) have more information. You can also look at #48784.\r\n\r\n\r\n## New commands and options\r\n* `spack repo update` will pull the latest packages (#50868, #50997)\r\n* `spack style --spec-strings` fixes old configuration file and packages (#49485)\r\n* `spack repo migrate`: migrates old repositories to the new layout (#50507)\r\n* `spack ci` no longer has a `--keep-stage` flag (#49467)\r\n* The new `spack config scopes` subcommand will list active configuration scopes (#41455, #50703)\r\n* `spack cd --repo <namespace>` (#50845)\r\n* `spack location --repo <namespace>` (#50845)\r\n* `--force` is now a common argument for all commands that do concretization (#48838)\r\n\r\n## Notable refactors\r\n\r\n* All of Spack is now in one top-level `spack` Python package\r\n  * The `spack_installable` package is gone as it's no longer needed (#50996)\r\n  * The top-level `llnl` package has been moved to `spack.llnl` and will likely be refactored more later (#50989)\r\n  * Vendored dependencies that were previously in `_vendoring` are now in `spack.vendor` (#51005)\r\n* Increased determinism when generating inputs for the ASP solver, leading to more consistent concretization results (#49471)\r\n* Added fast, stable spec comparison, which also increases determinism of concretizer inputs, and more consistent results (#50625)\r\n* Test deps are now part of the DAG hash, so builds with tests enabled will (correctly) have different hashes from builds without tests enabled (#48936)\r\n* `spack spec` in an environment or on the command line will show unified output with the specs provided as roots (#47574)\r\n* users can now set a timeout in `concretizer.yaml` in case they frequently hit long solves (#47661)\r\n* GoPackage: respect `-j`` concurrency (#48421)\r\n* We are using static analysis to speed up concretization (#48729)\r\n\r\n## Documentation\r\n\r\nWe have overhauled a number of sections of the documentation. \r\n* The basics section of the documentation has been reorganized and updated (#50932)\r\n* The [packaging guide](https:\/\/spack.readthedocs.io\/en\/latest\/packaging_guide_creation.html) has been rewritten and broken into four separate, logically ordered sections (#50884).\r\n* As mentioned above the entire [`spack.package` API](https:\/\/spack.readthedocs.io\/en\/latest\/package_api.html) has been documented and consolidated to one package (#51010)\r\n\r\n## Notable Bugfixes\r\n\r\n* A race that would cause timeouts in certain parallel builds has been fixed. Every build now stages its own patches and cannot fight over them (causing a timeout) with other builds (#50697)\r\n* The `command_line` scope is now *always* the top level. Previously environments could override command line settings (#48255)\r\n* `setup-env.csh` is now hardened to avoid conflicts with user aliases (#49670)\r\n\r\n## Additional deprecations, removals, and breaking changes\r\n      \r\n1. `spec[\"pkg\"]` searches only direct dependencies and transitive link\/run dependencies, ordered by depth. This avoids situations where we pick up unwanted deps of build\/test deps. To reach those, you need to do `spec[\"build_dep\"][\"pkg\"]` explicitly (#49016).\r\n\r\n2. `spec[\"mpi\"]` no longer works to refer to `spec` itself on specs like `openmpi` and `mpich` that could provide `mpi`. We only find `\"mpi\"` if it is provided by some dependency (see #48984).\r\n\r\n3. We have removed some long-standing internal API methods on `spack.spec.Spec` so that we can decouple internal modules in the Spack code. `spack.spec` was including too many different parts of Spack.  \r\n  * `Spec.concretize()` and `Spec.concretized()` have been removed. Use `spack.concretize.concretize_one(spec)` instead (#47971, #47978)\r\n  * `Spec.is_virtual` is now `spack.repo.PATH.is_virtual` (#48986)\r\n  * `Spec.virtual_dependencies` has been removed (#49079)\r\n\r\n4. #50603: Platform config scopes are now opt-in. If you want to use subdirectories like `darwin` or `linux` in your scopes, you'll need to include them explicitly in an `include.yaml` or in your `spack.yaml` file, like so:\r\n\r\n    ```yaml\r\n    include:\r\n      - include: \"${platform}\"\r\n        optional: true\r\n    ```\r\n\r\n5. #48488, #48502: buildcache entries created with Spack 0.19 and older using `spack buildcache create --rel` will no longer be relocated upon install. These old binaries should continue to work, except when they are installed with different `config:install_tree:projections` compared to what they were built with. Similarly, buildcache entries created with Spack 0.15 and older that contain long shebang lines wrapped with sbang will no longer be relocated.\r\n\r\n6. #50462: the `package.py` globals `std_cmake_args`, `std_pip_args`, `std_meson_args` were removed. They were deprecated in Spack 0.23. Use `CMakeBuilder.std_args(pkg)`, `PythonPipBuilder.std_args(pkg)` and `MesonBuilder.std_args(pkg)` instead.\r\n\r\n7. #50605, #50616: If you were using `update_external_dependencies()` in your private packages, note that it is going away in 1.0 to get it out of the package API. It is instead being moved into the concretizer, where it can change in the future, when we have a better way to deal with dependencies of externals, without breaking the package API.  We suspect that nobody was doing this, but it's technically a breaking change.\r\n\r\n8. #48838: Two breaking command changes:\r\n    * `spack install` no longer has a `-f` \/ `--file` option -- write `spack install .\/path\/to\/spec.json` instead.\r\n    * `spack mirror create` no longer has a short `-f` option -- use `spack mirror create --file` instead.\r\n\r\n9. We no longer support the PGI compilers. They have been replaced by `nvhpc` (#47195)\r\n\r\n10. Python 3.8 is deprecated in the Python package, as it is EOL (#46913)\r\n\r\n11. The `target=fe` \/ `target=frontend` and `target=be` \/ `target=backend` targets from Spack's orignal compilation model for cross-compiled Cray and BlueGene systems are now deprecated (#47756)\r\n\r\n## Spack community stats\r\n\r\n* 2,276 commits updated package recipes\r\n* 8,499 total packages, 214 new since v0.23.0\r\n* 372 people contributed to this release\r\n* 363 committers to packages\r\n* 63 committers to core","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/233428930\/reactions","total_count":60,"+1":2,"-1":0,"laugh":0,"hooray":43,"confused":0,"heart":4,"rocket":10,"eyes":1}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/203153999","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/203153999\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/203153999\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v1.0.0-alpha.4","id":203153999,"author":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4MG-JP","tag_name":"v1.0.0-alpha.4","target_commitish":"prereleases\/v1.0.0-alpha.4","name":"v1.0.0-alpha.4 (2025-03-01)","draft":false,"immutable":false,"prerelease":true,"created_at":"2025-03-01T07:49:29Z","updated_at":"2025-05-01T06:32:45Z","published_at":"2025-03-01T07:57:22Z","assets":[],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v1.0.0-alpha.4","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v1.0.0-alpha.4","body":"> [!CAUTION]  \r\n> This alpha release is outdated. Use `develop` to try compilers as dependencies, as there are ongoing bug fixes.\r\n\r\nSee [v1.0.0-alpha.1](https:\/\/github.com\/spack\/spack\/releases\/tag\/v1.0.0-alpha.1) for a general description of the changes in the software model. Since the last alpha release, the following changes have been implemented:\r\n- [x] **Better handling of legacy `compilers.yaml`:** entries in `compilers.yaml` will be \"converted\" to entries in `packages.yaml`,  when Spack tries to initialize automatically the compiler configuration, and only if no other compiler is present.\r\n- [x] **Better handling of outdated database formats:** now Spack will error out when using an outdated database format. The error message shows users the options available: either reindexing and updating the format (and lose compatibility with previous versions of Spack), or point the store to a new location.\r\n- [x] **Externals can have compiler tokens:** compiler tokens, like `%gcc`, are accepted in external specs, even though the externals have no dependencies. The information is used to decide whether to use the external, or not, during concretization.\r\n- [x] **Compilers from store or buildcache:** compilers can now be used directly from the local store (always), or from the buildcache (when reuse is active). This opens the possibility to register a mirror with a compiler and let Spack use said compiler in concretization.\r\n- [x] **Compiler support:** fixed support for using vendor compilers (Cray, NVIDIA, etc.)\r\n- [x] **Default configuration:** set default requirements for macOS. Spack ships with `apple-clang` required by default for C and C++, and `gcc` required by default for Fortran.\r\n\r\nMany package recipes have been fixed, and pipelines are building correctly.","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/203153999\/reactions","total_count":3,"+1":3,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/201799642","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/201799642\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/201799642\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.22.5","id":201799642,"author":{"login":"becker33","id":13971568,"node_id":"MDQ6VXNlcjEzOTcxNTY4","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/13971568?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/becker33","html_url":"https:\/\/github.com\/becker33","followers_url":"https:\/\/api.github.com\/users\/becker33\/followers","following_url":"https:\/\/api.github.com\/users\/becker33\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/becker33\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/becker33\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/becker33\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/becker33\/orgs","repos_url":"https:\/\/api.github.com\/users\/becker33\/repos","events_url":"https:\/\/api.github.com\/users\/becker33\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/becker33\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4MBzfa","tag_name":"v0.22.5","target_commitish":"releases\/v0.22","name":"v0.22.5 (2025-02-21)","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-02-21T20:20:45Z","updated_at":"2025-02-22T09:21:48Z","published_at":"2025-02-21T23:26:23Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/231450467","id":231450467,"node_id":"RA_kwDOAPAIsc4Ny6dj","name":"spack-0.22.5.tar.gz","label":null,"uploader":{"login":"becker33","id":13971568,"node_id":"MDQ6VXNlcjEzOTcxNTY4","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/13971568?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/becker33","html_url":"https:\/\/github.com\/becker33","followers_url":"https:\/\/api.github.com\/users\/becker33\/followers","following_url":"https:\/\/api.github.com\/users\/becker33\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/becker33\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/becker33\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/becker33\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/becker33\/orgs","repos_url":"https:\/\/api.github.com\/users\/becker33\/repos","events_url":"https:\/\/api.github.com\/users\/becker33\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/becker33\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/x-gzip","state":"uploaded","size":11019153,"digest":null,"download_count":256,"created_at":"2025-02-21T23:27:17Z","updated_at":"2025-02-21T23:27:30Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.22.5\/spack-0.22.5.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.22.5","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.22.5","body":"## Bugfixes\r\n- Continue to mark non-roots as implicitly installed on partial env installs (#47183)\r\n\r\n## Notes\r\n- v0.22.4 is skipped to do an error in the release process","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/201799642\/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/201211169","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/201211169\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/201211169\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.23.1","id":201211169,"author":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4L_j0h","tag_name":"v0.23.1","target_commitish":"releases\/v0.23","name":"v0.23.1 (2025-02-19)","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-02-19T15:04:31Z","updated_at":"2025-02-19T15:11:54Z","published_at":"2025-02-19T15:05:59Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/230660498","id":230660498,"node_id":"RA_kwDOAPAIsc4Nv5mS","name":"spack-0.23.1.tar.gz","label":null,"uploader":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/gzip","state":"uploaded","size":11848200,"digest":null,"download_count":1452,"created_at":"2025-02-19T15:06:13Z","updated_at":"2025-02-19T15:06:17Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.23.1\/spack-0.23.1.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.23.1","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.23.1","body":"## Bugfixes\r\n- Fix a correctness issue of `ArchSpec.intersects` (#48741)\r\n- Make `extra_attributes` order independent in Spec hashing (#48615, #48854)\r\n- Fix issue where system proxy settings were not respected in OCI build caches (#48783)\r\n- Fix an issue where the `--test` concretizer flag was not forwarded correctly (#48417)\r\n- Fix an issue where `codesign` and `install_name_tool` would not preserve hardlinks on Darwin (#47808)\r\n- Fix an issue on Darwin where codesign would run on unmodified binaries (#48568)\r\n- Patch configure scripts generated with libtool < 2.5.4, to avoid redundant flags when creating shared libraries on Darwin (#48671)\r\n- Fix issue related to mirror URL paths on Windows (#47898)\r\n- Ensure proper UTF-8 encoding\/decoding in logging (#48005)\r\n- Fix issues related to `filter_file` (#48038, #48108)\r\n- Fix an issue related to creating bootstrap source mirrors (#48235)\r\n- Fix an issue where command line config arguments were not always top level (#48255)\r\n- Fix an incorrect typehint of `concretized()` (#48504)\r\n- Improve mention of next Spack version in warning (#47887)\r\n- Tests: fix forward compatibility with Python 3.13 (#48209)\r\n- Docs: encourage use of `--oci-username-variable` and `--oci-password-variable` (#48189)\r\n- Docs: ensure Getting Started has bootstrap list output in correct place (#48281)\r\n- CI: allow GitHub actions to run on forks of Spack with different project name (#48041)\r\n- CI: make unit tests work on Ubuntu 24.04 (#48151)\r\n- CI: re-enable cray pipelines (#47697)\r\n\r\n## Package updates\r\n- `qt-base`: fix rpath for dependents (#47424)\r\n- `gdk-pixbuf`: fix outdated URL (#47825)\r\n","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/201211169\/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/194387734","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/194387734\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/194387734\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v1.0.0-alpha.3","id":194387734,"author":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4Llh8W","tag_name":"v1.0.0-alpha.3","target_commitish":"prereleases\/v1.0.0-alpha.3","name":"v1.0.0-alpha.3 (2025-01-13)","draft":false,"immutable":false,"prerelease":true,"created_at":"2025-01-13T09:51:12Z","updated_at":"2025-05-01T06:33:10Z","published_at":"2025-01-13T10:11:32Z","assets":[],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v1.0.0-alpha.3","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v1.0.0-alpha.3","body":"> [!CAUTION]  \r\n> This alpha release is outdated. Use `develop` to try compilers as dependencies, as there are ongoing bug fixes.\r\n\r\nSee [v1.0.0-alpha.1](https:\/\/github.com\/spack\/spack\/releases\/tag\/v1.0.0-alpha.1) for a general description of the changes in the software model. Since the last alpha release, the following changes have been implemented:\r\n- [x] Fixed support for compilers other than GCC, LLVM, and Intel\r\n- [x] Fixed support for reading Cray manifest file. Now compilers from Cray manifest are added as externals in the `packages.yaml` file\r\n- [x] Turned the compiler wrapper into its own package. This means the `compiler-wrapper` is now part of the DAG, and any change to the wrapper script is reflected in the DAG hash.\r\n\r\nMany package recipes have also been fixed, with respect to:\r\n* how they use compilers\r\n* how they use language dependencies\r\n\r\nWe are continuing work towards having :heavy_check_mark: pipelines","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/194387734\/reactions","total_count":6,"+1":6,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/189664293","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/189664293\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/189664293\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v1.0.0-alpha.2","id":189664293,"author":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4LTgwl","tag_name":"v1.0.0-alpha.2","target_commitish":"prereleases\/v1.0.0-alpha.2","name":"v1.0.0-alpha.2 (2024-12-09)","draft":false,"immutable":false,"prerelease":true,"created_at":"2024-12-08T11:18:35Z","updated_at":"2025-05-01T06:33:29Z","published_at":"2024-12-09T08:53:38Z","assets":[],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v1.0.0-alpha.2","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v1.0.0-alpha.2","body":"> [!CAUTION]  \r\n> This alpha release is outdated. Use `develop` to try compilers as dependencies, as there are ongoing bug fixes.\r\n\r\nSee [v1.0.0-alpha.1](https:\/\/github.com\/spack\/spack\/releases\/tag\/v1.0.0-alpha.1) for a general description of the changes in the software model. Since the last alpha release, the following bugs have been fixed:\r\n- [x] Compiler wrappers are added last to PATH. This fixes a bug where the path to real compiler could be prepended to the path of the wrappers in PATH, mostly relevant for RH linux systems.\r\n- [x] Add a rule to the solver to force compilers being externals. This prevents concretizing against yet to be built compilers, since we don't have the machinery to make them work at install time, yet.\r\n- [x] Fixed support for OneAPI compilers\r\n\r\nMany package recipes have also been fixed, with respect to:\r\n* how they use compilers\r\n* how they use language dependencies\r\n\r\nWe are working towards having :heavy_check_mark: pipelines"},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/186346998","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/186346998\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/186346998\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v1.0.0-alpha.1","id":186346998,"author":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4LG232","tag_name":"v1.0.0-alpha.1","target_commitish":"prereleases\/v1.0.0-alpha.1","name":"v1.0.0-alpha.1 (2024-11-21)","draft":false,"immutable":false,"prerelease":true,"created_at":"2024-11-21T07:37:23Z","updated_at":"2025-05-01T06:33:33Z","published_at":"2024-11-21T17:07:40Z","assets":[],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v1.0.0-alpha.1","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v1.0.0-alpha.1","body":"> [!CAUTION]  \r\n> This alpha release is outdated. Use `develop` to try compilers as dependencies, as there are ongoing bug fixes.\r\n\r\n> [!WARNING]\r\n> \r\n> This is an alpha version, meaning it is in the early stages of development and may contain bugs. It is provided for testing purposes, and is not suitable for being used in production.\r\n> \r\n\r\nSpack v1.0.0-alpha.1 is the very first pre-release for the v1.0.0 release, expected in June 2025. It is intended to allow testing of https:\/\/github.com\/spack\/spack\/pull\/45189 on existing workflows, before it is merged to develop.\r\n\r\n# Highlights\r\n\r\nIn this pre-release, compilers stop being a *node attribute*, and become a *build-only* dependency. \r\n\r\nPackages may declare a dependency on the `c`, `cxx`, or `fortran` languages, which are now treated as virtuals, and compilers would be *providers* for one or more of those languages. Compilers can also inject runtime dependency, on the node being compiled. An example graph for `zlib-ng` is the following:\r\n<p align=\"center\">\r\n<img src=https:\/\/github.com\/user-attachments\/assets\/272ec6c3-0cd1-4af2-a9b5-c8eb5d79c704 alt=\"zlib-ng DAG\" width=\"50%\" height=\"auto\">\r\n<\/p>\r\n\r\n\r\nHere `gcc` is used for both the `c`, and `cxx` languages, as shown by the `virtuals=` annotations on the edges. `gcc` also injects `gcc-runtime` on the nodes being compiled. This change in the model has implications, among other things, on the semantic of the `%` sigil, as discussed in https:\/\/github.com\/spack\/spack\/issues\/44379, and implies a version bump in the Specfile, Database and Lockfile format.\r\n\r\n### Breaking changes\r\n\r\nThe following changes are by design, and supposed to stay in v1.0.0\r\n\r\n<details>\r\n<summary><b>Custom, non-numeric version of compilers are not supported<\/b><\/summary>\r\n\r\n<p>\r\n\r\nCurrently, users can assign to compilers any custom version they want, and Spack will try to recover the \"real version\" whenever the custom version fails some operation. To deduce the \"real version\" Spack must run the compiler, which can add needless overhead to common operations.\r\n\r\nSince any information that a version like `gcc@foo` might give to the user, can also be suffixed while retaining the correct numeric version, e.g. `gcc@10.5.0-foo`, Spack will **not try** anymore to deduce real versions for compilers.\r\n\r\nSaid otherwise, users should have no expectation that `gcc@foo` behaves as `gcc@X.Y.Z` internally.\r\n<\/p>\r\n<\/details>\r\n\r\n<details>\r\n<summary> <b>The <code>%<\/code> sigil in the spec syntax means \"direct build dependency\"<\/b> <\/summary>\r\n\r\n<p>\r\n\r\nThe `%` sigil in the spec syntax means *\"direct build dependency\"*, and is not a node attribute anymore. This means that:\r\n```python\r\nnode.satisfies(\"%gcc\")\r\n``` \r\nis true only if `gcc` is a direct build dependency of the node. *Nodes without a compiler dependency are allowed.*\r\n\r\n<\/p>\r\n<\/details>\r\n\r\n<details>\r\n<summary><b>The syntax <code>parent[\"child\"]<\/code>, and <code>node in spec<\/code>, will just inspect the link\/run subDAG and direct build dependencies <\/b><\/summary>\r\n\r\n<p>\r\n\r\nThe subscript notation for `Spec`:\r\n```python\r\nparent[\"child\"]\r\n```\r\nwill look for a `child` node only in the link\/run transitive graph of `parent`, and in its direct build dependencies. This means that to reach a transitive build dependency, we must first pass through the node it is associated with. \r\n\r\nAssuming `parent` does not depend on `cmake`, but depends on a `CMakePackage` e.g. `hdf5`, then we have the following situation:\r\n```python\r\n# This one raises an Exception, since \"parent\" does not depend on cmake\r\nparent[\"cmake\"]\r\n# This one is ok\r\ncmake = parent[\"hdf5\"][\"cmake\"]\r\n```\r\n\r\n<\/p>\r\n<\/details>\r\n\r\n### Deprecations\r\n\r\nThe following configuration options have been deprecated:\r\n\r\n<details>\r\n<summary><b>The entire <code>compilers<\/code> section in the configuration has been deprecated<\/b><\/summary>\r\n<p>\r\nIn v1.0.0 compilers will be regular packages and, as such, they may be defined as externals in the `packages` section. For the time being, if Spack finds any `compilers` configuration, it will try to convert it automatically to a set of external packages, and advise users to update their configuration.\r\n<\/p>\r\n<\/details>\r\n\r\n<details>\r\n<summary><b> The <code>packages:compiler<\/code> soft-preference has been deprecated<\/b><\/summary>\r\n<p>\r\nThis configuration option has been deprecated, and is a no-op in the pre-release. It will be removed in future releases.\r\n<\/p>\r\n<\/details>\r\n\r\n### Other notable changes\r\n\r\n- The tokens `{compiler}`, `{compiler.version}`, and `{compiler.name}` in `Spec.format` expand to `\"none\"` if a Spec does not depend on C, C++, or Fortran.\r\n- The default install tree layout is now `\"{architecture.platform}\/{architecture.target}\/{name}-{version}-{hash}\"`\r\n\r\n### Known limitations and bugs\r\n\r\n\r\nBelow we list limitations that are known to be in v1.0.0-alpha.1, and we intend to fix before v1.0.0\r\n\r\n<details>\r\n<summary><b>Spec matrices enforcing a compiler<\/b><\/summary>\r\n\r\n<p>\r\n\r\nCurrently we can have matrices of the form:\r\n```yaml\r\nmatrix:\r\n- [x, y, z]\r\n- [%gcc, %clang]\r\n```\r\nto get the cross-product of specs and compilers. We can disregard the nature of the packages in the first row, since the compiler is a node attribute required on each node.\r\n\r\nIn this pre-release, instead, we require a spec to depend on `c`, `cxx`, or `fortran` for the `%` to have any meaning. If any of the specs in the first row doesn't depend on these languages, there will be a concretization error.\r\n\r\nThis might be inconvenient when writing matrices, so we are thinking of allowing some sort of relaxation to the strict rule above, for instance:\r\n```yaml\r\nmatrix:\r\n- [x, y, z]\r\n- prefer: [%gcc, %clang]\r\n```\r\nso to expand a dimension only if appropriate. Details of this extension are yet to be decided.\r\n\r\n<\/p>\r\n<\/details>\r\n\r\n<details>\r\n<summary><b>Externals differing by just the compiler attribute<\/b><\/summary>\r\n\r\n<p>\r\n\r\nThe problem is very similar to that of spec matrices. Externals are nodes where dependencies are trimmed, and that _is not planned to change_ in this pre-release. Currently, on `develop` it is legit to write:\r\n```yaml\r\npackages:\r\n  hdf5:\r\n    externals:\r\n    - spec: hdf5@1.12 %gcc\r\n      prefix: \/prefix\/gcc\r\n    - spec: hdf5@1.12 %clang\r\n      prefix: \/prefix\/clang\r\n```\r\nand Spack will account for the compiler node attribute when computing the optimal spec.\r\n\r\nSince in this pre-release we model compiler as dependencies, and since externals don't have dependencies by definition, we cannot use the `%` in the external spec, and the specs above will become ambiguous.\r\n\r\nWe are currently seeking a solution to this issue that is as backward compatible as possible.\r\n\r\n<\/p>\r\n<\/details>\r\n\r\n<details>\r\n\t<summary><b>Compilers can only be externals<\/b><\/summary>\r\n\r\nAt the moment, only externals are considered for compilers. We plan to solve this issue in the near future, and consider also:\r\n\r\n- specs in the store\r\n- specs in the buildcache\r\n\r\nas candidates.\r\n\r\n<\/details>\r\n\r\n<details>\r\n\t<summary><b>Compilers cannot be bootstrapped directly<\/b><\/summary>\r\n\r\n<p>\r\nIn this pre-release we can build a new compiler using an existing external compiler, for instance:\r\n\t\r\n```\r\n$ spack install gcc@14 %gcc@10.5.0\r\n```\r\n\r\nwhere `gcc@10.5.0` is external, and `gcc@14` is to be built.\r\n\r\nWhat we can't do at the moment is use a yet to be built compiler, and expect it will be bootstrapped, e.g. :\r\n\r\n```\r\nspack install %gcc@14\r\n```\r\n\r\n<\/p>\r\n<\/details>\r\n\r\n<details>\r\n<summary><b>Importing Cray JSON files is temporarily broken<\/b><\/summary>\r\n\r\nNot a lot more to say about that :slightly_smiling_face: \r\n<\/details\r\n","discussion_url":"https:\/\/github.com\/spack\/spack\/discussions\/47730","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/186346998\/reactions","total_count":4,"+1":4,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/186117005","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/186117005\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/186117005\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.22.3","id":186117005,"author":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4LF-uN","tag_name":"v0.22.3","target_commitish":"releases\/v0.22","name":"v0.22.3 (2024-11-18)","draft":false,"immutable":false,"prerelease":false,"created_at":"2024-11-18T11:47:11Z","updated_at":"2024-11-19T07:23:40Z","published_at":"2024-11-19T07:22:41Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/207513370","id":207513370,"node_id":"RA_kwDOAPAIsc4MXmca","name":"spack-0.22.3.tar.gz","label":null,"uploader":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/gzip","state":"uploaded","size":11019144,"digest":null,"download_count":326,"created_at":"2024-11-19T07:22:59Z","updated_at":"2024-11-19T07:23:06Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.22.3\/spack-0.22.3.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.22.3","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.22.3","body":"## Bugfixes\r\n- Forward compatibility with Python 3.13 (#46775, #46983, #47035, #47175)\r\n- `archspec` was updated to v0.2.5 (#46503, #46958)\r\n- Fix path to Spack in `spack env depfile` makefile (#46966)\r\n- Fix `glibc` detection in Chinese locales (#47434)\r\n- Fix pickle round-trip of specs propagating variants (#47351)\r\n- Fix a bug where concurrent spack install commands would not always update explicits correctly (#47358)\r\n- Fix a bug where autopush would run before all post install hooks modifying the install prefix had run (#47329)\r\n- Fix `spack find -u` (#47102)\r\n- Fix a bug where sometimes the wrong Python interpreter was used for build dependencies such as `py-setuptools` (#46980)\r\n- Fix default config errors found by `spack audit externals` (#47308)\r\n- Fix duplicate printing of external roots in installer (#44917)\r\n- Fix modules schema in `compilers.yaml` (#47197)\r\n- Reduce the size of generated YAML for Gitlab CI (#44995)\r\n- Handle missing metadata file gracefully in bootstrap (#47278)\r\n- Show underlying errors on fetch failure (#45714)\r\n- Recognize `.` and `..` as paths instead of names in buildcache commands (#47105)\r\n- Documentation and style (#46991, #47107, #47110, #47111, #47346, #47307, #47309, #47328, #47160, #47402, #47557, #46709, #47080)\r\n- Tests and CI fixes (#47165, #46711)\r\n\r\n## Package updates\r\n- ffmpeg: fix hash of patch (#45574)"},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/185791917","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/185791917\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/185791917\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.23.0","id":185791917,"author":{"login":"tgamblin","id":299842,"node_id":"MDQ6VXNlcjI5OTg0Mg==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/299842?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/tgamblin","html_url":"https:\/\/github.com\/tgamblin","followers_url":"https:\/\/api.github.com\/users\/tgamblin\/followers","following_url":"https:\/\/api.github.com\/users\/tgamblin\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/tgamblin\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/tgamblin\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/tgamblin\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/tgamblin\/orgs","repos_url":"https:\/\/api.github.com\/users\/tgamblin\/repos","events_url":"https:\/\/api.github.com\/users\/tgamblin\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/tgamblin\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4LEvWt","tag_name":"v0.23.0","target_commitish":"releases\/v0.23","name":"v0.23.0 (2024-11-13)","draft":false,"immutable":false,"prerelease":false,"created_at":"2024-11-17T05:59:27Z","updated_at":"2024-11-17T15:50:33Z","published_at":"2024-11-17T07:02:07Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/207080385","id":207080385,"node_id":"RA_kwDOAPAIsc4MV8vB","name":"spack-0.23.0.tar.gz","label":null,"uploader":{"login":"tgamblin","id":299842,"node_id":"MDQ6VXNlcjI5OTg0Mg==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/299842?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/tgamblin","html_url":"https:\/\/github.com\/tgamblin","followers_url":"https:\/\/api.github.com\/users\/tgamblin\/followers","following_url":"https:\/\/api.github.com\/users\/tgamblin\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/tgamblin\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/tgamblin\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/tgamblin\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/tgamblin\/orgs","repos_url":"https:\/\/api.github.com\/users\/tgamblin\/repos","events_url":"https:\/\/api.github.com\/users\/tgamblin\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/tgamblin\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/x-gzip","state":"uploaded","size":11847230,"digest":null,"download_count":1942,"created_at":"2024-11-17T07:02:49Z","updated_at":"2024-11-17T07:02:51Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.23.0\/spack-0.23.0.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.23.0","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.23.0","body":"`v0.23.0` is a major feature release.\r\n\r\nWe are planning to make this the last major release before Spack `v1.0`\r\nin June 2025. Alongside `v0.23`, we will be making pre-releases (alpha,\r\nbeta, etc.)  of `v1.0`, and we encourage users to try them and send us\r\nfeedback, either on GitHub or on Slack. You can track the road to\r\n`v1.0` here:\r\n\r\n  * https:\/\/github.com\/spack\/spack\/releases\r\n  * https:\/\/github.com\/spack\/spack\/discussions\/30634\r\n\r\n## Features in this Release\r\n\r\n1. **Language virtuals**\r\n\r\n   Your packages can now explicitly depend on the languages they require.\r\n   Historically, Spack has considered C, C++, and Fortran compiler\r\n   dependencies to be implicit. In `v0.23`, you should ensure that\r\n   new packages add relevant C, C++, and Fortran dependencies like this:\r\n\r\n   ```python\r\n   depends_on(\"c\", type=\"build\")\r\n   depends_on(\"cxx\", type=\"build\")\r\n   depends_on(\"fortran\", type=\"build\")\r\n   ```\r\n\r\n   We encourage you to add these annotations to your packages now, to prepare\r\n   for Spack `v1.0.0`. In `v1.0.0`, these annotations will be necessary for\r\n   your package to use C, C++, and Fortran compilers. Note that you should\r\n   *not* add language dependencies to packages that don't need them, e.g.,\r\n   pure python packages.\r\n\r\n   We have already auto-generated these dependencies for packages in the\r\n   `builtin` repository (see #45217), based on the types of source files\r\n   present in each package's source code. We *may* have added too many or too\r\n   few language dependencies, so please submit pull requests to correct\r\n   packages if you find that the language dependencies are incorrect.\r\n\r\n   Note that we have also backported support for these dependencies to\r\n   `v0.21.3` and `v0.22.2`, to make all of them forward-compatible with\r\n   `v0.23`. This should allow you to move easily between older and newer Spack\r\n   releases without breaking your packages.\r\n\r\n2. **Spec splicing**\r\n\r\n   We are working to make binary installation more seamless in Spack. `v0.23`\r\n   introduces \"splicing\", which allows users to deploy binaries using local,\r\n   optimized versions of a binary interface, even if they were not built with\r\n   that interface. For example, this would allow you to build binaries in the\r\n   cloud using `mpich` and install them on a system using a local, optimized\r\n   version of `mvapich2` *without rebuilding*. Spack preserves full provenance\r\n   for the installed packages and knows that they were built one way but\r\n   deployed another.\r\n\r\n   Our intent is to leverage this across many key HPC binary packages,\r\n   e.g. MPI, CUDA, ROCm, and libfabric.\r\n\r\n   Fundamentally, splicing allows Spack to redeploy an existing spec with\r\n   different dependencies than how it was built. There are two interfaces to\r\n   splicing.\r\n\r\n   a. Explicit Splicing\r\n\r\n      #39136 introduced the explicit splicing interface. In the\r\n      concretizer config, you can specify a target spec and a replacement\r\n      by hash.\r\n\r\n      ```yaml\r\n      concretizer:\r\n        splice:\r\n          explicit:\r\n          - target: mpi\r\n            replacement: mpich\/abcdef\r\n      ```\r\n\r\n      Here, every installation that would normally use the target spec will\r\n      instead use its replacement. Above, any spec using *any* `mpi` will be\r\n      spliced to depend on the specific `mpich` installation requested. This\r\n      *can* go wrong if you try to replace something built with, e.g.,\r\n      `openmpi` with `mpich`, and it is on the user to ensure ABI\r\n      compatibility between target and replacement specs. This currently\r\n      requires some expertise to use, but it will allow users to reuse the\r\n      binaries they create across more machines and environments.\r\n\r\n   b. Automatic Splicing (experimental)\r\n\r\n      #46729 introduced automatic splicing. In the concretizer config, enable\r\n      automatic splicing:\r\n\r\n      ```yaml\r\n      concretizer:\r\n        splice:\r\n          automatic: true\r\n      ```\r\n\r\n      or run:\r\n\r\n      ```console\r\n      spack config add concretizer:splice:automatic:true\r\n      ```\r\n\r\n      The concretizer will select splices for ABI compatibility to maximize\r\n      package reuse. Packages can denote ABI compatibility using the\r\n      `can_splice` directive. No packages in Spack yet use this directive, so\r\n      if you want to use this feature you will need to add `can_splice`\r\n      annotations to your packages. We are working on ways to add more ABI\r\n      compatibility information to the Spack package repository, and this\r\n      directive may change in the future.\r\n\r\n   See the documentation for more details:\r\n   * https:\/\/spack.readthedocs.io\/en\/latest\/build_settings.html#splicing\r\n   * https:\/\/spack.readthedocs.io\/en\/latest\/packaging_guide.html#specifying-abi-compatibility\r\n\r\n3. Broader variant propagation\r\n\r\n   Since #42931, you can specify propagated variants like `hdf5\r\n   build_type==RelWithDebInfo` or `trilinos ++openmp` to propagate a variant\r\n   to all dependencies for which it is relevant. This is valid *even* if the\r\n   variant does not exist on the package or its dependencies.\r\n\r\n   See https:\/\/spack.readthedocs.io\/en\/latest\/basic_usage.html#variants.\r\n\r\n4. Query specs by namespace\r\n\r\n   #45416 allows a package's namespace (indicating the repository it came from)\r\n   to be treated like a variant. You can request packages from particular repos\r\n   like this:\r\n\r\n   ```console\r\n   spack find zlib namespace=builtin\r\n   spack find zlib namespace=myrepo\r\n   ```\r\n\r\n   Previously, the spec syntax only allowed namespaces to be prefixes of spec\r\n   names, e.g. `builtin.zlib`. The previous syntax still works.\r\n\r\n5. `spack spec` respects environment settings and `unify:true`\r\n\r\n   `spack spec` did not previously respect environment lockfiles or\r\n   unification settings, which made it difficult to see exactly how a spec\r\n   would concretize within an environment. Now it does, so the output you get\r\n   with `spack spec` will be *the same* as what your environment will\r\n   concretize to when you run `spack concretize`. Similarly, if you provide\r\n   multiple specs on the command line with `spack spec`, it will concretize\r\n   them together if `unify:true` is set.\r\n\r\n   See #47556 and #44843.\r\n\r\n6. Less noisy `spack spec` output\r\n\r\n   `spack spec` previously showed output like this:\r\n\r\n   ```console\r\n    > spack spec \/v5fn6xo\r\n    Input spec\r\n    --------------------------------\r\n     -   \/v5fn6xo\r\n\r\n    Concretized\r\n    --------------------------------\r\n    [+]  openssl@3.3.1%apple-clang@16.0.0~docs+shared arch=darwin-sequoia-m1\r\n    ...\r\n   ```\r\n\r\n   But the input spec is redundant, and we know we run `spack spec` to concretize\r\n   the input spec. `spack spec` now *only* shows the concretized spec. See #47574.\r\n\r\n7. Better output for `spack find -c`\r\n\r\n   In an environment, `spack find -c` lets you search the concretized, but not\r\n   yet installed, specs, just as you would the installed ones. As with `spack\r\n   spec`, this should make it easier for you to see what *will* be built\r\n   before building and installing it. See #44713.\r\n\r\n8. `spack -C <env>`: use an environment's configuration without activation\r\n\r\n   Spack environments allow you to associate:\r\n   1. a set of (possibly concretized) specs, and\r\n   2. configuration\r\n\r\n   When you activate an environment, you're using both of these. Previously, we\r\n   supported:\r\n   * `spack -e <env>` to run spack in the context of a specific environment, and\r\n   * `spack -C <directory>` to run spack using a directory with configuration files.\r\n\r\n   You can now also pass an environment to `spack -C` to use *only* the environment's\r\n   configuration, but not the specs or lockfile. See #45046.\r\n\r\n## New commands, options, and directives\r\n\r\n* The new `spack env track` command (#41897) takes a non-managed Spack\r\n  environment and adds a symlink to Spack's `$environments_root` directory, so\r\n  that it will be included for reference counting for commands like `spack\r\n  uninstall` and `spack gc`. If you use free-standing directory environments,\r\n  this is useful for preventing Spack from removing things required by your\r\n  environments. You can undo this tracking with the `spack env untrack`\r\n  command.\r\n\r\n* Add `-t` short option for `spack --backtrace` (#47227)\r\n\r\n  `spack -d \/ --debug` enables backtraces on error, but it can be very\r\n  verbose, and sometimes you just want the backtrace. `spack -t \/ --backtrace`\r\n  provides that option.\r\n\r\n* `gc`: restrict to specific specs (#46790)\r\n\r\n  If you only want to garbage-collect specific packages, you can now provide\r\n  them on the command line. This gives users finer-grained control over what\r\n  is uninstalled.\r\n\r\n* oci buildcaches now support `--only=package`. You can now push *just* a\r\n  package and not its dependencies to an OCI registry. This allows dependents\r\n  of non-redistributable specs to be stored in OCI registries without an\r\n  error. See #45775.\r\n\r\n## Notable refactors\r\n* Variants are now fully conditional\r\n\r\n  The `variants` dictionary on packages was previously keyed by variant name,\r\n  and allowed only one definition of any given variant. Spack is now smart\r\n  enough to understand that variants may have different values and defaults\r\n  for different versions. For example, `warpx` prior to `23.06` only supported\r\n  builds for one dimensionality, and newer `warpx` versions could be built\r\n  with support for many different dimensions:\r\n\r\n  ```python\r\n  variant(\r\n      \"dims\",\r\n      default=\"3\",\r\n      values=(\"1\", \"2\", \"3\", \"rz\"),\r\n      multi=False,\r\n      description=\"Number of spatial dimensions\",\r\n      when=\"@:23.05\",\r\n  )\r\n  variant(\r\n      \"dims\",\r\n      default=\"1,2,rz,3\",\r\n      values=(\"1\", \"2\", \"3\", \"rz\"),\r\n      multi=True,\r\n      description=\"Number of spatial dimensions\",\r\n      when=\"@23.06:\",\r\n  )\r\n  ```\r\n\r\n  Previously, the default for the old version of `warpx` was not respected and\r\n  had to be specified manually. Now, Spack will select the right variant\r\n  definition for each version at concretization time. This allows variants to\r\n  evolve more smoothly over time. See #44425 for details.\r\n\r\n## Highlighted bugfixes\r\n\r\n1. Externals no longer override the preferred provider (#45025).\r\n\r\n   External definitions could interfere with package preferences. Now, if\r\n   `openmpi` is the preferred `mpi`, and an external `mpich` is defined, a new\r\n   `openmpi` *will* be built if building it is possible. Previously we would\r\n   prefer `mpich` despite the preference.\r\n\r\n2. Composable `cflags` (#41049).\r\n\r\n   This release fixes a longstanding bug that concretization would fail if\r\n   there were different `cflags` specified in `packages.yaml`,\r\n   `compilers.yaml`, or on `the` CLI. Flags and their ordering are now tracked\r\n   in the concretizer and flags from multiple sources will be merged.\r\n\r\n3. Fix concretizer Unification for included environments (#45139).\r\n\r\n## Deprecations, removals, and syntax changes\r\n\r\n1. The old concretizer has been removed from Spack, along with the\r\n   `config:concretizer` config option. Spack will emit a warning if the option\r\n   is present in user configuration, since it now has no effect. Spack now\r\n   uses a simpler bootstrapping mechanism, where a JSON prototype is tweaked\r\n   slightly to get an initial concrete spec to download. See #45215.\r\n\r\n2. Best-effort expansion of spec matrices has been removed. This feature did\r\n   not work with the \"new\" ASP-based concretizer, and did not work with\r\n   `unify: True` or `unify: when_possible`. Use the\r\n   [exclude key](https:\/\/spack.readthedocs.io\/en\/latest\/environments.html#spec-matrices)\r\n   for the environment to exclude invalid components, or use multiple spec\r\n   matrices to combine the list of specs for which the constraint is valid and\r\n   the list of specs for which it is not. See #40792.\r\n\r\n3. The old Cray `platform` (based on Cray PE modules) has been removed, and\r\n   `platform=cray` is no longer supported. Since `v0.19`, Spack has handled\r\n   Cray machines like Linux clusters with extra packages, and we have\r\n   encouraged using this option to support Cray. The new approach allows us to\r\n   correctly handle Cray machines with non-SLES operating systems, and it is\r\n   much more reliable than making assumptions about Cray modules. See the\r\n   `v0.19` release notes and #43796 for more details.\r\n\r\n4. The `config:install_missing_compilers` config option has been deprecated,\r\n   and it is a no-op when set in `v0.23`. Our new compiler dependency model\r\n   will replace it with a much more reliable and robust mechanism in `v1.0`.\r\n   See #46237.\r\n\r\n5. Config options that deprecated in `v0.21` have been removed in `v0.23`. You\r\n   can now only specify preferences for `compilers`, `targets`, and\r\n   `providers` globally via the `packages:all:` section. Similarly, you can\r\n   only specify `versions:` locally for a specific package. See #44061 and\r\n   #31261 for details.\r\n\r\n6. Spack's old test interface has been removed (#45752), having been\r\n   deprecated in `v0.22.0` (#34236). All `builtin` packages have been updated\r\n   to use the new interface. See the [stand-alone test documentation](\r\n   https:\/\/spack.readthedocs.io\/en\/latest\/packaging_guide.html#stand-alone-tests)\r\n\r\n7. The `spack versions --safe-only` option, deprecated since `v0.21.0`, has\r\n   been removed. See #45765.\r\n\r\n* The `--dependencies` and `--optimize` arguments to `spack ci` have been\r\n  deprecated. See #45005.\r\n\r\n## Binary caches\r\n1. Public binary caches now include an ML stack for Linux\/aarch64 (#39666)We\r\n   now build an ML stack for Linux\/aarch64 for all pull requests and on\r\n   develop. The ML stack includes both CPU-only and CUDA builds for Horovod,\r\n   Hugging Face, JAX, Keras, PyTorch,scikit-learn, TensorBoard, and\r\n   TensorFlow, and related packages. The CPU-only stack also includes XGBoost.\r\n   See https:\/\/cache.spack.io\/tag\/develop\/?stack=ml-linux-aarch64-cuda.\r\n\r\n2. There is also now an stack of developer tools for macOS (#46910), which is\r\n   analogous to the Linux devtools stack. You can use this to avoid building\r\n   many common build dependencies. See\r\n   https:\/\/cache.spack.io\/tag\/develop\/?stack=developer-tools-darwin.\r\n\r\n## Architecture support\r\n* archspec has been updated to `v0.2.5`, with support for `zen5`\r\n* Spack's CUDA package now supports the Grace Hopper `9.0a` compute capability (#45540)\r\n\r\n## Windows\r\n* Windows bootstrapping: `file` and `gpg` (#41810)\r\n* `scripts` directory added to PATH on Windows for python extensions (#45427)\r\n* Fix `spack load --list` and `spack unload` on Windows (#35720)\r\n\r\n## Other notable changes\r\n* Bugfix: `spack find -x` in environments (#46798)\r\n* Spec splices are now robust to duplicate nodes with the same name in a spec (#46382)\r\n* Cache per-compiler libc calculations for performance (#47213)\r\n* Fixed a bug in external detection for openmpi (#47541)\r\n* Mirror configuration allows username\/password as environment variables (#46549)\r\n* Default library search caps maximum depth (#41945)\r\n* Unify interface for `spack spec` and `spack solve` commands (#47182)\r\n* Spack no longer RPATHs directories in the default library search path (#44686)\r\n* Improved performance of Spack database (#46554)\r\n* Enable package reuse for packages with versions from git refs (#43859)\r\n* Improved handling for `uuid` virtual on macos (#43002)\r\n* Improved tracking of task queueing\/requeueing in the installer (#46293)\r\n\r\n## Spack community stats\r\n\r\n* Over 2,000 pull requests updated package recipes\r\n* 8,307 total packages, 329 new since `v0.22.0`\r\n    * 140 new Python packages\r\n    * 14 new R packages\r\n* 373 people contributed to this release\r\n    * 357 committers to packages\r\n    * 60 committers to core","discussion_url":"https:\/\/github.com\/spack\/spack\/discussions\/47648","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/185791917\/reactions","total_count":5,"+1":0,"-1":0,"laugh":0,"hooray":5,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/178177858","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/178177858\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/178177858\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.21.3","id":178177858,"author":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4KnsdC","tag_name":"v0.21.3","target_commitish":"releases\/v0.21","name":"v0.21.3 (2024-10-02)","draft":false,"immutable":false,"prerelease":false,"created_at":"2024-10-02T18:05:46Z","updated_at":"2024-10-03T10:45:11Z","published_at":"2024-10-03T10:44:31Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/196624342","id":196624342,"node_id":"RA_kwDOAPAIsc4LuD_W","name":"spack-0.21.3.tar.gz","label":null,"uploader":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/x-gzip","state":"uploaded","size":10623016,"digest":null,"download_count":78,"created_at":"2024-10-03T10:44:53Z","updated_at":"2024-10-03T10:45:11Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.21.3\/spack-0.21.3.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.21.3","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.21.3","body":"## Bugfixes\r\n- Forward compatibility with Spack 0.23 packages with language dependencies (#45205, #45191)\r\n- Forward compatibility with `urllib` from Python 3.12.6+ (#46453, #46483)\r\n- Bump `archspec` to 0.2.5-dev for better aarch64 and Windows support (#42854, #44005,\r\n  #45721, #46445)\r\n- Support macOS Sequoia (#45018, #45127, #43862)\r\n- CI and test maintenance (#42909, #42728, #46711, #41943, #43363)\r\n","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/178177858\/reactions","total_count":2,"+1":0,"-1":0,"laugh":0,"hooray":2,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/176244182","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/176244182\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/176244182\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.22.2","id":176244182,"author":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4KgUXW","tag_name":"v0.22.2","target_commitish":"releases\/v0.22","name":"v0.22.2 (2024-09-21)","draft":false,"immutable":false,"prerelease":false,"created_at":"2024-09-21T10:39:55Z","updated_at":"2024-09-21T18:14:54Z","published_at":"2024-09-21T18:14:02Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/194045838","id":194045838,"node_id":"RA_kwDOAPAIsc4LkOeO","name":"spack-0.22.2.tar.gz","label":null,"uploader":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/x-gzip","state":"uploaded","size":11117111,"digest":null,"download_count":1372,"created_at":"2024-09-21T18:14:44Z","updated_at":"2024-09-21T18:14:54Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.22.2\/spack-0.22.2.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.22.2","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.22.2","body":"## Bugfixes\r\n- Forward compatibility with Spack 0.23 packages with language dependencies (#45205, #45191)\r\n- Forward compatibility with `urllib` from Python 3.12.6+ (#46453, #46483)\r\n- Bump vendored `archspec` for better aarch64 support (#45721, #46445)\r\n- Support macOS Sequoia (#45018, #45127)\r\n- Fix regression in `{variants.X}` and `{variants.X.value}` format strings (#46206)\r\n- Ensure shell escaping of environment variable values in load and activate commands (#42780)\r\n- Fix an issue where `spec[pkg]` considers specs outside the current DAG (#45090)\r\n- Do not halt concretization on unknown variants in externals (#45326)\r\n- Improve validation of `develop` config section (#46485)\r\n- Explicitly disable `ccache` if turned off in config, to avoid cache pollution (#45275)\r\n- Improve backwards compatibility in `include_concrete` (#45766)\r\n- Fix issue where package tags were sometimes repeated (#45160)\r\n- Make `setup-env.sh` \"sourced only\" by dropping execution bits (#45641)\r\n- Make certain source\/binary fetch errors recoverable instead of a hard error (#45683)\r\n- Remove debug statements in package hash computation (#45235)\r\n- Remove redundant clingo warnings (#45269)\r\n- Remove hard-coded layout version (#45645)\r\n- Do not initialize previous store state in `use_store` (#45268)\r\n- Docs improvements (#46475)\r\n\r\n## Package updates\r\n- `chapel` major update (#42197, #44931, #45304)","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/176244182\/reactions","total_count":3,"+1":0,"-1":0,"laugh":0,"hooray":3,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/164116637","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/164116637\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/164116637\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.22.1","id":164116637,"author":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4JyDid","tag_name":"v0.22.1","target_commitish":"releases\/v0.22","name":"v0.22.1 (2024-07-04)","draft":false,"immutable":false,"prerelease":false,"created_at":"2024-07-04T13:14:09Z","updated_at":"2024-07-08T07:11:42Z","published_at":"2024-07-05T08:06:42Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/178299798","id":178299798,"node_id":"RA_kwDOAPAIsc4KoKOW","name":"spack-0.22.1.tar.gz","label":null,"uploader":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/gzip","state":"uploaded","size":11108002,"digest":null,"download_count":672,"created_at":"2024-07-08T07:11:39Z","updated_at":"2024-07-08T07:11:42Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.22.1\/spack-0.22.1.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.22.1","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.22.1","body":"## Bugfixes\r\n- Fix reuse of externals on Linux (#44316)\r\n- Ensure parent gcc-runtime version >= child (#44834, #44870)\r\n- Ensure the latest gcc-runtime is rpath'ed when multiple exist among link deps (#44219)\r\n- Improve version detection of glibc (#44154)\r\n- Improve heuristics for solver (#44893, #44976, #45023)\r\n- Make strong preferences override reuse (#44373)\r\n- Reduce verbosity when C compiler is missing (#44182)\r\n- Make missing ccache executable an error when required (#44740)\r\n- Make every environment view containing `python` a `venv` (#44382)\r\n- Fix external detection for compilers with os but no target (#44156)\r\n- Fix version optimization for roots (#44272)\r\n- Handle common implementations of pagination of tags in OCI build caches (#43136)\r\n- Apply fetched patches to develop specs (#44950)\r\n- Avoid Windows wrappers for filesystem utilities on non-Windows (#44126)\r\n- Fix issue with long filenames in build caches on Windows (#43851)\r\n- Fix formatting issue in `spack audit` (#45045)\r\n- CI fixes (#44582, #43965, #43967, #44279, #44213)\r\n\r\n## Package updates\r\n- Require libiconv for iconv (#44335, #45026).\r\n  Notice that glibc\/musl also provide iconv, but are not guaranteed to be\r\n  complete. Set `packages:iconv:require:[glibc]` to restore the old behavior.\r\n- protobuf: fix 3.4:3.21 patch checksum (#44443)\r\n- protobuf: update hash for patch needed when=\"@3.4:3.21\" (#44210)\r\n- git: bump v2.39 to 2.45; deprecate unsafe versions (#44248)\r\n- gcc: use -rpath {rpath_dir} not -rpath={rpath dir} (#44315)\r\n- Remove mesa18 and libosmesa (#44264)\r\n- Enforce consistency of `gl` providers (#44307)\r\n- py-matplotlib: qualify when to do a post install (#44191)\r\n- rust: fix v1.78.0 instructions (#44127)\r\n- suite-sparse: improve setting of the `libs` property (#44214)\r\n- netlib-lapack: provide blas and lapack together (#44981)","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/164116637\/reactions","total_count":14,"+1":0,"-1":0,"laugh":0,"hooray":14,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/155370715","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/155370715\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/155370715\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.22.0","id":155370715,"author":{"login":"tgamblin","id":299842,"node_id":"MDQ6VXNlcjI5OTg0Mg==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/299842?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/tgamblin","html_url":"https:\/\/github.com\/tgamblin","followers_url":"https:\/\/api.github.com\/users\/tgamblin\/followers","following_url":"https:\/\/api.github.com\/users\/tgamblin\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/tgamblin\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/tgamblin\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/tgamblin\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/tgamblin\/orgs","repos_url":"https:\/\/api.github.com\/users\/tgamblin\/repos","events_url":"https:\/\/api.github.com\/users\/tgamblin\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/tgamblin\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4JQsTb","tag_name":"v0.22.0","target_commitish":"releases\/v0.22","name":"v0.22.0 (2024-05-12)","draft":false,"immutable":false,"prerelease":false,"created_at":"2024-05-12T00:06:28Z","updated_at":"2024-05-13T01:01:24Z","published_at":"2024-05-12T10:38:22Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/167453277","id":167453277,"node_id":"RA_kwDOAPAIsc4J-yJd","name":"spack-0.22.0.tar.gz","label":null,"uploader":{"login":"tgamblin","id":299842,"node_id":"MDQ6VXNlcjI5OTg0Mg==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/299842?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/tgamblin","html_url":"https:\/\/github.com\/tgamblin","followers_url":"https:\/\/api.github.com\/users\/tgamblin\/followers","following_url":"https:\/\/api.github.com\/users\/tgamblin\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/tgamblin\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/tgamblin\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/tgamblin\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/tgamblin\/orgs","repos_url":"https:\/\/api.github.com\/users\/tgamblin\/repos","events_url":"https:\/\/api.github.com\/users\/tgamblin\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/tgamblin\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/x-gzip","state":"uploaded","size":11101704,"digest":null,"download_count":704,"created_at":"2024-05-12T10:38:56Z","updated_at":"2024-05-12T10:39:11Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.22.0\/spack-0.22.0.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.22.0","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.22.0","body":"`v0.22.0` is a major feature release.\r\n\r\n## Features in this release\r\n\r\n1. **Compiler dependencies**\r\n\r\n    We are in the process of making compilers proper dependencies in Spack, and a number\r\n    of changes in `v0.22` support that effort. You may notice nodes in your dependency\r\n    graphs for compiler runtime libraries like `gcc-runtime` or `libgfortran`, and you\r\n    may notice that Spack graphs now include `libc`. We've also begun moving compiler\r\n    configuration from `compilers.yaml` to `packages.yaml` to make it consistent with\r\n    other externals. We are trying to do this with the least disruption possible, so\r\n    your existing `compilers.yaml` files should still work. We expect to be done with\r\n    this transition by the `v0.23` release in November.\r\n\r\n    * #41104: Packages compiled with `%gcc` on Linux, macOS and FreeBSD now depend on a\r\n      new package `gcc-runtime`, which contains a copy of the shared compiler runtime\r\n      libraries. This enables gcc runtime libraries to be installed and relocated when\r\n      using a build cache. When building minimal Spack-generated container images it is\r\n      no longer necessary to install libgfortran, libgomp etc. using the system package\r\n      manager.\r\n\r\n    * #42062: Packages compiled with `%oneapi` now depend on a new package\r\n      `intel-oneapi-runtime`. This is similar to `gcc-runtime`, and the runtimes can\r\n      provide virtuals and compilers can inject dependencies on virtuals into compiled\r\n      packages. This allows us to model library soname compatibility and allows\r\n      compilers like `%oneapi` to provide virtuals like `sycl` (which can also be\r\n      provided by standalone libraries). Note that until we have an agreement in place\r\n      with intel, Intel packages are marked `redistribute(source=False, binary=False)`\r\n      and must be downloaded outside of Spack.\r\n\r\n    * #43272: changes to the optimization criteria of the solver improve the hit-rate of\r\n      buildcaches by a fair amount. The solver more relaxed compatibility rules and will\r\n      not try to strictly match compilers or targets of reused specs. Users can still\r\n      enforce the previous strict behavior with `require:` sections in `packages.yaml`.\r\n      Note that to enforce correct linking, Spack will *not* reuse old `%gcc` and\r\n      `%oneapi` specs that do not have the runtime libraries as a dependency.\r\n\r\n    * #43539: Spack will reuse specs built with compilers that are *not* explicitly\r\n      configured in `compilers.yaml`. Because we can now keep runtime libraries in build\r\n      cache, we do not require you to also have a local configured compiler to *use* the\r\n      runtime libraries. This improves reuse in buildcaches and avoids conflicts with OS\r\n      updates that happen underneath Spack.\r\n\r\n    * #43190: binary compatibility on `linux` is now based on the `libc` version,\r\n      instead of on the `os` tag. Spack builds now detect the host `libc` (`glibc` or\r\n      `musl`) and add it as an implicit external node in the dependency graph. Binaries\r\n      with a `libc` with the same name and a version less than or equal to that of the\r\n      detected `libc` can be reused. This is only on `linux`, not `macos` or `Windows`.\r\n\r\n    * #43464: each package that can provide a compiler is now detectable using `spack\r\n      external find`. External packages defining compiler paths are effectively used as\r\n      compilers, and `spack external find -t compiler` can be used as a substitute for\r\n      `spack compiler find`. More details on this transition are in\r\n      [the docs](https:\/\/spack.readthedocs.io\/en\/latest\/getting_started.html#manual-compiler-configuration)\r\n\r\n2. **Improved `spack find` UI for Environments**\r\n\r\n   <img width=\"1522\" alt=\"image\" src=\"https:\/\/github.com\/spack\/spack\/assets\/299842\/31ea4791-48a4-4113-a3f7-fa13d94ec99b\">\r\n\r\n   If you're working in an enviroment, you likely care about:\r\n\r\n   * What are the roots\r\n   * Which ones are installed \/ not installed\r\n   * What's been added that still needs to be concretized\r\n\r\n    We've tweaked `spack find` in environments to show this information much more\r\n    clearly. Installation status is shown next to each root, so you can see what is\r\n    installed. Roots are also shown in bold in the list of installed packages. There is\r\n    also a new option for `spack find -r` \/ `--only-roots` that will only show env\r\n    roots, if you don't want to look at all the installed specs.\r\n\r\n    More details in #42334.\r\n\r\n3. **Improved command-line string quoting**\r\n\r\n   We are making some breaking changes to how Spack parses specs on the CLI in order to\r\n   respect shell quoting instead of trying to fight it. If you (sadly) had to write\r\n   something like this on the command line:\r\n\r\n    ```\r\n    spack install zlib cflags=\\\"-O2 -g\\\"\r\n    ```\r\n\r\n    That will now result in an error, but you can now write what you probably expected\r\n    to work in the first place:\r\n\r\n    ```\r\n    spack install zlib cflags=\"-O2 -g\"\r\n    ```\r\n\r\n    Quoted can also now include special characters, so you can supply flags like:\r\n\r\n    ```\r\n    spack intall zlib ldflags='-Wl,-rpath=$ORIGIN\/_libs'\r\n    ```\r\n\r\n    To reduce ambiguity in parsing, we now require that you *not* put spaces around `=`\r\n    and `==` when for flags or variants. This would not have broken before but will now\r\n    result in an error:\r\n\r\n    ```\r\n    spack install zlib cflags = \"-O2 -g\"\r\n    ```\r\n\r\n    More details and discussion in #30634.\r\n\r\n4. **Revert default `spack install` behavior to `--reuse`**\r\n\r\n   We changed the default concretizer behavior from `--reuse` to `--reuse-deps` in\r\n   #30990 (in `v0.20`), which meant that *every* `spack install` invocation would\r\n   attempt to build a new version of the requested package \/ any environment roots.\r\n   While this is a common ask for *upgrading* and for *developer* workflows, we don't\r\n   think it should be the default for a package manager.\r\n\r\n   We are going to try to stick to this policy:\r\n   1. Prioritize reuse and build as little as possible by default.\r\n   2. Only upgrade or install duplicates if they are explicitly asked for, or if there\r\n      is a known security issue that necessitates an upgrade.\r\n\r\n   With the install command you now have three options:\r\n\r\n   * `--reuse` (default): reuse as many existing installations as possible.\r\n   * `--reuse-deps` \/ `--fresh-roots`: upgrade (freshen) roots but reuse dependencies if possible.\r\n   * `--fresh`: install fresh versions of requested packages (roots) and their dependencies.\r\n\r\n   We've also introduced `--fresh-roots` as an alias for `--reuse-deps` to make it more clear\r\n   that it may give you fresh versions. More details in #41302 and #43988.\r\n\r\n5. **More control over reused specs**\r\n\r\n   You can now control which packages to reuse and how. There is a new\r\n   `concretizer:reuse` config option, which accepts the following properties:\r\n\r\n   - `roots`: `true` to reuse roots, `false` to reuse just dependencies\r\n   - `exclude`: list of constraints used to select which specs *not* to reuse\r\n   - `include`: list of constraints used to select which specs *to* reuse\r\n   - `from`: list of sources for reused specs (some combination of `local`,\r\n     `buildcache`, or `external`)\r\n\r\n   For example, to reuse only specs compiled with GCC, you could write:\r\n\r\n   ```yaml\r\n   concretizer:\r\n      reuse:\r\n        roots: true\r\n        include:\r\n        - \"%gcc\"\r\n   ```\r\n\r\n   Or, if `openmpi` must be used from externals, and it must be the only external used:\r\n\r\n   ```yaml\r\n   concretizer:\r\n     reuse:\r\n       roots: true\r\n       from:\r\n       - type: local\r\n         exclude: [\"openmpi\"]\r\n       - type: buildcache\r\n         exclude: [\"openmpi\"]\r\n       - type: external\r\n         include: [\"openmpi\"]\r\n   ```\r\n\r\n6. **New `redistribute()` directive**\r\n\r\n   Some packages can't be redistributed in source or binary form. We need an explicit\r\n   way to say that in a package.\r\n\r\n   Now there is a `redistribute()` directive so that package authors can write:\r\n\r\n   ```python\r\n   class MyPackage(Package):\r\n       redistribute(source=False, binary=False)\r\n   ```\r\n\r\n   Like other directives, this works with `when=`:\r\n\r\n   ```python\r\n   class MyPackage(Package):\r\n       # 12.0 and higher are proprietary\r\n       redistribute(source=False, binary=False, when=\"@12.0:\")\r\n\r\n       # can't redistribute when we depend on some proprietary dependency\r\n       redistribute(source=False, binary=False, when=\"^proprietary-dependency\")\r\n   ```\r\n\r\n    More in #20185.\r\n\r\n7. **New `conflict:` and `prefer:` syntax for package preferences**\r\n\r\n   Previously, you could express conflicts and preferences in `packages.yaml` through\r\n   some contortions with `require:`:\r\n\r\n    ```yaml\r\n    packages:\r\n      zlib-ng:\r\n        require:\r\n        - one_of: [\"%clang\", \"@:\"]   # conflict on %clang\r\n        - any_of: [\"+shared\", \"@:\"]  # strong preference for +shared\r\n    ```\r\n\r\n    You can now use `require:` and `prefer:` for a much more readable configuration:\r\n\r\n    ```yaml\r\n    packages:\r\n      zlib-ng:\r\n        conflict:\r\n        - \"%clang\"\r\n        prefer:\r\n        - \"+shared\"\r\n    ```\r\n\r\n    See [the documentation](https:\/\/spack.readthedocs.io\/en\/latest\/packages_yaml.html#conflicts-and-strong-preferences)\r\n    and #41832 for more details.\r\n\r\n8. **`include_concrete` in environments**\r\n\r\n   You may want to build on the *concrete* contents of another environment without\r\n   changing that environment.  You can now include the concrete specs from another\r\n   environment's `spack.lock` with `include_concrete`:\r\n\r\n   ```yaml\r\n      spack:\r\n        specs: []\r\n        concretizer:\r\n            unify: true\r\n        include_concrete:\r\n        - \/path\/to\/environment1\r\n        - \/path\/to\/environment2\r\n   ```\r\n\r\n   Now, when *this* environment is concretized, it will bring in the already concrete\r\n   specs from `environment1` and `environment2`, and build on top of them without\r\n   changing them. This is useful if you have phased deployments, where old deployments\r\n   should not be modified but you want to use as many of them as possible. More details\r\n   in #33768.\r\n\r\n9. **`python-venv` isolation**\r\n\r\n   Spack has unique requirements for Python because it:\r\n    1. installs every package in its own independent directory, and\r\n    2. allows users to register *external* python installations.\r\n\r\n   External installations may contain their own installed packages that can interfere\r\n   with Spack installations, and some distributions (Debian and Ubuntu) even change the\r\n   `sysconfig` in ways that alter the installation layout of installed Python packages\r\n   (e.g., with the addition of a `\/local` prefix on Debian or Ubuntu). To isolate Spack\r\n   from these and other issues, we now insert a small `python-venv` package in between\r\n   `python` and packages that need to install Python code. This isolates Spack's build\r\n   environment, isolates Spack from any issues with an external python, and resolves a\r\n   large number of issues we've had with Python installations.\r\n\r\n   See #40773 for further details.\r\n\r\n## New commands, options, and directives\r\n\r\n* Allow packages to be pushed to build cache after install from source (#42423)\r\n* `spack develop`: stage build artifacts in same root as non-dev builds #41373\r\n  * Don't delete `spack develop` build artifacts after install (#43424)\r\n* `spack find`: add options for local\/upstream only (#42999)\r\n* `spack logs`: print log files for packages (either partially built or installed) (#42202)\r\n* `patch`: support reversing patches (#43040)\r\n* `develop`: Add -b\/--build-directory option to set build_directory package attribute (#39606)\r\n* `spack list`: add `--namesapce` \/ `--repo` option (#41948)\r\n* directives: add `checked_by` field to `license()`, add some license checks\r\n* `spack gc`: add options for environments and build dependencies (#41731)\r\n* Add `--create` to `spack env activate` (#40896)\r\n\r\n## Performance improvements\r\n\r\n* environment.py: fix excessive re-reads (#43746)\r\n* ruamel yaml: fix quadratic complexity bug  (#43745)\r\n* Refactor to improve `spec format` speed (#43712)\r\n* Do not acquire a write lock on the env post install if no views (#43505)\r\n* asp.py: fewer calls to `spec.copy()` (#43715)\r\n* spec.py: early return in `__str__`\r\n* avoid `jinja2` import at startup unless needed (#43237)\r\n\r\n## Other new features of note\r\n\r\n* `archspec`: update to `v0.2.4`: support for Windows, bugfixes for `neoverse-v1` and\r\n  `neoverse-v2` detection.\r\n* `spack config get`\/`blame`: with no args, show entire config\r\n* `spack env create <env>`: dir if dir-like (#44024)\r\n* ASP-based solver: update os compatibility for macOS (#43862)\r\n* Add handling of custom ssl certs in urllib ops (#42953)\r\n* Add ability to rename environments (#43296)\r\n* Add config option and compiler support to reuse across OS's (#42693)\r\n* Support for prereleases (#43140)\r\n* Only reuse externals when configured (#41707)\r\n* Environments: Add support for including views (#42250)\r\n\r\n## Binary caches\r\n* Build cache: make signed\/unsigned a mirror property (#41507)\r\n* tools stack\r\n\r\n## Removals, deprecations, and syntax changes\r\n* remove `dpcpp` compiler and package (#43418)\r\n* spack load: remove --only argument (#42120)\r\n\r\n## Notable Bugfixes\r\n* repo.py: drop deleted packages from provider cache (#43779)\r\n* Allow `+` in module file names (#41999)\r\n* `cmd\/python`: use runpy to allow multiprocessing in scripts (#41789)\r\n* Show extension commands with spack -h (#41726)\r\n* Support environment variable expansion inside module projections (#42917)\r\n* Alert user to failed concretizations (#42655)\r\n* shell: fix zsh color formatting for PS1 in environments (#39497)\r\n* spack mirror create --all: include patches (#41579)\r\n\r\n## Spack community stats\r\n\r\n* 7,994 total packages; 525 since `v0.21.0`\r\n    * 178 new Python packages, 5 new R packages\r\n* 358 people contributed to this release\r\n    * 344 committers to packages\r\n    * 45 committers to core","discussion_url":"https:\/\/github.com\/spack\/spack\/discussions\/44141","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/155370715\/reactions","total_count":21,"+1":2,"-1":0,"laugh":0,"hooray":12,"confused":0,"heart":7,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/144787132","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/144787132\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/144787132\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.21.2","id":144787132,"author":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4IoUa8","tag_name":"v0.21.2","target_commitish":"releases\/v0.21","name":"v0.21.2 (2024-03-01)","draft":false,"immutable":false,"prerelease":false,"created_at":"2024-03-03T15:02:50Z","updated_at":"2024-03-05T04:14:20Z","published_at":"2024-03-05T04:13:24Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/154948766","id":154948766,"node_id":"RA_kwDOAPAIsc4JPFSe","name":"spack-0.21.2.tar.gz","label":null,"uploader":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/gzip","state":"uploaded","size":10614896,"digest":null,"download_count":809,"created_at":"2024-03-05T04:14:18Z","updated_at":"2024-03-05T04:14:20Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.21.2\/spack-0.21.2.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.21.2","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.21.2","body":"## Bugfixes\r\n\r\n- Containerize: accommodate nested or pre-existing spack-env paths (#41558)\r\n- Fix setup-env script, when going back and forth between instances (#40924)\r\n- Fix using fully-qualified namespaces from root specs (#41957)\r\n- Fix a bug when a required provider is requested for multiple virtuals (#42088)\r\n- OCI buildcaches:\r\n  - only push in parallel when forking (#42143)\r\n  - use pickleable errors (#42160)\r\n- Fix using sticky variants in externals (#42253)\r\n- Fix a rare issue with conditional requirements and multi-valued variants (#42566)\r\n\r\n## Package updates\r\n- rust: add v1.75, rework a few variants (#41161,#41903)\r\n- py-transformers: add v4.35.2 (#41266)\r\n- mgard: fix OpenMP on AppleClang (#42933)","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/144787132\/reactions","total_count":10,"+1":4,"-1":0,"laugh":0,"hooray":5,"confused":0,"heart":0,"rocket":1,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/136929960","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/136929960\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/136929960\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.21.1","id":136929960,"author":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4IKWKo","tag_name":"v0.21.1","target_commitish":"releases\/v0.21","name":"v0.21.1 (2024-01-11)","draft":false,"immutable":false,"prerelease":false,"created_at":"2024-01-12T09:16:58Z","updated_at":"2024-01-13T09:23:11Z","published_at":"2024-01-13T09:22:35Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/145385942","id":145385942,"node_id":"RA_kwDOAPAIsc4IqmnW","name":"spack-0.21.1.tar.gz","label":null,"uploader":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/gzip","state":"uploaded","size":10612870,"digest":null,"download_count":546,"created_at":"2024-01-13T09:23:08Z","updated_at":"2024-01-13T09:23:11Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.21.1\/spack-0.21.1.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.21.1","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.21.1","body":"## New features\r\n- Add support for reading buildcaches created by Spack v0.22 (#41773)\r\n\r\n## Bugfixes\r\n\r\n- spack graph: fix coloring with environments (#41240)\r\n- spack info: sort variants in --variants-by-name (#41389)\r\n- Spec.format: error on old style format strings (#41934)\r\n- ASP-based solver: \r\n  - fix infinite recursion when computing concretization errors (#41061)\r\n  - don't error for type mismatch on preferences (#41138)\r\n  - don't emit spurious debug output (#41218)\r\n- Improve the error message for deprecated preferences (#41075)\r\n- Fix MSVC preview version breaking clingo build on Windows (#41185)\r\n- Fix multi-word aliases (#41126)\r\n- Add a warning for unconfigured compiler (#41213)\r\n- environment: fix an issue with deconcretization\/reconcretization of specs (#41294)\r\n- buildcache: don't error if a patch is missing, when installing from binaries (#41986)\r\n- Multiple improvements to unit-tests (#41215,#41369,#41495,#41359,#41361,#41345,#41342,#41308,#41226)\r\n\r\n## Package updates\r\n- root: add a webgui patch to address security issue (#41404)\r\n- BerkeleyGW: update source urls (#38218)\r\n","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/136929960\/reactions","total_count":4,"+1":0,"-1":0,"laugh":0,"hooray":4,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/129014124","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/129014124\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/129014124\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.21.0","id":129014124,"author":{"login":"tgamblin","id":299842,"node_id":"MDQ6VXNlcjI5OTg0Mg==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/299842?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/tgamblin","html_url":"https:\/\/github.com\/tgamblin","followers_url":"https:\/\/api.github.com\/users\/tgamblin\/followers","following_url":"https:\/\/api.github.com\/users\/tgamblin\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/tgamblin\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/tgamblin\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/tgamblin\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/tgamblin\/orgs","repos_url":"https:\/\/api.github.com\/users\/tgamblin\/repos","events_url":"https:\/\/api.github.com\/users\/tgamblin\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/tgamblin\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4HsJls","tag_name":"v0.21.0","target_commitish":"releases\/v0.21","name":"v0.21.0 (2023-11-11)","draft":false,"immutable":false,"prerelease":false,"created_at":"2023-11-11T11:32:22Z","updated_at":"2023-11-12T03:55:58Z","published_at":"2023-11-12T02:35:58Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/135125116","id":135125116,"node_id":"RA_kwDOAPAIsc4IDdh8","name":"spack-0.21.0.tar.gz","label":null,"uploader":{"login":"becker33","id":13971568,"node_id":"MDQ6VXNlcjEzOTcxNTY4","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/13971568?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/becker33","html_url":"https:\/\/github.com\/becker33","followers_url":"https:\/\/api.github.com\/users\/becker33\/followers","following_url":"https:\/\/api.github.com\/users\/becker33\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/becker33\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/becker33\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/becker33\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/becker33\/orgs","repos_url":"https:\/\/api.github.com\/users\/becker33\/repos","events_url":"https:\/\/api.github.com\/users\/becker33\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/becker33\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/x-gzip","state":"uploaded","size":10606478,"digest":null,"download_count":538,"created_at":"2023-11-12T03:55:42Z","updated_at":"2023-11-12T03:55:58Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.21.0\/spack-0.21.0.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.21.0","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.21.0","body":"`v0.21.0` is a major feature release.\r\n\r\n## Features in this release\r\n\r\n1. **Better error messages with condition chaining**\r\n\r\n   In v0.18, we added better error messages that could tell you what problem happened, but they couldn't tell you *why* it happened. `0.21` adds *condition chaining* to the solver, and Spack can now trace back through the conditions that led to an error and build a tree of causes potential causes and where they came from. For example:\r\n\r\n   ```console\r\n   $ spack solve hdf5 ^cmake@3.0.1\r\n   ==> Error: concretization failed for the following reasons:\r\n\r\n      1. Cannot satisfy 'cmake@3.0.1'\r\n      2. Cannot satisfy 'cmake@3.0.1'\r\n           required because hdf5 ^cmake@3.0.1 requested from CLI\r\n      3. Cannot satisfy 'cmake@3.18:' and 'cmake@3.0.1\r\n           required because hdf5 ^cmake@3.0.1 requested from CLI\r\n           required because hdf5 depends on cmake@3.18: when @1.13:\r\n             required because hdf5 ^cmake@3.0.1 requested from CLI\r\n      4. Cannot satisfy 'cmake@3.12:' and 'cmake@3.0.1\r\n           required because hdf5 depends on cmake@3.12:\r\n             required because hdf5 ^cmake@3.0.1 requested from CLI\r\n           required because hdf5 ^cmake@3.0.1 requested from CLI\r\n   ```\r\n\r\n   More details in #40173.\r\n\r\n2. **OCI build caches**\r\n\r\n   You can now use an arbitrary [OCI](https:\/\/opencontainers.org) registry as a build cache:\r\n\r\n   ```console\r\n   $ spack mirror add my_registry oci:\/\/user\/image # Dockerhub\r\n   $ spack mirror add my_registry oci:\/\/ghcr.io\/haampie\/spack-test # GHCR\r\n   $ spack mirror set --push --oci-username ... --oci-password ... my_registry  # set login creds\r\n   $ spack buildcache push my_registry [specs...]\r\n   ```\r\n\r\n   And you can optionally add a base image to get *runnable* images:\r\n\r\n   ```console\r\n   $ spack buildcache push --base-image ubuntu:23.04 my_registry python\r\n   Pushed ... as [image]:python-3.11.2-65txfcpqbmpawclvtasuog4yzmxwaoia.spack\r\n\r\n   $ docker run --rm -it [image]:python-3.11.2-65txfcpqbmpawclvtasuog4yzmxwaoia.spack\r\n   ```\r\n\r\n   This creates a container image from the Spack installations on the host system, without the need to run `spack install` from a `Dockerfile` or `sif` file. It also addresses the inconvenience of losing binaries of dependencies when `RUN spack install` fails inside `docker build`.\r\n\r\n   Further, the container image layers and build cache tarballs are the same files. This means that `spack install` and `docker pull` use the exact same underlying binaries. If you previously used `spack install` inside of `docker build`, this feature helps you save storage by a factor two.\r\n\r\n   More details in #38358.\r\n\r\n3. **Multiple versions of build dependencies**\r\n\r\n   Increasingly, complex package builds require multiple versions of some build dependencies. For example, Python packages frequently require very specific versions of `setuptools`, `cython`, and sometimes different physics packages require different versions of Python to build. The concretizer enforced that every solve was *unified*, i.e., that there only be one version of every package. The concretizer now supports \"duplicate\" nodes for *build dependencies*, but enforces unification through transitive link and run dependencies. This will allow it to better resolve complex dependency graphs in ecosystems like Python, and it also gets us very close to modeling compilers as proper dependencies.\r\n\r\n   This change required a major overhaul of the concretizer, as well as a number of performance optimizations. See #38447, #39621.\r\n\r\n4. **Cherry-picking virtual dependencies**\r\n\r\n   You can now select only a subset of virtual dependencies from a spec that may provide more. For example, if you want `mpich` to be your `mpi` provider, you can be explicit by writing:\r\n\r\n   ```\r\n   hdf5 ^[virtuals=mpi] mpich\r\n   ```\r\n\r\n   Or, if you want to use, e.g., `intel-parallel-studio` for `blas` along with an external\r\n   `lapack` like `openblas`, you could write:\r\n\r\n   ```\r\n   strumpack ^[virtuals=mpi] intel-parallel-studio+mkl ^[virtuals=lapack] openblas\r\n   ```\r\n\r\n   The `virtuals=mpi` is an edge attribute, and dependency edges in Spack graphs now track which virtuals they satisfied. More details in #17229 and #35322.\r\n\r\n   Note for packaging: in Spack 0.21 `spec.satisfies(\"^virtual\")` is true if and only if the package specifies `depends_on(\"virtual\")`. This is different from Spack 0.20, where depending on a provider implied depending on the virtual provided. See #41002 for an example where `^mkl` was being used to test for several `mkl` providers in a package that did not depend on `mkl`.\r\n\r\n5. **License directive**\r\n\r\n   Spack packages can now have license metadata, with the new `license()` directive:\r\n\r\n   ```python\r\n       license(\"Apache-2.0\")\r\n   ```\r\n\r\n   Licenses use [SPDX identifiers](https:\/\/spdx.org\/licenses), and you can use SPDX expressions to combine them:\r\n\r\n   ```python\r\n       license(\"Apache-2.0 OR MIT\")\r\n   ```\r\n\r\n   Like other directives in Spack, it's conditional, so you can handle complex cases like Spack itself:\r\n\r\n   ```python\r\n      license(\"LGPL-2.1\", when=\"@:0.11\")\r\n      license(\"Apache-2.0 OR MIT\", when=\"@0.12:\")\r\n   ```\r\n\r\n   More details in #39346, #40598.\r\n\r\n6. **`spack deconcretize` command**\r\n\r\n   We are getting close to having a `spack update` command for environments, but we're not quite there yet. This is the next best thing. `spack deconcretize` gives you control over what you want to update in an already concrete environment. If you have an environment built with, say, `meson`, and you want to update your `meson` version, you can run:\r\n\r\n   ```console\r\n   spack deconcretize meson\r\n   ```\r\n\r\n   and have everything that depends on `meson` rebuilt the next time you run `spack concretize`. In a future Spack version, we'll handle all of this in a single command, but for now you can use this to drop bits of your lockfile and resolve your dependencies again. More in #38803.\r\n\r\n7. **UI Improvements**\r\n\r\n   The venerable `spack info` command was looking shabby compared to the rest of Spack's UI, so we reworked it to have a bit more flair. `spack info` now makes much better use of terminal space and shows variants, their values, and their descriptions much more clearly. Conditional variants are grouped separately so you can more easily understand how packages are structured. More in #40998.\r\n\r\n   `spack checksum` now allows you to filter versions from your editor, or by version range. It also notifies you about potential download URL changes. See #40403.\r\n\r\n   <img height=\"300\" alt=\"image\" src=\"https:\/\/github.com\/spack\/spack\/assets\/299842\/6acced99-fb14-40e2-8284-c5831b47de40\">\r\n   <img height=\"300\" alt=\"image\" src=\"https:\/\/github.com\/spack\/spack\/assets\/299842\/f8135531-2efa-4eaa-adf6-769a54d5567e\">\r\n\r\n8. **Environments can include definitions**\r\n\r\n   Spack did not previously support using `include:` with The [definitions](https:\/\/spack.readthedocs.io\/en\/latest\/environments.html#spec-list-references) section of an environment, but now it does. You can use this to curate lists of specs and more easily reuse them across environments. See #33960.\r\n\r\n9. **Aliases**\r\n\r\n   You can now add aliases to Spack commands in `config.yaml`, e.g. this might enshrine your favorite args to `spack find` as `spack f`:\r\n\r\n   ```yaml\r\n   config:\r\n     aliases:\r\n       f: find -lv\r\n   ```\r\n\r\n   See #17229.\r\n\r\n10. **Improved autoloading of modules**\r\n\r\n    Spack 0.20 was the first release to enable autoloading of direct dependencies in module files.\r\n\r\n    The downside of this was that `module avail` and `module load` tab completion would show users too many modules to choose from, and many users disabled generating modules for dependencies through `exclude_implicits: true`. Further, it was necessary to keep hashes in module names to avoid file name clashes.\r\n\r\n    In this release, you can start using `hide_implicits: true` instead, which exposes only explicitly installed packages to the user, while still autoloading dependencies. On top of that, you can safely use `hash_length: 0`, as this config now only applies to the modules exposed to the user -- you don't have to worry about file name clashes for hidden dependencies.\r\n\r\n    Note: for `tcl` this feature requires Modules 4.7 or higher.\r\n\r\n11. **Updated container labeling**\r\n\r\n    Nightly Docker images from the `develop` branch will now be tagged as `:develop` and `:nightly` The `:latest` tag is no longer associated with `:develop`, but with the latest stable release. Releases will be tagged with `:{major}`, `:{major}.{minor}` and `:{major}.{minor}.{patch}`. `ubuntu:18.04` has also been removed from the list of generated Docker images, as it is no longer supported.  See #40593.\r\n\r\n## Other new commands and directives\r\n\r\n* `spack env activate` without arguments now loads a `default` environment that you do not have to create (#40756).\r\n* `spack find -H` \/ `--hashes`: a new shortcut for piping `spack find` output to other commands (#38663)\r\n* Add `spack checksum --verify`, fix `--add` (#38458)\r\n* New `default_args` context manager factors out common args for directives (#39964)\r\n* `spack compiler find --[no]-mixed-toolchain` lets you easily mix `clang` and `gfortran` on Linux (#40902)\r\n\r\n## Performance improvements\r\n\r\n* `spack external find` execution is now much faster (#39843)\r\n* `spack location -i` now much faster on success (#40898)\r\n* Drop redundant rpaths post install (#38976)\r\n* ASP-based solver: avoid cycles in clingo using hidden directive (#40720)\r\n* Fix multiple quadratic complexity issues in environments (#38771)\r\n\r\n## Other new features of note\r\n\r\n* archspec: update to v0.2.2, support for Sapphire Rapids, Power10, Neoverse V2 (#40917)\r\n* Propagate variants across nodes that don't have that variant (#38512)\r\n* Implement fish completion (#29549)\r\n* Can now distinguish between source\/binary mirror; don't ping mirror.spack.io as much (#34523)\r\n* Improve status reporting on install (add [n\/total] display) (#37903)\r\n\r\n## Windows\r\n\r\nThis release has the best Windows support of any Spack release yet, with numerous\r\nimprovements and much larger swaths of tests passing:\r\n\r\n* MSVC and SDK improvements (#37711, #37930, #38500, #39823, #39180)\r\n* Windows external finding: update default paths; treat .bat as executable on Windows (#39850)\r\n* Windows decompression: fix removal of intermediate file (#38958)\r\n* Windows: executable\/path handling (#37762)\r\n* Windows build systems: use ninja and enable tests (#33589)\r\n* Windows testing (#36970, #36972, #36973, #36840, #36977, #36792, #36834, #34696, #36971)\r\n* Windows PowerShell support (#39118, #37951)\r\n* Windows symlinking and libraries (#39933, #38599, #34701, #38578, #34701)\r\n\r\n## Notable refactors\r\n* User-specified flags take precedence over others in Spack compiler wrappers (#37376)\r\n* Improve setup of build, run, and test environments (#35737, #40916)\r\n* `make` is no longer a required system dependency of Spack (#40380)\r\n* Support Python 3.12 (#40404, #40155, #40153)\r\n* docs: Replace package list with packages.spack.io (#40251)\r\n* Drop Python 2 constructs in Spack (#38720, #38718, #38703)\r\n\r\n## Binary cache and stack updates\r\n* e4s arm stack: duplicate and target neoverse v1 (#40369)\r\n* Add macOS ML CI stacks (#36586)\r\n* E4S Cray CI Stack (#37837)\r\n* e4s cray: expand spec list (#38947)\r\n* e4s cray sles ci: expand spec list (#39081)\r\n\r\n## Removals, deprecations, and syntax changes\r\n* ASP: targets, compilers and providers soft-preferences are only global (#31261)\r\n* Parser: fix ambiguity with whitespace in version ranges (#40344)\r\n* Module file generation is disabled by default; you'll need to enable it to use it (#37258)\r\n* Remove deprecated \"extra_instructions\" option for containers (#40365)\r\n* Stand-alone test feature deprecation postponed to v0.22 (#40600)\r\n* buildcache push: make `--allow-root` the default and deprecate the option (#38878)\r\n\r\n## Notable Bugfixes\r\n* Bugfix: propagation of multivalued variants (#39833)\r\n* Allow `\/` in git versions (#39398)\r\n* Fetch & patch: actually acquire stage lock, and many more issues (#38903)\r\n* Environment\/depfile: better escaping of targets with Git versions (#37560)\r\n* Prevent \"spack external find\" to error out on wrong permissions (#38755)\r\n* lmod: allow core compiler to be specified with a version range (#37789)\r\n\r\n## Spack community stats\r\n\r\n* 7,469 total packages, 303 new since `v0.20.0`\r\n    * 150 new Python packages\r\n    * 34 new R packages\r\n* 353 people contributed to this release\r\n    * 336 committers to packages\r\n    * 65 committers to core","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/129014124\/reactions","total_count":27,"+1":9,"-1":0,"laugh":0,"hooray":8,"confused":0,"heart":0,"rocket":10,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/127496085","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/127496085\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/127496085\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.20.3","id":127496085,"author":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4HmW-V","tag_name":"v0.20.3","target_commitish":"releases\/v0.20","name":"v0.20.3 (2023-10-31)","draft":false,"immutable":false,"prerelease":false,"created_at":"2023-10-31T17:15:04Z","updated_at":"2023-11-01T09:34:06Z","published_at":"2023-11-01T09:34:06Z","assets":[],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.20.3","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.20.3","body":"## Bugfixes\r\n\r\n- Fix a bug where `spack mirror set-url` would drop configured connection info (reverts #34210)\r\n- Fix a minor issue with package hash computation for Python 3.12 (#40328)\r\n"},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/123622760","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/123622760\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/123622760\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.20.2","id":123622760,"author":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4HXlVo","tag_name":"v0.20.2","target_commitish":"releases\/v0.20","name":"v0.20.2 (2023-10-03)","draft":false,"immutable":false,"prerelease":false,"created_at":"2023-10-03T14:53:50Z","updated_at":"2023-10-04T07:23:32Z","published_at":"2023-10-04T07:23:32Z","assets":[],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.20.2","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.20.2","body":"## Features in this release\r\n\r\nSpack now supports Python 3.12 (#40155)\r\n\r\n## Bugfixes\r\n\r\n- Improve escaping in Tcl module files (#38375)\r\n- Make repo cache work on repositories with zero mtime (#39214)\r\n- Ignore errors for newer, incompatible buildcache version (#40279)\r\n- Print an error when git is required, but missing (#40254)\r\n- Ensure missing build dependencies get installed when using `spack install --overwrite` (#40252)\r\n- Fix an issue where Spack freezes when the build process unexpectedly exits (#39015)\r\n- Fix a bug where installation failures cause an unrelated `NameError` to be thrown (#39017)\r\n- Fix an issue where Spack package versions would be incorrectly derived from git tags (#39414)\r\n- Fix a bug triggered when file locking fails internally (#39188)\r\n- Prevent \"spack external find\" to error out when a directory cannot be accessed (#38755)\r\n- Fix multiple performance regressions in environments (#38771)\r\n- Add more ignored modules to `pyproject.toml` for `mypy` (#38769)","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/123622760\/reactions","total_count":7,"+1":0,"-1":0,"laugh":0,"hooray":7,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/111594711","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/111594711\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/111594711\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.20.1","id":111594711,"author":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4GpszX","tag_name":"v0.20.1","target_commitish":"releases\/v0.20","name":"v0.20.1 (2023-07-10)","draft":false,"immutable":false,"prerelease":false,"created_at":"2023-07-07T10:08:59Z","updated_at":"2023-07-10T12:41:34Z","published_at":"2023-07-10T12:40:46Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/116352750","id":116352750,"node_id":"RA_kwDOAPAIsc4G72bu","name":"spack-0.20.1.tar.gz","label":null,"uploader":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/gzip","state":"uploaded","size":9691502,"digest":null,"download_count":1040,"created_at":"2023-07-10T12:41:31Z","updated_at":"2023-07-10T12:41:33Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.20.1\/spack-0.20.1.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.20.1","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.20.1","body":"## Spack Bugfixes\r\n\r\n- Spec removed from an environment where not actually removed if `--force` was not given (#37877)\r\n- Speed-up module file generation (#37739)\r\n- Hotfix for a few recipes that treat CMake as a link dependency (#35816)\r\n- Fix re-running stand-alone test a second time, which was getting a trailing spurious failure (#37840)\r\n- Fixed reading JSON manifest on Cray, reporting non-concrete specs (#37909)\r\n- Fixed a few bugs when generating Dockerfiles from Spack (#37766,#37769)\r\n- Fixed a few long-standing bugs when generating module files (#36678,#38347,#38465,#38455)\r\n- Fixed issues with building Python extensions using an external Python (#38186)\r\n- Fixed compiler removal from command line (#38057)\r\n- Show external status as [e] (#33792)\r\n- Backported `archspec` fixes (#37793)\r\n- Improved a few error messages (#37791)\r\n\r\n**Full Changelog**: https:\/\/github.com\/spack\/spack\/compare\/v0.20.0...v0.20.1","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/111594711\/reactions","total_count":4,"+1":0,"-1":0,"laugh":0,"hooray":4,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/103708002","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/103708002\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/103708002\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.20.0","id":103708002,"author":{"login":"tgamblin","id":299842,"node_id":"MDQ6VXNlcjI5OTg0Mg==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/299842?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/tgamblin","html_url":"https:\/\/github.com\/tgamblin","followers_url":"https:\/\/api.github.com\/users\/tgamblin\/followers","following_url":"https:\/\/api.github.com\/users\/tgamblin\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/tgamblin\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/tgamblin\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/tgamblin\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/tgamblin\/orgs","repos_url":"https:\/\/api.github.com\/users\/tgamblin\/repos","events_url":"https:\/\/api.github.com\/users\/tgamblin\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/tgamblin\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4GLnVi","tag_name":"v0.20.0","target_commitish":"releases\/v0.20","name":"v0.20.0","draft":false,"immutable":false,"prerelease":false,"created_at":"2023-05-19T16:46:40Z","updated_at":"2023-05-20T23:45:31Z","published_at":"2023-05-20T23:44:51Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/109072108","id":109072108,"node_id":"RA_kwDOAPAIsc4GgE7s","name":"spack-0.20.0.tar.gz","label":null,"uploader":{"login":"tgamblin","id":299842,"node_id":"MDQ6VXNlcjI5OTg0Mg==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/299842?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/tgamblin","html_url":"https:\/\/github.com\/tgamblin","followers_url":"https:\/\/api.github.com\/users\/tgamblin\/followers","following_url":"https:\/\/api.github.com\/users\/tgamblin\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/tgamblin\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/tgamblin\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/tgamblin\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/tgamblin\/orgs","repos_url":"https:\/\/api.github.com\/users\/tgamblin\/repos","events_url":"https:\/\/api.github.com\/users\/tgamblin\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/tgamblin\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/x-gzip","state":"uploaded","size":9685007,"digest":null,"download_count":2382,"created_at":"2023-05-20T23:45:17Z","updated_at":"2023-05-20T23:45:31Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.20.0\/spack-0.20.0.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.20.0","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.20.0","body":"# v0.20.0 (2023-05-21)\r\n\r\n`v0.20.0` is a major feature release.\r\n\r\n## Features in this release\r\n\r\n1. **`requires()` directive and enhanced package requirements**\r\n\r\n   We've added some more enhancements to requirements in Spack (#36286).\r\n\r\n   There is a new `requires()` directive for packages. `requires()` is the opposite of\r\n   `conflicts()`. You can use it to impose constraints on this package when certain\r\n   conditions are met:\r\n\r\n   ```python\r\n   requires(\r\n       \"%apple-clang\",\r\n       when=\"platform=darwin\",\r\n       msg=\"This package builds only with clang on macOS\"\r\n   )\r\n   ```\r\n\r\n   More on this in [the docs](\r\n     https:\/\/spack.rtfd.io\/en\/latest\/packaging_guide.html#conflicts-and-requirements).\r\n\r\n   You can also now add a `when:` clause to `requires:` in your `packages.yaml`\r\n   configuration or in an environment:\r\n\r\n   ```yaml\r\n   packages:\r\n     openmpi:\r\n       require:\r\n       - any_of: [\"%gcc\"]\r\n         when: \"@:4.1.4\"\r\n         message: \"Only OpenMPI 4.1.5 and up can build with fancy compilers\"\r\n   ```\r\n\r\n   More details can be found [here](\r\n     https:\/\/spack.readthedocs.io\/en\/latest\/build_settings.html#package-requirements)\r\n\r\n2. **Exact versions**\r\n\r\n   Spack did not previously have a way to distinguish a version if it was a prefix of\r\n   some other version. For example, `@3.2` would match `3.2`, `3.2.1`, `3.2.2`, etc. You\r\n   can now match *exactly* `3.2` with `@=3.2`. This is useful, for example, if you need\r\n   to patch *only* the `3.2` version of a package. The new syntax is described in [the docs](\r\n     https:\/\/spack.readthedocs.io\/en\/latest\/basic_usage.html#version-specifier).\r\n\r\n   Generally, when writing packages, you should prefer to use ranges like `@3.2` over\r\n   the specific versions, as this allows the concretizer more leeway when selecting\r\n   versions of dependencies. More details and recommendations are in the [packaging guide](\r\n     https:\/\/spack.readthedocs.io\/en\/latest\/packaging_guide.html#ranges-versus-specific-versions).\r\n\r\n   See #36273 for full details on the version refactor.\r\n\r\n3. **New testing interface**\r\n\r\n   Writing package tests is now much simpler with a new [test interface](\r\n     https:\/\/spack.readthedocs.io\/en\/latest\/packaging_guide.html#stand-alone-tests).\r\n\r\n   Writing a test is now as easy as adding a method that starts with `test_`:\r\n\r\n   ```python\r\n   class MyPackage(Package):\r\n       ...\r\n\r\n       def test_always_fails(self):\r\n           \"\"\"use assert to always fail\"\"\"\r\n           assert False\r\n\r\n       def test_example(self):\r\n           \"\"\"run installed example\"\"\"\r\n           example = which(self.prefix.bin.example)\r\n           example()\r\n    ```\r\n\r\n    You can use Python's native `assert` statement to implement your checks -- no more\r\n    need to fiddle with `run_test` or other test framework methods. Spack will\r\n    introspect the class and run `test_*` methods when you run `spack test`,\r\n\r\n4. **More stable concretization**\r\n\r\n   * Now, `spack concretize` will *only* concretize the new portions of the environment\r\n     and will not change existing parts of an environment unless you specify `--force`.\r\n     This has always been true for `unify:false`, but not for `unify:true` and\r\n     `unify:when_possible` environments. Now it is true for all of them (#37438, #37681).\r\n\r\n   * The concretizer has a new `--reuse-deps` argument that *only* reuses dependencies.\r\n     That is, it will always treat the *roots* of your environment as it would with\r\n     `--fresh`. This allows you to upgrade just the roots of your environment while\r\n     keeping everything else stable (#30990).\r\n\r\n5. **Weekly develop snapshot releases**\r\n\r\n   Since last year, we have maintained a buildcache of `develop` at\r\n   https:\/\/binaries.spack.io\/develop, but the cache can grow to contain so many builds\r\n   as to be unwieldy. When we get a stable `develop` build, we snapshot the release and\r\n   add a corresponding tag the Spack repository. So, you can use a stack from a specific\r\n   day. There are now tags in the spack repository like:\r\n\r\n   * `develop-2023-05-14`\r\n   * `develop-2023-05-18`\r\n\r\n   that correspond to build caches like:\r\n\r\n   * https:\/\/binaries.spack.io\/develop-2023-05-14\/e4s\r\n   * https:\/\/binaries.spack.io\/develop-2023-05-18\/e4s\r\n\r\n   We plan to store these snapshot releases weekly.\r\n\r\n6. **Specs in buildcaches can be referenced by hash.**\r\n\r\n   * Previously, you could run `spack buildcache list` and see the hashes in\r\n     buildcaches, but referring to them by hash would fail.\r\n   * You can now run commands like `spack spec` and `spack install` and refer to\r\n     buildcache hashes directly, e.g. `spack install \/abc123` (#35042)\r\n\r\n7. **New package and buildcache index websites**\r\n\r\n   Our public websites for searching packages have been completely revamped and updated.\r\n   You can check them out here:\r\n\r\n   * *Package Index*: https:\/\/packages.spack.io\r\n   * *Buildcache Index*: https:\/\/cache.spack.io\r\n\r\n   Both are searchable and more interactive than before. Currently major releases are\r\n   shown; UI for browsing `develop` snapshots is coming soon.\r\n\r\n8. **Default CMake and Meson build types are now Release**\r\n\r\n   Spack has historically defaulted to building with optimization and debugging, but\r\n   packages like `llvm` can be enormous with debug turned on. Our default build type for\r\n   all Spack packages is now `Release` (#36679, #37436). This has a number of benefits:\r\n\r\n   * much smaller binaries;\r\n   * higher default optimization level; and\r\n   * defining `NDEBUG` disables assertions, which may lead to further speedups.\r\n\r\n   You can still get the old behavior back through requirements and package preferences.\r\n\r\n## Other new commands and directives\r\n\r\n* `spack checksum` can automatically add new versions to package (#24532)\r\n* new command: `spack pkg grep` to easily search package files (#34388)\r\n* New `maintainers` directive (#35083)\r\n* Add `spack buildcache push` (alias to `buildcache create`) (#34861)\r\n* Allow using `-j` to control the parallelism of concretization (#37608)\r\n* Add `--exclude` option to 'spack external find' (#35013)\r\n\r\n## Other new features of note\r\n\r\n* editing: add higher-precedence `SPACK_EDITOR` environment variable\r\n* Many YAML formatting improvements from updating `ruamel.yaml` to the latest version\r\n  supporting Python 3.6. (#31091, #24885, #37008).\r\n* Requirements and preferences should not define (non-git) versions (#37687, #37747)\r\n* Environments now store spack version\/commit in `spack.lock` (#32801)\r\n* User can specify the name of the `packages` subdirectory in repositories (#36643)\r\n* Add container images supporting RHEL alternatives (#36713)\r\n* make version(...) kwargs explicit (#36998)\r\n\r\n## Notable refactors\r\n\r\n* buildcache create: reproducible tarballs (#35623)\r\n* Bootstrap most of Spack dependencies using environments (#34029)\r\n* Split `satisfies(..., strict=True\/False)` into two functions (#35681)\r\n* spack install: simplify behavior when inside environments (#35206)\r\n\r\n## Binary cache and stack updates\r\n\r\n* Major simplification of CI boilerplate in stacks (#34272, #36045)\r\n* Many improvements to our CI pipeline's reliability\r\n\r\n## Removals, Deprecations, and disablements\r\n* Module file generation is disabled by default; you'll need to enable it to use it (#37258)\r\n* Support for Python 2 was deprecated in `v0.19.0` and has been removed. `v0.20.0` only\r\n  supports Python 3.6 and higher.\r\n* Deprecated target names are no longer recognized by Spack. Use generic names instead:\r\n  * `graviton` is now `cortex_a72`\r\n  * `graviton2` is now `neoverse_n1`\r\n  * `graviton3` is now `neoverse_v1`\r\n* `blacklist` and `whitelist` in module configuration were deprecated in `v0.19.0` and are\r\n  removed in this release. Use `exclude` and `include` instead.\r\n* The `ignore=` parameter of the `extends()` directive has been removed. It was not used by\r\n  any builtin packages and is no longer needed to avoid conflicts in environment views (#35588).\r\n* Support for the old YAML buildcache format has been removed. It was deprecated in `v0.19.0` (#34347).\r\n* `spack find --bootstrap` has been removed. It was deprecated in `v0.19.0`. Use `spack\r\n  --bootstrap find` instead (#33964).\r\n* `spack bootstrap trust` and `spack bootstrap untrust` are now removed, having been\r\n  deprecated in `v0.19.0`. Use `spack bootstrap enable` and `spack bootstrap disable`.\r\n* The `--mirror-name`, `--mirror-url`, and `--directory` options to buildcache and\r\n  mirror commands were deprecated in `v0.19.0` and have now been removed. They have been\r\n  replaced by positional arguments (#37457).\r\n* Deprecate `env:` as top level environment key (#37424)\r\n* deprecate buildcache create --rel, buildcache install --allow-root (#37285)\r\n* Support for very old perl-like spec format strings (e.g., `$_$@$%@+$+$=`) has been\r\n  removed (#37425). This was deprecated in in `v0.15` (#10556).\r\n\r\n## Notable Bugfixes\r\n\r\n* bugfix: don't fetch package metadata for unknown concrete specs (#36990)\r\n* Improve package source code context display on error  (#37655)\r\n* Relax environment manifest filename requirements and lockfile identification criteria (#37413)\r\n* `installer.py`: drop build edges of installed packages by default (#36707)\r\n* Bugfix: package requirements with git commits (#35057, #36347)\r\n* Package requirements: allow single specs in requirement lists (#36258)\r\n* conditional variant values: allow boolean (#33939)\r\n* spack uninstall: follow run\/link edges on --dependents (#34058)\r\n\r\n## Spack community stats\r\n\r\n* 7,179 total packages, 499 new since `v0.19.0`\r\n    * 329 new Python packages\r\n    * 31 new R packages\r\n* 336 people contributed to this release\r\n    * 317 committers to packages\r\n    * 62 committers to core","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/103708002\/reactions","total_count":13,"+1":0,"-1":0,"laugh":0,"hooray":13,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/98621708","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/98621708\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/98621708\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.19.2","id":98621708,"author":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4F4NkM","tag_name":"v0.19.2","target_commitish":"releases\/v0.19","name":"v0.19.2","draft":false,"immutable":false,"prerelease":false,"created_at":"2023-04-07T15:48:04Z","updated_at":"2023-04-08T12:19:30Z","published_at":"2023-04-08T12:18:43Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/102815146","id":102815146,"node_id":"RA_kwDOAPAIsc4GINWq","name":"spack-0.19.2.tar.gz","label":null,"uploader":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/x-gzip","state":"uploaded","size":9424447,"digest":null,"download_count":1527,"created_at":"2023-04-08T12:19:22Z","updated_at":"2023-04-08T12:19:30Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.19.2\/spack-0.19.2.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.19.2","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.19.2","body":"# v0.19.2 (2023-04-04)\r\n\r\n### Spack Bugfixes\r\n\r\n* Ignore global variant requirement for packages that do not define it (#35037)\r\n* Compiler wrapper: improved parsing of linker arguments (#35929, #35912)\r\n* Do not detect apple-clang as cce on macOS (#35974)\r\n* Views: fix support for optional Python extensions (#35489)\r\n* Views: fix issue where Python executable gets symlinked instead of copied (#34661)\r\n* Fix a bug where tests were not added when concretizing together (#35290)\r\n* Compiler flags: fix clang\/apple-clang c\/c++ standard flags (#35062)\r\n* Increase db timeout from 3s to 60s to improve stability of parallel installs (#35517)\r\n* Buildcache: improve error handling in downloads (#35568)\r\n* Module files for packages installed from buildcache have long placeholder paths abbreviated in configure args section (#36611)\r\n* Reduce verbosity of error messages regarding non-existing module files (#35502)\r\n* Ensure file with build environment variables is truncated when writing to it (#35673)\r\n* `spack config update` now works on active environments (#36542)\r\n* Packages UPC++ and GASNet-EX were updated (#36629)\r\n","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/98621708\/reactions","total_count":4,"+1":0,"-1":0,"laugh":0,"hooray":4,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/91964205","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/91964205\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/91964205\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.19.1","id":91964205,"author":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4Fe0Mt","tag_name":"v0.19.1","target_commitish":"releases\/v0.19","name":"v0.19.1","draft":false,"immutable":false,"prerelease":false,"created_at":"2023-02-09T09:24:14Z","updated_at":"2023-02-10T00:11:12Z","published_at":"2023-02-10T00:10:41Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/95012696","id":95012696,"node_id":"RA_kwDOAPAIsc4FqcdY","name":"spack-0.19.1.tar.gz","label":null,"uploader":{"login":"haampie","id":194764,"node_id":"MDQ6VXNlcjE5NDc2NA==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/194764?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/haampie","html_url":"https:\/\/github.com\/haampie","followers_url":"https:\/\/api.github.com\/users\/haampie\/followers","following_url":"https:\/\/api.github.com\/users\/haampie\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/haampie\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/haampie\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/haampie\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/haampie\/orgs","repos_url":"https:\/\/api.github.com\/users\/haampie\/repos","events_url":"https:\/\/api.github.com\/users\/haampie\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/haampie\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/gzip","state":"uploaded","size":9420035,"digest":null,"download_count":929,"created_at":"2023-02-10T00:11:08Z","updated_at":"2023-02-10T00:11:12Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.19.1\/spack-0.19.1.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.19.1","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.19.1","body":"# v0.19.1 (2023-02-07)\r\n\r\n### Spack Bugfixes\r\n\r\n* `buildcache create`: make \"file exists\" less verbose (#35019)\r\n* `spack mirror create`: don't change paths to urls (#34992)\r\n* Improve error message for requirements (#33988)\r\n* uninstall: fix accidental cubic complexity (#34005)\r\n* scons: fix signature for `install_args` (#34481)\r\n* Fix `combine_phase_logs` text encoding issues (#34657)\r\n* Use a module-like object to propagate changes in the MRO, when setting build env (#34059)\r\n* PackageBase should not define builder legacy attributes (#33942)\r\n* Forward lookup of the \"run_tests\" attribute (#34531)\r\n* Bugfix for timers (#33917, #33900)\r\n* Fix path handling in prefix inspections (#35318)\r\n* Fix libtool filter for Fujitsu compilers (#34916)\r\n* Bug fix for duplicate rpath errors on macOS when creating build caches (#34375)\r\n* FileCache: delete the new cache file on exception (#34623)\r\n* Propagate exceptions from Spack python console (#34547)\r\n* Tests: Fix a bug\/typo in a `config_values.py` fixture (#33886)\r\n* Various CI fixes (#33953, #34560, #34560, #34828)\r\n* Docs: remove monitors and analyzers, typos (#34358, #33926)\r\n* bump release version for tutorial command (#33859)\r\n","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/91964205\/reactions","total_count":7,"+1":0,"-1":0,"laugh":0,"hooray":5,"confused":0,"heart":2,"rocket":0,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/82773029","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/82773029\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/82773029\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.19.0","id":82773029,"author":{"login":"tgamblin","id":299842,"node_id":"MDQ6VXNlcjI5OTg0Mg==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/299842?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/tgamblin","html_url":"https:\/\/github.com\/tgamblin","followers_url":"https:\/\/api.github.com\/users\/tgamblin\/followers","following_url":"https:\/\/api.github.com\/users\/tgamblin\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/tgamblin\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/tgamblin\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/tgamblin\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/tgamblin\/orgs","repos_url":"https:\/\/api.github.com\/users\/tgamblin\/repos","events_url":"https:\/\/api.github.com\/users\/tgamblin\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/tgamblin\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4E7wQl","tag_name":"v0.19.0","target_commitish":"releases\/v0.19","name":"v0.19.0","draft":false,"immutable":false,"prerelease":false,"created_at":"2022-11-11T17:30:32Z","updated_at":"2022-11-11T18:46:41Z","published_at":"2022-11-11T18:39:38Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/84296166","id":84296166,"node_id":"RA_kwDOAPAIsc4FBkHm","name":"spack-0.19.0.tar.gz","label":null,"uploader":{"login":"tgamblin","id":299842,"node_id":"MDQ6VXNlcjI5OTg0Mg==","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/299842?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/tgamblin","html_url":"https:\/\/github.com\/tgamblin","followers_url":"https:\/\/api.github.com\/users\/tgamblin\/followers","following_url":"https:\/\/api.github.com\/users\/tgamblin\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/tgamblin\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/tgamblin\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/tgamblin\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/tgamblin\/orgs","repos_url":"https:\/\/api.github.com\/users\/tgamblin\/repos","events_url":"https:\/\/api.github.com\/users\/tgamblin\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/tgamblin\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/x-gzip","state":"uploaded","size":9420149,"digest":null,"download_count":2658,"created_at":"2022-11-11T18:46:34Z","updated_at":"2022-11-11T18:46:41Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.19.0\/spack-0.19.0.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.19.0","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.19.0","body":"# v0.19.0 (2022-11-11)\r\n\r\n`v0.19.0` is a major feature release.\r\n\r\n## Major features in this release\r\n\r\n1. **Package requirements**\r\n\r\n   Spack's traditional [package preferences](\r\n     https:\/\/spack.readthedocs.io\/en\/latest\/build_settings.html#package-preferences)\r\n   are soft, but we've added hard requriements to `packages.yaml` and `spack.yaml`\r\n   (#32528, #32369). Package requirements use the same syntax as specs:\r\n\r\n   ```yaml\r\n   packages:\r\n     libfabric:\r\n       require: \"@1.13.2\"\r\n     mpich:\r\n       require:\r\n       - one_of: [\"+cuda\", \"+rocm\"]\r\n   ```\r\n\r\n   More details in [the docs](\r\n     https:\/\/spack.readthedocs.io\/en\/latest\/build_settings.html#package-requirements).\r\n\r\n2. **Environment UI Improvements**\r\n\r\n   * Fewer surprising modifications to `spack.yaml` (#33711):\r\n\r\n     * `spack install` in an environment will no longer add to the `specs:` list; you'll\r\n       need to either use `spack add <spec>` or `spack install --add <spec>`.\r\n\r\n     * Similarly, `spack uninstall` will not remove from your environment's `specs:`\r\n       list; you'll need to use `spack remove` or `spack uninstall --remove`.\r\n\r\n     This will make it easier to manage an environment, as there is clear separation\r\n     between the stack to be installed (`spack.yaml`\/`spack.lock`) and which parts of\r\n     it should be installed (`spack install` \/ `spack uninstall`).\r\n\r\n   * `concretizer:unify:true` is now the default mode for new environments (#31787)\r\n\r\n     We see more users creating `unify:true` environments now. Users who need\r\n     `unify:false` can add it to their environment to get the old behavior. This will\r\n     concretize every spec in the environment independently.\r\n\r\n   * Include environment configuration from URLs (#29026, [docs](\r\n       https:\/\/spack.readthedocs.io\/en\/latest\/environments.html#included-configurations))\r\n\r\n     You can now include configuration in your environment directly from a URL:\r\n\r\n     ```yaml\r\n     spack:\r\n       include:\r\n       - https:\/\/github.com\/path\/to\/raw\/config\/compilers.yaml\r\n     ```\r\n\r\n4. **Multiple Build Systems**\r\n\r\n   An increasing number of packages in the ecosystem need the ability to support\r\n   multiple build systems (#30738, [docs](\r\n     https:\/\/spack.readthedocs.io\/en\/latest\/packaging_guide.html#multiple-build-systems)),\r\n   either across versions, across platforms, or within the same version of the software.\r\n   This has been hard to support through multiple inheritance, as methods from different\r\n   build system superclasses would conflict. `package.py` files can now define separate\r\n   builder classes with installation logic for different build systems, e.g.:\r\n\r\n   ```python\r\n   class ArpackNg(CMakePackage, AutotoolsPackage):\r\n\r\n       build_system(\r\n           conditional(\"cmake\", when=\"@0.64:\"),\r\n           conditional(\"autotools\", when=\"@:0.63\"),\r\n           default=\"cmake\",\r\n       )\r\n\r\n   class CMakeBuilder(spack.build_systems.cmake.CMakeBuilder):\r\n       def cmake_args(self):\r\n           pass\r\n\r\n   class Autotoolsbuilder(spack.build_systems.autotools.AutotoolsBuilder):\r\n       def configure_args(self):\r\n           pass\r\n   ```\r\n\r\n5. **Compiler and variant propagation**\r\n\r\n   Currently, compiler flags and variants are inconsistent: compiler flags set for a\r\n   package are inherited by its dependencies, while variants are not. We should have\r\n   these be consistent by allowing for inheritance to be enabled or disabled for both\r\n   variants and compiler flags.\r\n\r\n   Example syntax:\r\n   - `package ++variant`:\r\n         enabled variant that will be propagated to dependencies\r\n   - `package +variant`:\r\n         enabled variant that will NOT be propagated to dependencies\r\n   - `package ~~variant`:\r\n         disabled variant that will be propagated to dependencies\r\n   - `package ~variant`:\r\n         disabled variant that will NOT be propagated to dependencies\r\n   - `package cflags==-g`:\r\n         `cflags` will be propagated to dependencies\r\n   - `package cflags=-g`:\r\n         `cflags` will NOT be propagated to dependencies\r\n\r\n   Syntax for non-boolan variants is similar to compiler flags. More in the docs for\r\n   [variants](\r\n     https:\/\/spack.readthedocs.io\/en\/latest\/basic_usage.html#variants) and [compiler flags](\r\n     https:\/\/spack.readthedocs.io\/en\/latest\/basic_usage.html#compiler-flags).\r\n\r\n6. **Enhancements to git version specifiers**\r\n\r\n   * `v0.18.0` added the ability to use git commits as versions. You can now use the\r\n     `git.` prefix to specify git tags or branches as versions. All of these are valid git\r\n     versions in `v0.19` (#31200):\r\n\r\n     ```console\r\n     foo@abcdef1234abcdef1234abcdef1234abcdef1234      # raw commit\r\n     foo@git.abcdef1234abcdef1234abcdef1234abcdef1234  # commit with git prefix\r\n     foo@git.develop                                   # the develop branch\r\n     foo@git.0.19                                      # use the 0.19 tag\r\n     ```\r\n\r\n   * `v0.19` also gives you more control over how Spack interprets git versions, in case\r\n     Spack cannot detect the version from the git repository. You can suffix a git\r\n     version with `=<version>` to force Spack to concretize it as a particular version\r\n     (#30998, #31914, #32257):\r\n\r\n     ```console\r\n     # use mybranch, but treat it as version 3.2 for version comparison\r\n     foo@git.mybranch=3.2\r\n\r\n     # use the given commit, but treat it as develop for version comparison\r\n     foo@git.abcdef1234abcdef1234abcdef1234abcdef1234=develop\r\n     ```\r\n\r\n     More in [the docs](\r\n       https:\/\/spack.readthedocs.io\/en\/latest\/basic_usage.html#version-specifier)\r\n\r\n7. **Changes to Cray EX Support**\r\n\r\n   Cray machines have historically had their own \"platform\" within Spack, because we\r\n   needed to go through the module system to leverage compilers and MPI installations on\r\n   these machines. The Cray EX programming environment now provides standalone `craycc`\r\n   executables and proper `mpicc` wrappers, so Spack can treat EX machines like Linux\r\n   with extra packages (#29392).\r\n\r\n   We expect this to greatly reduce bugs, as external packages and compilers can now be\r\n   used by prefix instead of through modules. We will also no longer be subject to\r\n   reproducibility issues when modules change from Cray PE release to release and from\r\n   site to site. This also simplifies dealing with the underlying Linux OS on cray\r\n   systems, as Spack will properly model the machine's OS as either SuSE or RHEL.\r\n\r\n8. **Improvements to tests and testing in CI**\r\n\r\n   * `spack ci generate --tests` will generate a `.gitlab-ci.yml` file that not only does\r\n     builds but also runs tests for built packages (#27877). Public GitHub pipelines now\r\n     also run tests in CI.\r\n\r\n   * `spack test run --explicit` will only run tests for packages that are explicitly\r\n     installed, instead of all packages.\r\n\r\n9. **Experimental binding link model**\r\n\r\n   You can add a new option to `config.yaml` to make Spack embed absolute paths to\r\n   needed shared libraries in ELF executables and shared libraries on Linux (#31948, [docs](\r\n     https:\/\/spack.readthedocs.io\/en\/latest\/config_yaml.html#shared-linking-bind)):\r\n\r\n   ```yaml\r\n   config:\r\n     shared_linking:\r\n       type: rpath\r\n       bind: true\r\n   ```\r\n\r\n   This can improve launch time at scale for parallel applications, and it can make\r\n   installations less susceptible to environment variables like `LD_LIBRARY_PATH`, even\r\n   especially when dealing with external libraries that use `RUNPATH`. You can think of\r\n   this as a faster, even higher-precedence version of `RPATH`.\r\n\r\n## Other new features of note\r\n\r\n* `spack spec` prints dependencies more legibly. Dependencies in the output now appear\r\n  at the *earliest* level of indentation possible (#33406)\r\n* You can override `package.py` attributes like `url`, directly in `packages.yaml`\r\n  (#33275, [docs](\r\n    https:\/\/spack.readthedocs.io\/en\/latest\/build_settings.html#assigning-package-attributes))\r\n* There are a number of new architecture-related format strings you can use in Spack\r\n  configuration files to specify paths (#29810, [docs](\r\n    https:\/\/spack.readthedocs.io\/en\/latest\/configuration.html#config-file-variables))\r\n* Spack now supports bootstrapping Clingo on Windows (#33400)\r\n* There is now support for an `RPATH`-like library model on Windows (#31930)\r\n\r\n## Performance Improvements\r\n\r\n* Major performance improvements for installation from binary caches (#27610, #33628,\r\n  #33636, #33608, #33590, #33496)\r\n* Test suite can now be parallelized using `xdist` (used in GitHub Actions) (#32361)\r\n* Reduce lock contention for parallel builds in environments (#31643)\r\n\r\n## New binary caches and stacks\r\n\r\n* We now build nearly all of E4S with `oneapi` in our buildcache (#31781, #31804,\r\n  #31804, #31803, #31840, #31991, #32117, #32107, #32239)\r\n* Added 3 new machine learning-centric stacks to binary cache: `x86_64_v3`, CUDA, ROCm\r\n  (#31592, #33463)\r\n\r\n## Removals and Deprecations\r\n\r\n* Support for Python 3.5 is dropped (#31908). Only Python 2.7 and 3.6+ are officially\r\n  supported.\r\n\r\n* This is the last Spack release that will support Python 2 (#32615). Spack `v0.19`\r\n  will emit a deprecation warning if you run it with Python 2, and Python 2 support will\r\n  soon be removed from the `develop` branch.\r\n\r\n* `LD_LIBRARY_PATH` is no longer set by default by `spack load` or module loads.\r\n\r\n  Setting `LD_LIBRARY_PATH` in Spack environments\/modules can cause binaries from\r\n  outside of Spack to crash, and Spack's own builds use `RPATH` and do not need\r\n  `LD_LIBRARY_PATH` set in order to run. If you still want the old behavior, you\r\n  can run these commands to configure Spack to set `LD_LIBRARY_PATH`:\r\n\r\n  ```console\r\n  spack config add modules:prefix_inspections:lib64:[LD_LIBRARY_PATH]\r\n  spack config add modules:prefix_inspections:lib:[LD_LIBRARY_PATH]\r\n  ```\r\n\r\n* The `spack:concretization:[together|separately]` has been removed after being\r\n  deprecated in `v0.18`. Use `concretizer:unify:[true|false]`.\r\n* `config:module_roots` is no longer supported after being deprecated in `v0.18`. Use\r\n  configuration in module sets instead (#28659, [docs](\r\n    https:\/\/spack.readthedocs.io\/en\/latest\/module_file_support.html)).\r\n* `spack activate` and `spack deactivate` are no longer supported, having been\r\n  deprecated in `v0.18`. Use an environment with a view instead of\r\n  activating\/deactivating ([docs](\r\n    https:\/\/spack.readthedocs.io\/en\/latest\/environments.html#configuration-in-spack-yaml)).\r\n* The old YAML format for buildcaches is now deprecated (#33707). If you are using an\r\n  old buildcache with YAML metadata you will need to regenerate it with JSON metadata.\r\n* `spack bootstrap trust` and `spack bootstrap untrust` are deprecated in favor of\r\n  `spack bootstrap enable` and `spack bootstrap disable` and will be removed in `v0.20`.\r\n  (#33600)\r\n* The `graviton2` architecture has been renamed to `neoverse_n1`, and `graviton3`\r\n  is now `neoverse_v1`. Buildcaches using the old architecture names will need to be rebuilt.\r\n* The terms `blacklist` and `whitelist` have been replaced with `include` and `exclude`\r\n  in all configuration files (#31569). You can use `spack config update` to\r\n  automatically fix your configuration files.\r\n\r\n## Notable Bugfixes\r\n\r\n* Permission setting on installation now handles effective uid properly (#19980)\r\n* `buildable:true` for an MPI implementation now overrides `buildable:false` for `mpi` (#18269)\r\n* Improved error messages when attempting to use an unconfigured compiler (#32084)\r\n* Do not punish explicitly requested compiler mismatches in the solver (#30074)\r\n* `spack stage`: add missing --fresh and --reuse (#31626)\r\n* Fixes for adding build system executables like `cmake` to package scope (#31739)\r\n* Bugfix for binary relocation with aliased strings produced by newer `binutils` (#32253)\r\n\r\n## Spack community stats\r\n\r\n* 6,751 total packages, 335 new since `v0.18.0`\r\n    * 141 new Python packages\r\n    * 89 new R packages\r\n* 303 people contributed to this release\r\n    * 287 committers to packages\r\n    * 57 committers to core","reactions":{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/82773029\/reactions","total_count":20,"+1":0,"-1":0,"laugh":0,"hooray":11,"confused":0,"heart":1,"rocket":8,"eyes":0}},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/72452136","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/72452136\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/72452136\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.18.1","id":72452136,"author":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4EUYgo","tag_name":"v0.18.1","target_commitish":"releases\/v0.18","name":"v0.18.1","draft":false,"immutable":false,"prerelease":false,"created_at":"2022-07-20T06:34:13Z","updated_at":"2022-07-20T17:13:35Z","published_at":"2022-07-20T17:12:57Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/72163464","id":72163464,"node_id":"RA_kwDOAPAIsc4ETSCI","name":"spack-0.18.1.tar.gz","label":null,"uploader":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/gzip","state":"uploaded","size":7553589,"digest":null,"download_count":1130,"created_at":"2022-07-20T17:13:30Z","updated_at":"2022-07-20T17:13:35Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.18.1\/spack-0.18.1.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.18.1","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.18.1","body":"# v0.18.1 (2022-07-19)\r\n\r\n### Spack Bugfixes\r\n* Fix several bugs related to bootstrapping (#30834,#31042,#31180)\r\n* Fix a regression that was causing spec hashes to differ between Python 2 and Python 3 (#31092)\r\n* Fixed compiler flags for oneAPI and DPC++ (#30856)\r\n* Fixed several issues related to concretization (#31142,#31153,#31170,#31226)\r\n* Improved support for Cray manifest file and `spack external find` (#31144,#31201,#31173.#31186)\r\n* Assign a version to openSUSE Tumbleweed according to the GLIBC version in the system (#19895) \r\n* Improved Dockerfile generation for `spack containerize` (#29741,#31321)\r\n* Fixed a few bugs related to concurrent execution of commands (#31509,#31493,#31477)  \r\n\r\n### Package updates\r\n* WarpX: add v22.06, fixed libs property (#30866,#31102)\r\n* openPMD: add v0.14.5, update recipe for @develop (#29484,#31023)\r\n\r\n**Full Changelog**: https:\/\/github.com\/spack\/spack\/compare\/v0.18.0...v0.18.1"},{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/72394373","assets_url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/72394373\/assets","upload_url":"https:\/\/uploads.github.com\/repos\/spack\/spack\/releases\/72394373\/assets{?name,label}","html_url":"https:\/\/github.com\/spack\/spack\/releases\/tag\/v0.17.3","id":72394373,"author":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOAPAIsc4EUKaF","tag_name":"v0.17.3","target_commitish":"releases\/v0.17","name":"v0.17.3","draft":false,"immutable":false,"prerelease":false,"created_at":"2022-07-15T13:31:21Z","updated_at":"2022-07-20T06:42:16Z","published_at":"2022-07-20T06:41:10Z","assets":[{"url":"https:\/\/api.github.com\/repos\/spack\/spack\/releases\/assets\/72104914","id":72104914,"node_id":"RA_kwDOAPAIsc4ETDvS","name":"spack-0.17.3.tar.gz","label":null,"uploader":{"login":"alalazo","id":4199709,"node_id":"MDQ6VXNlcjQxOTk3MDk=","avatar_url":"https:\/\/avatars.githubusercontent.com\/u\/4199709?v=4","gravatar_id":"","url":"https:\/\/api.github.com\/users\/alalazo","html_url":"https:\/\/github.com\/alalazo","followers_url":"https:\/\/api.github.com\/users\/alalazo\/followers","following_url":"https:\/\/api.github.com\/users\/alalazo\/following{\/other_user}","gists_url":"https:\/\/api.github.com\/users\/alalazo\/gists{\/gist_id}","starred_url":"https:\/\/api.github.com\/users\/alalazo\/starred{\/owner}{\/repo}","subscriptions_url":"https:\/\/api.github.com\/users\/alalazo\/subscriptions","organizations_url":"https:\/\/api.github.com\/users\/alalazo\/orgs","repos_url":"https:\/\/api.github.com\/users\/alalazo\/repos","events_url":"https:\/\/api.github.com\/users\/alalazo\/events{\/privacy}","received_events_url":"https:\/\/api.github.com\/users\/alalazo\/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application\/gzip","state":"uploaded","size":6751805,"digest":null,"download_count":93,"created_at":"2022-07-20T06:42:10Z","updated_at":"2022-07-20T06:42:16Z","browser_download_url":"https:\/\/github.com\/spack\/spack\/releases\/download\/v0.17.3\/spack-0.17.3.tar.gz"}],"tarball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/tarball\/v0.17.3","zipball_url":"https:\/\/api.github.com\/repos\/spack\/spack\/zipball\/v0.17.3","body":"# v0.17.3 (2022-07-14)\r\n\r\n### Spack bugfixes\r\n\r\n* Fix missing chgrp on symlinks in package installations (#30743)\r\n* Allow having non-existing upstreams (#30744, #30746)\r\n* Fix `spack stage` with custom paths (#30448)\r\n* Fix failing call for `spack buildcache save-specfile` (#30637)\r\n* Fix globbing in compiler wrapper (#30699)\r\n\r\n**Full Changelog**: https:\/\/github.com\/spack\/spack\/compare\/v0.17.2...v0.17.3"}]