Skip to content

Commit f7de894

Browse files
committed
Add top-level CHANGELOG.md with release notes.
1 parent 8eeb640 commit f7de894

File tree

1 file changed

+262
-0
lines changed

1 file changed

+262
-0
lines changed

CHANGELOG.md

Lines changed: 262 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,262 @@
1+
# v0.13.0 (2019-10-25)
2+
3+
`v0.13.0` is our biggest Spack release yet, with *many* new major features.
4+
From facility deployment to improved environments, microarchitecture
5+
support, and auto-generated build farms, this release has features for all of
6+
our users.
7+
8+
Spack grew by over 700 packages in the past year, and the project now has
9+
over 450 contributors. Thanks to all of you for making this release possible.
10+
11+
## Major new core features
12+
- Chaining: use dependencies from external "upstream" Spack instances
13+
- Environments now behave more like virtualenv/conda
14+
- Each env has a *view*: a directory with all packages symlinked in
15+
- Activating an environment sets `PATH`, `LD_LIBRARY_PATH`, `CPATH`,
16+
`CMAKE_PREFIX_PATH`, `PKG_CONFIG_PATH`, etc. to point to this view.
17+
- Spack detects and builds specifically for your microarchitecture
18+
- named, understandable targets like `skylake`, `broadwell`, `power9`, `zen2`
19+
- Spack knows which compilers can build for which architectures
20+
- Packages can easily query support for features like `avx512` and `sse3`
21+
- You can pick a target with, e.g. `spack install foo target=icelake`
22+
- Spack stacks: combinatorial environments for facility deployment
23+
- Environments can now build cartesian products of specs (with `matrix:`)
24+
- Conditional syntax support to exclude certain builds from the stack
25+
- Projections: ability to build easily navigable symlink trees environments
26+
- Support no-source packages (BundlePackage) to aggregate related packages
27+
- Extensions: users can write custom commands that live outside of Spack repo
28+
- Support ARM and Fujitsu compilers
29+
30+
## CI/build farm support
31+
- `spack release-jobs` can detect `package.py` changes and generate
32+
`.gitlab-ci.yml` to create binaries for an environment or stack
33+
in parallel (initial support -- will change in future release).
34+
- Results of build pipelines can be uploaded to a CDash server.
35+
- Spack can now upload/fetch from package mirrors in Amazon S3
36+
37+
## New commands/options
38+
- `spack mirror create --all` downloads *all* package sources/resources/patches
39+
- `spack dev-build` runs phases of the install pipeline on the working directory
40+
- `spack deprecate` permanently symlinks an old, unwanted package to a new one
41+
- `spack verify` chcecks that packages' files match what was originally installed
42+
- `spack find --json` prints `JSON` that is easy to parse with, e.g. `jq`
43+
- `spack find --format FORMAT` allows you to flexibly print package metadata
44+
- `spack spec --json` prints JSON version of `spec.yaml`
45+
46+
## Selected improvements
47+
- Auto-build requested compilers if they do not exist
48+
- Spack automatically adds `RPATHs` needed to make executables find compiler
49+
runtime libraries (e.g., path to newer `libstdc++` in `icpc` or `g++`)
50+
- setup-env.sh is now compatible with Bash, Dash, and Zsh
51+
- Spack now caps build jobs at min(16, ncores) by default
52+
- `spack compiler find` now also throttles number of spawned processes
53+
- Spack now writes stage directories directly to `$TMPDIR` instead of
54+
symlinking stages within `$spack/var/spack/cache`.
55+
- Improved and more powerful `spec` format strings
56+
- You can pass a `spec.yaml` file anywhere in the CLI you can type a spec.
57+
- Many improvements to binary caching
58+
- Gradually supporting new features from Environment Modules v4
59+
- `spack edit` respects `VISUAL` environment variable
60+
- Simplified package syntax for specifying build/run environment modifications
61+
- Numerous improvements to support for environments across Spack commands
62+
- Concretization improvements
63+
64+
## Documentation
65+
- Multi-lingual documentation (Started a Japanese translation)
66+
- Tutorial now has its own site at spack-tutorial.readthedocs.io
67+
- This enables us to keep multiple versions of the tutorial around
68+
69+
## Deprecations
70+
- Spack no longer supports dotkit (LLNL's homegrown, now deprecated module tool)
71+
- `spack build`, `spack configure`, `spack diy` deprecated in favor of
72+
`spack dev-build` and `spack install`
73+
74+
## Important package changes
75+
- 3,563 total packages (718 added since 0.12.1)
76+
- Spack now defaults to Python 3 (previously preferred 2.7 by default)
77+
- Much improved ARM support thanks to Fugaku (RIKEN) and SNL teams
78+
- Support new special versions: master, trunk, and head (in addition to develop)
79+
- Better finding logic for libraries and headers
80+
81+
82+
# v0.12.1 (2018-11-13)
83+
84+
This is a minor bugfix release, with a minor fix in the tutorial and a `flake8` fix.
85+
86+
Bugfixes
87+
* Add `r` back to regex strings in binary distribution
88+
* Fix gcc install version in the tutorial
89+
90+
91+
# v0.12.0 (2018-11-13)
92+
93+
## Major new features
94+
- Spack environments
95+
- `spack.yaml` and `spack.lock` files for tracking dependencies
96+
- Custom configurations via command line
97+
- Better support for linking Python packages into view directories
98+
- Packages have more control over compiler flags via flag handlers
99+
- Better support for module file generation
100+
- Better support for Intel compilers, Intel MPI, etc.
101+
- Many performance improvements, improved startup time
102+
103+
## License
104+
- As of this release, all of Spack is permissively licensed under Apache-2.0 or MIT, at the user's option.
105+
- Consents from over 300 contributors were obtained to make this relicense possible.
106+
- Previous versions were distributed under the LGPL license, version 2.1.
107+
108+
## New packages
109+
Over 2,900 packages (800 added since last year)
110+
111+
Spack would not be possible without our community. Thanks to all of our
112+
[contributors](https://github.com/spack/spack/graphs/contributors) for the
113+
new features and packages in this release!
114+
115+
116+
# v0.11.2 (2018-02-07)
117+
118+
This release contains the following fixes:
119+
120+
* Fixes for `gfortran` 7 compiler detection (#7017)
121+
* Fixes for exceptions thrown during module generation (#7173)
122+
123+
124+
# v0.11.1 (2018-01-19)
125+
126+
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.
127+
128+
Fixes:
129+
* Issue #6999: FFTW installed with Spack 0.11.0 gets built without optimisations
130+
131+
Includes:
132+
* PR #6415: Fixes for flag handling behavior
133+
* PR #6960: Fix type issues with setting flag handlers
134+
* 880e319: Upstream fixes to `list_url` in various R packages
135+
136+
137+
# v0.11.0 (2018-01-17)
138+
139+
Spack v0.11.0 contains many improvements since v0.10.0.
140+
Below is a summary of the major features, broken down by category.
141+
142+
## New packages
143+
- Spack now has 2,178 packages (from 1,114 in v0.10.0)
144+
- Many more Python packages (356) and R packages (471)
145+
- 48 Exascale Proxy Apps (try `spack list -t proxy-app`)
146+
147+
148+
## Core features for users
149+
- Relocatable binary packages (`spack buildcache`, #4854)
150+
- Spack now fully supports Python 3 (#3395)
151+
- Packages can be tagged and searched by tags (#4786)
152+
- Custom module file templates using Jinja (#3183)
153+
- `spack bootstrap` command now sets up a basic module environment (#3057)
154+
- Simplified and better organized help output (#3033)
155+
- Improved, less redundant `spack install` output (#5714, #5950)
156+
- Reworked `spack dependents` and `spack dependencies` commands (#4478)
157+
158+
159+
## Major new features for packagers
160+
- Multi-valued variants (#2386)
161+
- New `conflicts()` directive (#3125)
162+
- New dependency type: `test` dependencies (#5132)
163+
- Packages can require their own patches on dependencies (#5476)
164+
- `depends_on(..., patches=<patch list>)`
165+
- Build interface for passing linker information through Specs (#1875)
166+
- Major packages that use blas/lapack now use this interface
167+
- Flag handlers allow packages more control over compiler flags (#6415)
168+
- Package subclasses support many more build systems:
169+
- autotools, perl, qmake, scons, cmake, makefile, python, R, WAF
170+
- package-level support for installing Intel HPC products (#4300)
171+
- `spack blame` command shows contributors to packages (#5522)
172+
- `spack create` now guesses many more build systems (#2707)
173+
- Better URL parsing to guess package version URLs (#2972)
174+
- Much improved `PythonPackage` support (#3367)
175+
176+
177+
## Core
178+
- Much faster concretization (#5716, #5783)
179+
- Improved output redirection (redirecting build output works properly #5084)
180+
- Numerous improvements to internal structure and APIs
181+
182+
183+
## Tutorials & Documentation
184+
- Many updates to documentation
185+
- [New tutorial material from SC17](https://spack.readthedocs.io/en/latest/tutorial.html)
186+
- configuration
187+
- build systems
188+
- build interface
189+
- working with module generation
190+
- Documentation on docker workflows and best practices
191+
192+
193+
## Selected improvements and bug fixes
194+
- No longer build Python eggs -- installations are plain directories (#3587)
195+
- Improved filtering of system paths from build PATHs and RPATHs (#2083, #3910)
196+
- Git submodules are properly handled on fetch (#3956)
197+
- Can now set default number of parallel build jobs in `config.yaml`
198+
- Improvements to `setup-env.csh` (#4044)
199+
- Better default compiler discovery on Mac OS X (#3427)
200+
- clang will automatically mix with gfortran
201+
- Improved compiler detection on Cray machines (#3075)
202+
- Better support for IBM XL compilers
203+
- Better tab completion
204+
- Resume gracefully after prematurely terminated partial installs (#4331)
205+
- Better mesa support (#5170)
206+
207+
208+
Spack would not be possible without our community. Thanks to all of our
209+
[contributors](https://github.com/spack/spack/graphs/contributors) for the
210+
new features and packages in this release!
211+
212+
213+
# v0.10.0 (2017-01-17)
214+
215+
This is Spack `v0.10.0`. With this release, we will start to push Spack
216+
releases more regularly. This is the last Spack release without
217+
automated package testing. With the next release, we will begin to run
218+
package tests in addition to unit tests.
219+
220+
Spack has grown rapidly from 422 to
221+
[1,114 packages](https://spack.readthedocs.io/en/v0.10.0/package_list.html),
222+
thanks to the hard work of over 100 contributors. Below is a condensed
223+
version of all the changes since `v0.9.1`.
224+
225+
### Packages
226+
- Grew from 422 to 1,114 packages
227+
- Includes major updates like X11, Qt
228+
- Expanded HPC, R, and Python ecosystems
229+
230+
### Core
231+
- Major speed improvements for spack find and concretization
232+
- Completely reworked architecture support
233+
- Platforms can have front-end and back-end OS/target combinations
234+
- Much better support for Cray and BG/Q cross-compiled environments
235+
- Downloads are now cached locally
236+
- Support installations in deeply nested directories: patch long shebangs using `sbang`
237+
238+
### Basic usage
239+
- Easier global configuration via config.yaml
240+
- customize install, stage, and cache locations
241+
- Hierarchical configuration scopes: default, site, user
242+
- Platform-specific scopes allow better per-platform defaults
243+
- Ability to set `cflags`, `cxxflags`, `fflags` on the command line
244+
- YAML-configurable support for both Lmod and tcl modules in mainline
245+
- `spack install` supports --dirty option for emergencies
246+
247+
### For developers
248+
- Support multiple dependency types: `build`, `link`, and `run`
249+
- Added `Package` base classes for custom build systems
250+
- `AutotoolsPackage`, `CMakePackage`, `PythonPackage`, etc.
251+
- `spack create` now guesses many more build systems
252+
- Development environment integration with `spack setup`
253+
- New interface to pass linking information via `spec` objects
254+
- Currently used for `BLAS`/`LAPACK`/`SCALAPACK` libraries
255+
- Polymorphic virtual dependency attributes: `spec['blas'].blas_libs`
256+
257+
### Testing & Documentation
258+
- Unit tests run continuously on Travis CI for Mac and Linux
259+
- Switched from `nose` to `pytest` for unit tests.
260+
- Unit tests take 1 minute now instead of 8
261+
- Massively expanded documentation
262+
- Docs are now hosted on [spack.readthedocs.io](http://spack.readthedocs.io)

0 commit comments

Comments
 (0)