forked from easybuilders/easybuild-framework
-
Notifications
You must be signed in to change notification settings - Fork 1
/
RELEASE_NOTES
179 lines (161 loc) · 10.6 KB
/
RELEASE_NOTES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
This file contains a description of the major changes to the easybuild-framework EasyBuild package.
For more detailed information, please see the git log.
v1.2.0 (February 28th 2013)
---------------------------
feature + bugfix release
- new backend module for option parsing: generaloption
- support for using constants and string templates in easyconfig files
- currently disabled for 'exts_filter' and 'exts_list' easyconfog parameters, for backward compatibility
- various other enhancements, including:
- support for iqacml and iiqmpi toolchains (Intel compilers + QLogic MPI based)
- clearer errors messages when sanity check failed
- unit tests for (about half of) the 'eb' command line options
- support for specifying build/install steps to skip in easyconfig file ('skipsteps')
- support for allowing certain dependencies to be resolved by the system instead of modules ('allow_system_deps')
- cache ppn value required by regtest, clean up temporary files let behind by --regtest/--job
- make sure MPD is used as process manager for Intel MPI (required for impi v4.1 and later)
- rename template names 'name' and 'version' used in exts_filter to 'ext_name', 'ext_version'
- 'name' and 'version' are still supported for legacy reasons
- cleaned up module docstrings w.r.t. list of authors
- various bug fixes, including:
- print correct (lowercase) toolchain names with --list-toolchains
- correct easyconfig parameter name 'license_server_port'
- fix string quoting in develop modules
- ensure modulecmd is run with original LD_LIBRARY_PATH value
- to avoid breaking modulecmd, see https://bugzilla.redhat.com/show_bug.cgi?id=719785
- remove use of hardcoded files/dirs in unit tests
- fix various inconsistencies w.r.t. paths considered with --robot
- various cleanup and fixes w.r.t. logging
- use correct logger instance in main script
- stop passing logger instances around
- make module logging variables private
- get rid of ModuleGenerator deconstructor, clean up via EasyBlock.clean_up_fake_module
- fix disabling of 'optarch' toolchain option (and extend unit tests to check on this)
v1.1.0 (January 27th 2013)
--------------------------
feature + bugfix release
- improvements w.r.t. support for software extensions (tested on Python and R, see easyblocks package)
- cleaned up support for building/installing extensions
- define ExtensionEasyblock class that implements support for installing extensions as stand-alone module as well
- return to build dir before building/installing each extension
- define EBEXTSLIST<NAME> environment variable in module if exts_list was defined
- make sure sanity check for extensions results in an error if it fails
- various enhancements, including:
- log both framework and easyblocks versions
- add support for gimkl, gmacml, iccifort, iomkl, and ismkl toolchains
- define *_SEQ compiler variables for sequential compilers
- add --list-toolchains command line option for listing supported toolchains
- add support for customizing software and modules install path suffixes
- support both setuptools and distutils installation methods for finding installed easyconfigs
- also consider robot path in list of paths searched for patch files
- allow skipping of default extension sanity check (by setting 'modulename' to False in options)
- various bug fixes, including:
- typos in toolchain Python modules w.r.t. imkl support, handling of i8/optarch/unroll options
- purge before loading 'fake' module, unload 'fake' module before removing it, use original MODULEPATH
- restore environment after unloading fake module, set variables that were incorrectly unset, i.e., that were defined before as well
- unset TMPDIR for builds submitted as jobs (required by IntelBase easyblock)
- correctly track easyconfig parse error
- always run all jobs in regtest, also if dependency jobs failed
- cosmetic adjustments to default EasyBuild configuration file to avoid confusion between e.g. build_dir and build_path (only latter matters)
- fix SuSe hack, only prefix command with sourcing of /etc/profile.d/modules.sh if it is there
- leave build directory before it is removed during cleanup step
- load generated module file before running test cases
v1.0.2 (December 8th 2012)
--------------------------
bugfix release
- properly catch failing sanity check commands
- fix bug in toolchain support which cause linking environment variables set by toolchain to include too many libraries
- elements in toolchain variables were being passed by reference instead of by value
- fix selecting a compiler toolchain for a specified software package (--software-name) if only a template is a viable option
- fix passing command line parameters with --job
- fix list of valid stops (-s/--stop)
- fix minor issues in help messages (-h/--help)
v1.0.1 (November 24th 2012)
---------------------------
bugfix release
- fix support for installing easybuild-framework with distutils (broken import in setup.py)
- fix support for ACML as a toolchain element (toolchains/linalg/acml.py)
- add name to aggregated regtest XML so that is parsed correctly by Jenkins
- reorder code in main.py so that regtest also works with incomplete easyconfig paths
- add bash script for running regression test and sending a trigger to Jenkins to pull in the XML with results
- get rid of assumption that loaded modules should have name like 'foo/bar', make it more flexible
- retry failed builds in regtest twice to ignore fluke errors
- report leaf nodes in dependency graph when regtest is submitted
- this is required for setting job dependencies in the regtest script for the Jenkins trigger job
- implement and use rmtree2 as more (NFS) robust replacement for shutil.rmtree
- bump max hit count for run_cmd_qa from 20 to 50, to make false positives of unasnwered questions less likely
v1.0 (November 13th 2012)
-------------------------
- split up EasyBuild across three repositories: framework, easyblocks and easyconfigs
- packaged EasyBuild, different parts can now be installed easily using easy_install
- various changes to both internal and external API:
- renamed main script to main.py (from build.py)
- file and directory organisation
- module, class, function and function argument renaming and reorganisation
- split up Application into EasyBlock and ConfigureMake (see easybuild-easyblocks for the latter)
- created EasyConfig class for handling easyconfig files
- renaming of EasyBuild configuration parameters (non-camelCase)
- renaming of various easyconfig parameters (non-camelCase)
- rename SOFTROOT and SOFTVERSION environment variables set in generated module files to EBROOT and EBVERSION
- use 'extension' as generic terminology for Python packages, R libraries, Perl modules, ...
- added support for building software packages in parallel via PBS jobs
- added unit testing framework and initial set of unit tests for basic functionality
- and run them in Jenkins continuous integration service, see https://jenkins1.ugent.be/view/EasyBuild/
- implement single-command regression test (e.g. to test building all supported software)
- eb --regtest --robot
- switch to new style Python classes
- replaced toolkit module with toolchain package (total rewrite), providing modular support for toolchains
- adjust default EasyBuild configuration to only use $HOME/.local/easybuild by default
- added support for running EasyBuild without supplying an easyconfig file
- make EasyBuild search for a matching easyconfig file
- support automatic rewriting of an existing partially-matching easyconfig file (use this with care!)
- support for automatically generating an easyconfig file according to given specifications (best effort!)
- add support for looking for easyconfig file in Python search path if it can't be found on specified (relative) path
(that way, easyconfig files available in the easybuild-easyconfigs package can be used easily)
- various other enhancements and bug fixes, e.g.:
- extended sanity check capabilities
- cleaned up logging
- creating of devel module which allows to mimic environment that was used by EasyBuild to build the software
- support for creating dependency graphs for a set of easyconfig files
- grouped options in help output and categorised available easyconfig parameters
- more consistent code style
v0.8 (June 29th 2012)
---------------------
- added support for building/installing 17 additional software packages:
- BEAGLE, Doxygen, g2clib, g2lib, HDF, HDF5, JasPer, libpng, Maple,
MrBayes, NCL, netCDF, netCDF-Fortran, Szip, WPS, WRF, zlib
- the build procedure for WRF and WPS includes running the tests available for these packages
- various bug fixes and enhancements:
- made support for interactive installers (run_cmd_qa) more robust
- fixed Python git package check
- implemented toolkit functions for determine compiler family, MPI type, MPI run command, ...
v0.7 (June 18th 2012)
---------------------
- fixed BLACS build
- diagnostic tools to determine INTERFACE and TRANSCOMM values are now used
- added support for building Bison, CP2K, flex
- with regression test enabled for CP2K as part of build process
- note: BLACS built with EasyBuild prior to v0.7 needs to be rebuilt for CP2K to work correctly
- added --enable-mpi-threads to OpenMPI example easyconfigs
- required for correct CP2K psmp build
- adjusted libsmm example easyconfig for lower build time
- to make the full regression test finish in a reasonable amount of time
- added script to make porting of easyblocks from old to new EasyBuild codebase easier
- takes care of refactoring, checks for PyLint warnings/errors, ...
- fixed several small bugs
- prefixed EasyBuild messages with "=="
- full regression test passed (58 easyconfigs tested)
v0.6 (May 11th 2012)
---------------------
- added support for Intel compiler toolkit (ictce)
- which included the Intel compilers, Intel Math Kernel Library (imkl) and Intel MPI library (impi)
- added support for building Python with nose/numpy/scipy packages
- added simple regression test
- this version is able to build all supplied example easyconfigs
v0.5 (April 6th 2012)
----------------------
- first public release of EasyBuild
- after a thorough cleanup of the EasyBuild framework of the in-house version
- supports building HPL with goalf compiler toolkit
- the goalf toolkit consists of the GCC compilers, and the OpenMPI, ATLAS, LAPACK, FFTW and ScaLAPACK libraries
- also support build and installation of MVAPICH2