Add top-level CHANGELOG.md
with release notes.
This commit is contained in:
parent
8eeb64096c
commit
f7de8942b8
1 changed files with 262 additions and 0 deletions
262
CHANGELOG.md
Normal file
262
CHANGELOG.md
Normal file
|
@ -0,0 +1,262 @@
|
|||
# v0.13.0 (2019-10-25)
|
||||
|
||||
`v0.13.0` is our biggest Spack release yet, with *many* new major features.
|
||||
From facility deployment to improved environments, microarchitecture
|
||||
support, and auto-generated build farms, this release has features for all of
|
||||
our users.
|
||||
|
||||
Spack grew by over 700 packages in the past year, and the project now has
|
||||
over 450 contributors. Thanks to all of you for making this release possible.
|
||||
|
||||
## Major new core features
|
||||
- Chaining: use dependencies from external "upstream" Spack instances
|
||||
- Environments now behave more like virtualenv/conda
|
||||
- Each env has a *view*: a directory with all packages symlinked in
|
||||
- Activating an environment sets `PATH`, `LD_LIBRARY_PATH`, `CPATH`,
|
||||
`CMAKE_PREFIX_PATH`, `PKG_CONFIG_PATH`, etc. to point to this view.
|
||||
- Spack detects and builds specifically for your microarchitecture
|
||||
- named, understandable targets like `skylake`, `broadwell`, `power9`, `zen2`
|
||||
- Spack knows which compilers can build for which architectures
|
||||
- Packages can easily query support for features like `avx512` and `sse3`
|
||||
- You can pick a target with, e.g. `spack install foo target=icelake`
|
||||
- Spack stacks: combinatorial environments for facility deployment
|
||||
- Environments can now build cartesian products of specs (with `matrix:`)
|
||||
- Conditional syntax support to exclude certain builds from the stack
|
||||
- Projections: ability to build easily navigable symlink trees environments
|
||||
- Support no-source packages (BundlePackage) to aggregate related packages
|
||||
- Extensions: users can write custom commands that live outside of Spack repo
|
||||
- Support ARM and Fujitsu compilers
|
||||
|
||||
## CI/build farm support
|
||||
- `spack release-jobs` can detect `package.py` changes and generate
|
||||
`.gitlab-ci.yml` to create binaries for an environment or stack
|
||||
in parallel (initial support -- will change in future release).
|
||||
- Results of build pipelines can be uploaded to a CDash server.
|
||||
- Spack can now upload/fetch from package mirrors in Amazon S3
|
||||
|
||||
## New commands/options
|
||||
- `spack mirror create --all` downloads *all* package sources/resources/patches
|
||||
- `spack dev-build` runs phases of the install pipeline on the working directory
|
||||
- `spack deprecate` permanently symlinks an old, unwanted package to a new one
|
||||
- `spack verify` chcecks that packages' files match what was originally installed
|
||||
- `spack find --json` prints `JSON` that is easy to parse with, e.g. `jq`
|
||||
- `spack find --format FORMAT` allows you to flexibly print package metadata
|
||||
- `spack spec --json` prints JSON version of `spec.yaml`
|
||||
|
||||
## Selected improvements
|
||||
- Auto-build requested compilers if they do not exist
|
||||
- Spack automatically adds `RPATHs` needed to make executables find compiler
|
||||
runtime libraries (e.g., path to newer `libstdc++` in `icpc` or `g++`)
|
||||
- setup-env.sh is now compatible with Bash, Dash, and Zsh
|
||||
- Spack now caps build jobs at min(16, ncores) by default
|
||||
- `spack compiler find` now also throttles number of spawned processes
|
||||
- Spack now writes stage directories directly to `$TMPDIR` instead of
|
||||
symlinking stages within `$spack/var/spack/cache`.
|
||||
- Improved and more powerful `spec` format strings
|
||||
- You can pass a `spec.yaml` file anywhere in the CLI you can type a spec.
|
||||
- Many improvements to binary caching
|
||||
- Gradually supporting new features from Environment Modules v4
|
||||
- `spack edit` respects `VISUAL` environment variable
|
||||
- Simplified package syntax for specifying build/run environment modifications
|
||||
- Numerous improvements to support for environments across Spack commands
|
||||
- Concretization improvements
|
||||
|
||||
## Documentation
|
||||
- Multi-lingual documentation (Started a Japanese translation)
|
||||
- Tutorial now has its own site at spack-tutorial.readthedocs.io
|
||||
- This enables us to keep multiple versions of the tutorial around
|
||||
|
||||
## Deprecations
|
||||
- Spack no longer supports dotkit (LLNL's homegrown, now deprecated module tool)
|
||||
- `spack build`, `spack configure`, `spack diy` deprecated in favor of
|
||||
`spack dev-build` and `spack install`
|
||||
|
||||
## Important package changes
|
||||
- 3,563 total packages (718 added since 0.12.1)
|
||||
- Spack now defaults to Python 3 (previously preferred 2.7 by default)
|
||||
- Much improved ARM support thanks to Fugaku (RIKEN) and SNL teams
|
||||
- Support new special versions: master, trunk, and head (in addition to develop)
|
||||
- Better finding logic for libraries and headers
|
||||
|
||||
|
||||
# v0.12.1 (2018-11-13)
|
||||
|
||||
This is a minor bugfix release, with a minor fix in the tutorial and a `flake8` fix.
|
||||
|
||||
Bugfixes
|
||||
* Add `r` back to regex strings in binary distribution
|
||||
* Fix gcc install version in the tutorial
|
||||
|
||||
|
||||
# v0.12.0 (2018-11-13)
|
||||
|
||||
## Major new features
|
||||
- Spack environments
|
||||
- `spack.yaml` and `spack.lock` files for tracking dependencies
|
||||
- Custom configurations via command line
|
||||
- Better support for linking Python packages into view directories
|
||||
- Packages have more control over compiler flags via flag handlers
|
||||
- Better support for module file generation
|
||||
- Better support for Intel compilers, Intel MPI, etc.
|
||||
- Many performance improvements, improved startup time
|
||||
|
||||
## License
|
||||
- As of this release, all of Spack is permissively licensed under Apache-2.0 or MIT, at the user's option.
|
||||
- Consents from over 300 contributors were obtained to make this relicense possible.
|
||||
- Previous versions were distributed under the LGPL license, version 2.1.
|
||||
|
||||
## New packages
|
||||
Over 2,900 packages (800 added since last year)
|
||||
|
||||
Spack would not be possible without our community. Thanks to all of our
|
||||
[contributors](https://github.com/spack/spack/graphs/contributors) for the
|
||||
new features and packages in this release!
|
||||
|
||||
|
||||
# v0.11.2 (2018-02-07)
|
||||
|
||||
This release contains the following fixes:
|
||||
|
||||
* Fixes for `gfortran` 7 compiler detection (#7017)
|
||||
* Fixes for exceptions thrown during module generation (#7173)
|
||||
|
||||
|
||||
# v0.11.1 (2018-01-19)
|
||||
|
||||
This release contains bugfixes for compiler flag handling. There were issues in `v0.11.0` that caused some packages to be built without proper optimization.
|
||||
|
||||
Fixes:
|
||||
* Issue #6999: FFTW installed with Spack 0.11.0 gets built without optimisations
|
||||
|
||||
Includes:
|
||||
* PR #6415: Fixes for flag handling behavior
|
||||
* PR #6960: Fix type issues with setting flag handlers
|
||||
* 880e319: Upstream fixes to `list_url` in various R packages
|
||||
|
||||
|
||||
# v0.11.0 (2018-01-17)
|
||||
|
||||
Spack v0.11.0 contains many improvements since v0.10.0.
|
||||
Below is a summary of the major features, broken down by category.
|
||||
|
||||
## New packages
|
||||
- Spack now has 2,178 packages (from 1,114 in v0.10.0)
|
||||
- Many more Python packages (356) and R packages (471)
|
||||
- 48 Exascale Proxy Apps (try `spack list -t proxy-app`)
|
||||
|
||||
|
||||
## Core features for users
|
||||
- Relocatable binary packages (`spack buildcache`, #4854)
|
||||
- Spack now fully supports Python 3 (#3395)
|
||||
- Packages can be tagged and searched by tags (#4786)
|
||||
- Custom module file templates using Jinja (#3183)
|
||||
- `spack bootstrap` command now sets up a basic module environment (#3057)
|
||||
- Simplified and better organized help output (#3033)
|
||||
- Improved, less redundant `spack install` output (#5714, #5950)
|
||||
- Reworked `spack dependents` and `spack dependencies` commands (#4478)
|
||||
|
||||
|
||||
## Major new features for packagers
|
||||
- Multi-valued variants (#2386)
|
||||
- New `conflicts()` directive (#3125)
|
||||
- New dependency type: `test` dependencies (#5132)
|
||||
- Packages can require their own patches on dependencies (#5476)
|
||||
- `depends_on(..., patches=<patch list>)`
|
||||
- Build interface for passing linker information through Specs (#1875)
|
||||
- Major packages that use blas/lapack now use this interface
|
||||
- Flag handlers allow packages more control over compiler flags (#6415)
|
||||
- Package subclasses support many more build systems:
|
||||
- autotools, perl, qmake, scons, cmake, makefile, python, R, WAF
|
||||
- package-level support for installing Intel HPC products (#4300)
|
||||
- `spack blame` command shows contributors to packages (#5522)
|
||||
- `spack create` now guesses many more build systems (#2707)
|
||||
- Better URL parsing to guess package version URLs (#2972)
|
||||
- Much improved `PythonPackage` support (#3367)
|
||||
|
||||
|
||||
## Core
|
||||
- Much faster concretization (#5716, #5783)
|
||||
- Improved output redirection (redirecting build output works properly #5084)
|
||||
- Numerous improvements to internal structure and APIs
|
||||
|
||||
|
||||
## Tutorials & Documentation
|
||||
- Many updates to documentation
|
||||
- [New tutorial material from SC17](https://spack.readthedocs.io/en/latest/tutorial.html)
|
||||
- configuration
|
||||
- build systems
|
||||
- build interface
|
||||
- working with module generation
|
||||
- Documentation on docker workflows and best practices
|
||||
|
||||
|
||||
## Selected improvements and bug fixes
|
||||
- No longer build Python eggs -- installations are plain directories (#3587)
|
||||
- Improved filtering of system paths from build PATHs and RPATHs (#2083, #3910)
|
||||
- Git submodules are properly handled on fetch (#3956)
|
||||
- Can now set default number of parallel build jobs in `config.yaml`
|
||||
- Improvements to `setup-env.csh` (#4044)
|
||||
- Better default compiler discovery on Mac OS X (#3427)
|
||||
- clang will automatically mix with gfortran
|
||||
- Improved compiler detection on Cray machines (#3075)
|
||||
- Better support for IBM XL compilers
|
||||
- Better tab completion
|
||||
- Resume gracefully after prematurely terminated partial installs (#4331)
|
||||
- Better mesa support (#5170)
|
||||
|
||||
|
||||
Spack would not be possible without our community. Thanks to all of our
|
||||
[contributors](https://github.com/spack/spack/graphs/contributors) for the
|
||||
new features and packages in this release!
|
||||
|
||||
|
||||
# v0.10.0 (2017-01-17)
|
||||
|
||||
This is Spack `v0.10.0`. With this release, we will start to push Spack
|
||||
releases more regularly. This is the last Spack release without
|
||||
automated package testing. With the next release, we will begin to run
|
||||
package tests in addition to unit tests.
|
||||
|
||||
Spack has grown rapidly from 422 to
|
||||
[1,114 packages](https://spack.readthedocs.io/en/v0.10.0/package_list.html),
|
||||
thanks to the hard work of over 100 contributors. Below is a condensed
|
||||
version of all the changes since `v0.9.1`.
|
||||
|
||||
### Packages
|
||||
- Grew from 422 to 1,114 packages
|
||||
- Includes major updates like X11, Qt
|
||||
- Expanded HPC, R, and Python ecosystems
|
||||
|
||||
### Core
|
||||
- Major speed improvements for spack find and concretization
|
||||
- Completely reworked architecture support
|
||||
- Platforms can have front-end and back-end OS/target combinations
|
||||
- Much better support for Cray and BG/Q cross-compiled environments
|
||||
- Downloads are now cached locally
|
||||
- Support installations in deeply nested directories: patch long shebangs using `sbang`
|
||||
|
||||
### Basic usage
|
||||
- Easier global configuration via config.yaml
|
||||
- customize install, stage, and cache locations
|
||||
- Hierarchical configuration scopes: default, site, user
|
||||
- Platform-specific scopes allow better per-platform defaults
|
||||
- Ability to set `cflags`, `cxxflags`, `fflags` on the command line
|
||||
- YAML-configurable support for both Lmod and tcl modules in mainline
|
||||
- `spack install` supports --dirty option for emergencies
|
||||
|
||||
### For developers
|
||||
- Support multiple dependency types: `build`, `link`, and `run`
|
||||
- Added `Package` base classes for custom build systems
|
||||
- `AutotoolsPackage`, `CMakePackage`, `PythonPackage`, etc.
|
||||
- `spack create` now guesses many more build systems
|
||||
- Development environment integration with `spack setup`
|
||||
- New interface to pass linking information via `spec` objects
|
||||
- Currently used for `BLAS`/`LAPACK`/`SCALAPACK` libraries
|
||||
- Polymorphic virtual dependency attributes: `spec['blas'].blas_libs`
|
||||
|
||||
### Testing & Documentation
|
||||
- Unit tests run continuously on Travis CI for Mac and Linux
|
||||
- Switched from `nose` to `pytest` for unit tests.
|
||||
- Unit tests take 1 minute now instead of 8
|
||||
- Massively expanded documentation
|
||||
- Docs are now hosted on [spack.readthedocs.io](http://spack.readthedocs.io)
|
Loading…
Reference in a new issue