This file contains a description of the major changes to the easybuild-easyblocks EasyBuild package.
For more detailed information, please see the git log.

The latest version of easybuild-easyblocks provides 133 software-specific easyblocks and 17 generic easyblocks.

v1.10.0 (December 24th 2013)
----------------------------

feature + bugfix release
- added one new generic easyblock: VersionIndependendPythonPackage (#329, #334)
- added support for 2 new software packages that require customized support:
    - Charmm (#318), GROMACS (#335, #339)
- various enhancements, including:
    - fix support for recent SAMtools version (>= 0.1.19) (#320)
    - fix support for recent Intel tools (icc, ifort, imkl, impi) (#325, #327, #338)
    - enhance generic easyblock for installing RPMs (#332)
    - pick up 'preinstallopts' in generic PythonPackage easyblock (#334)
    - enhance CP2K easyblock (libxc support, new versions) + style cleanup (#336)
- various bug fixes:
    - use unwanted env var functionality to unset MKLROOT rather than failing with an error (#273)
    - always include -w flag for preprocessor to supress warnings that may break QuantumESPRESSO configure (#317)
    - link with multithreaded LAPACK libs for ESMF (#319)
    - extend noqanda list of patterns in CUDA easyblock (#328, #337)
    - add "import _ctypes" to Python sanity check commands to capture a common build issue (#329)
    - bug fixes in generic IntelBase easyblock (#331, #333, #335)
        - remove broken symlink $HOME/intel if present
        - fix use of gettempdir to obtain a common (user-specific) tmp dir to symlink $HOME/intel to
    - fix build of recent scipy versions with GCC-based toolchain (#334)
    - fix use of gettempdir to obtain common (user-specific) tmp dir for $HOME/.nwchemrc symlink (#340, #342)
    - extend noqanda list in Qt easyblock (#342)

v1.9.0 (November 17th 2013)
---------------------------

feature + bugfix release
- added support for 8 new software packages that require customized support:
    - Allinea DDT/MAP (#279), ARB (#291), GenomeAnalysisTK (#278), OpenBabel (#305, #309), picard (#278),
      PyQuante (#297), Scalasca v1.x (#304), Score-P (#304)
        - the Score-P easyblock is also used for Cube 4.x, LWM2, OTF2, and Scalasca v2.x
- various enhancements, including:
    - add support building ScaLAPACK on top of MPICH2, required for gmpolf toolchain (#274)
    - add support to ConfigureMake easyblock to customize configure --prefix option (#287)
    - add support for specifying install command in Binary easyblock (#288)
    - enhance CMakeMake easyblock to specify srcdir via easyconfig parameter, and to perform out-of-source builds (#303)
- various bug fixes:
    - use correct configure flag for Szip in HDF5 easyblocks, should be --with-szlib (#286, #301)
    - add support for serial HDF5 builds (#290, #301)
    - enhance robustness of Qt easyblock w.r.t. interactive configure (#295, #302)
    - enhance support for picking up license specification via environment variables (#298, #307)
    - extend list of values for $CPATH in libint2 easyblock (#300)
    - fix extra_options 'super' call in Clang easyblock (#306)
    - add support in Boost easyblock to specify toolset in easyconfig file (#308)
- other:
    - add build status badges for master/develop branches to README (#289)

v1.8.2 (October 18th 2013)
--------------------------

bugfix release
- fix installing of EasyBuild with a loaded EasyBuild module (#280)
    - this is important to make upgrading to the latest EasyBuild version possible with a bootstrapped EasyBuild

v1.8.1 (October 14th 2013)
--------------------------

bugfix release
- various bug fixes:
    - fix problems in PSI easyblock causing build to fail (#270)
    - fix issues with running NWChem test cases, fail early in case broken symlink is present (#275)

v1.8.0 (October 4th 2013)
-------------------------

feature + bugfix release
- added one new generic easyblock: BinariesTarball (#255)
- added support for 5 new software packages that require customized support:
    - DB (#226), FDTD Solutions (#239), FoldX (#256), Mathematica (#240), MUMPS (#262)
- various enhancements, including:
    - support optionally running configure in generic MakeCp easyblock (#252)
    - enhanced Clang easyblock to support building Clang 3.3 (#248)
    - add support for $INTEL_LICENSE_FILE specifying multiple paths (#251)
    - enhanced ATLAS easyblock to support building ATLAS 3.10.1 (#258)
- various bug fixes:
    - add zlib lib dir in link path dirs for WPS (#249)
    - stop using deprecated add_module function in imkl easyblock (#250)
    - fixed PSI easyblock w.r.t. support for building plugins (#254, #269)
    - move OS check for Clang to check_readiness_step, to allow a build job to be submitted from SL5 (#263, #264)
    - enable verbose build for DOLFIN, to allow for proper debugging if the build fails (#265)
    - make sure LDFLAGS and INSTANT_*_DIR env vars are set for DOLFIN sanity check commands (#268)
        - this is required after resetting the environment after running module purge (see framework release notes)
    - don't try to load module in LAPACK test-only build (#264, #266)

v1.7.0 (September 2nd 2013)
---------------------------

feature + bugfix release
- added support for 3 new software packages that require customized support:
    - Libint2 (#236), Qt (#210), Rosetta (#218)
- various enhancements, including:
    - allow building OpenFOAM without 3rd party tools (#230)
    - also add sitelib path to $PERL5LIB, refactor code to add generic get_site_suffix function (#232, #233)
    - support building imkl FFT wrappers using MVAPICH2 MPI library (#234)
    - remove libnpp from CUDA sanity check to support installing CUDA v5.5 (#238)
    - pick up $INTEL_LICENSE_FILE for Intel tools, if it is set (#243)
        - note: gets preference over license_file easyconfig parameter
- various bug fixes:
    - call WRF build script with 'tcsh script' to ensure that tcsh available in $PATH is used (#231)
    - make sure some environment variables that may disrupt the GCC install procedure are unset (#237)
        - e.g., $CPATH, $C_INCLUDE_PATH, $CPLUS_INCLUDE_PATH, $OBJC_INCLUDE_PATH, $LIBRARY_PATH
    - code cleanup in GEANT4 easyblock: use self.version (instead of self.get_installversion()) (#242)
    - enhance list of noqanda patterns for CUDA, to get less failing installations (#244)

v1.6.0 (July 11th 2013)
-----------------------

feature + bugfix release
- added support for 2 new software packages that require customized support:
    - BamTools (#224), BLAT (#214)
- various enhancements, including:
    - update impi easyblock to allow installing impi v4.1.1, which features a slight change in build procedure (refs #217)
    - enhance PackedBinary easyblock to copy both files and directories (refs #212)
    - added get sitearch_suffix to Perl search path and use it in PerlModule easyblock (refs #209)
- various bug fixes:
    - make sure EasyBuild configuration is initialized when running unit tests (refs #220)
    - make Boost easyblock pick up configopts easyconfig parameter (refs #221)
    - add '-DMPICH_IGNORE_CXX_SEEK' compiler flag for Mothur when MPI support is enabled (refs #222)
    - fix Boost sanity check, only check for libboost_python.so if Python module is loaded (refs #223)
    - enhance Trinity support w.r.t. jellyfish (refs #225, #227)
    - fix checking for beagle-lib dep (deprecate checking for BEAGLE) for MrBayes (refs #228)

v1.5.0 (June 1st 2013)
----------------------

feature + bugfix release
- added one new generic easyblock: MakeCp (#208)
- added support for 5 new software packages that require customized support:
    - CBLAS (#192), FreeSurfer (#194), Mothur (#206), OpenIFS (#200), PSI (#191)
- various enhancements, including:
    - add support for building ScaLAPACK 2.x on top of QLogic MPI (#195)
    - support newer BWA versions (#199)
    - explicitly list license server type in ABAQUS install options, required for correct installation of v6.12 (#198)
    - update SCOTCH and OpenFOAM easyblock for recent versions (#201)
- various bug fixes:
    - fix numpy easyblock to get an optimal build (w.r.t. numpy.dot performance) (#192)
    - correct build procedure for MUMmer to yield a complete installation (#196, #197)
    - make unit tests clean up after themselves more thoroughly (#203, #204)
    - fix getting Perl version for extensions (#205)

v1.4.0 (May 2nd 2013)
---------------------

feature + bugfix release
- added a unit test suite for easyblocks (#175, #177, #178)
    - every easyblock is parsed and instantiated as a sanity check
- added one new generic easyblock: PerlModule (#183)
- added support for 8 new software packages that require customized support:
    ABAQUS (#179), Bowtie (#174, #185, #186), Clang (#151), DL_POLY Classic (#118), ESMF (#171), Perl (#183),
    Intel VTune and Intel Inspector (#180)
- the CMakeMake.configure_step() parameter 'builddir' was renamed to 'srcdir', because the name 'builddir' is incorrect (#151)
    - 'builddir' will remain supported for legacy purposes up until v2.0
- various enhancements, including:
    - reverted back to hardcoding Python library path, since it's hardcoded by setuptools too (#184)
    - added MPICH support in ScaLAPACK easyblock (#172)
    - enhanced NCL easyblock: add support UDUNITS and ESMF dependencies (#171)
    - enhanced MATLAB easyblock: avoid hardcoding Java options, make sure $DISPLAY is unset, extend list of sanity check paths (#181)
    - enhanced TotalView easyblock: add support for license file (#146)

v1.3.0 (April 1st 2013)
-----------------------

feature + bugfix release
- added support for 2 new software packages that require customized support:
    - CUDA (#145), Ferret (#160, #163)
- remove 'license' easyconfig parameter from IntelBase, since it clashes with generic 'license' parameter (#153, #158)
    - 'license_file' should be used instead (see https://github.com/hpcugent/easybuild-framework/pull/569/files)
    - using 'license' instead of 'license_file' will be supported until v2.x for legacy purposes
- various enhancements, including:
    - stop hardcoding Python site-packages library dir, obtain it via distutils.sysconfig instead (#141, #156, #159, #161)
    - stop hardcoding list of libraries for BLAS libs, ask toolchain modules or use LIBBLAS instead (#150, #155)
    - enhanced CP2K easyblock, following Intel guidelines for ictce builds (#138)
    - added setup.cfg for setup.py to allow creating RPMs (#140)
    - clean up specifying BLAS/LAPACK libs for building numpy, check whether requires patch is being used for IMKL builds (refs #155, #161)
- various bug fixes, including:
    - added zip_safe flag to setup.py, to silence multitude of warnings (#135)
    - install EasyBuild packages in reversed order to avoid funky setuptools issues (#139)
    - fixed a typo in the ScaLAPACK easyblock, and set CCFLAGS and FCFLAGS for v2.x (#149, #162)
    - fix sanity check for python-meep (#159)
    - exclude Python tests from DOLFIN sanity check, since they hang sometimes (#161)
    - add support in ALADIN easyblock for answering question on location of libgrib_api.a (#165)

v1.2.0 (February 28th 2013)
---------------------------

feature + bugfix release
- added 1 new generic easyblock: Rpm
- added support for 6 new software packages that require customized support:
    - EasyBuild, EPD (Enthought Python Distribution), freetype, MATLAB, QLogic MPI (RPM), TotalView
    - support for installing EasyBuild with EasyBuild enables bootstrapping an EasyBuild installation!
- various enhancements, including:
    - corrections in WRF/WPS to also enable building with iqacml toolchain
        - use mpi_cmd_for instead of hardcoding test commands, using correct Fortran compilers (F90)
    - fix NCL easyblock to also support v6.1.x
        - use correct Fortran compiler (F90), set correct lib/include paths for dependencies (netCDF-Fortran, GDAL)
    - cleanup sweep of license headers and authors list in easyblock module docstrings
    - use new 'ext_name' template name in 'exts_filter' in Python and R easyblocks
- various bug fixes, including:
    - general code cleanup
        - don't set sanityCheckOK in Toolchain easyblock
        - get rid of using os.putenv
    - NEURON easyblock: don't hardcode number of processes used in test cases
    - make sure easybuild.easyblocks.generic namespace is extendable

v1.1.0 (January 27th 2013)
--------------------------

feature + bugfix release
- added 3 new generic easyblocks: CMakePythonPackage, JAR, RPackage
- added support for 23 new software packages that require customized support:
    - ACML, ALADIN, ant, Bioconductor (R packages), Chapel, Cufflinks, ESPResSo, FLUENT, Geant4, GHC, Java, NEURON,
      NWChem, PyZMQ, QuantumESPRESSO, R, Rmpi, ROOT, Rserve, SCOOP, Trinity, VSC-tools, XML
- various enhancements, including:
    - clean up of python.py module:
        - merge EB_DefaultPythonPackage and PythonPackage easyblocks into generic easyblock PythonPackage, which derives from ExtensionEasyblock
        - move EB_FortranPythonPackage into dedicated generic FortranPythonPackage easyblock module
        - split off support for building/installing nose, numpy, scipy into dedicated EB_* easyblock modules,
          which allows them to be built as stand-alone modules as well
    - clean up testing of Python packages (PythonPackage easyblock)
    - make sure there is no site.cfg in home dir when building Python packages, because e.g. scipy will pick it up
    - added support for building Intel MKL wrappers with OpenMPI toolchain
    - cleaning up of fake module that was loaded for running tests
    - move calls to functions that rely on environment up in the chain of steps (mostly for cleanup reasons)
    - use better module name for UFC sanity check, minor change to sanity check paths for UFC
- various bug fixes, including:
    - only call 'make ptcheck' for ATLAS when multi-threading support is enabled
    - use a symbolic link for $HOME/intel instead of a randomly suffixed subdirectory in home + patching of Intel install scripts
        - latter does not work anymore with recent versions of Intel tools (2013.x)

v1.0.2 (December 8th 2012)
--------------------------

bugfix release
- fix typos in WIEN2k easyblock (missing commas after list elements)

v1.0.1 (November 24th 2012)
---------------------------

bugfix release
- fix support for installing easybuild-easyblocks with distutils (broken import in setup.py)
- only build GMP/CLooG/PPL libraries during GCC build in parallel, don't install in parallel
    - 'make -j N install' doesn't work consistently for GMP
- fix GCC build on OS X
    - location of libraries is slightly different (lib vs lib64 dir)
- add support to ConfigureMake easyblock for pre-passing tar options to configure
    - see tar_config_opts easyconfig parameter
    - workaround for issue with pax hanging configure with an interactive prompt
- enhance Q&A for WRF and WIEN2k by adding entries to qa dict and no_qa list
- use rmtree2 from tools/filetools.py as more (NFS) robust replacement for shutil.rmtree

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
- implement class name encoding scheme, see wiki http://github.com/hpcugent/easybuild/wiki/Encode-class-names
    - (non-generic) easyblock class names are now prefixed with EB and non-alphanumeric characters are escaped
- split off generic easyblocks into separate package easyblocks.generic
- added custom support for 39 software packages:
    Armadillo, BiSearch, Boost, Bowtie2, BWA, bzip2, CGAL, CPLEX, DOLFIN, Eigen, flex, FSL, Hypre, libxml2, MetaVelvet,
    METIS, MTL4, MUMmer, ncurses, OpenFOAM, OpenSSL, ParMETIS, Pasha, PETSc, Primer3, python-meep, SAMtools, SCOTCH,
    SHRiMP, SLEPc, SOAPdenovo, SuiteSparse, SWIG, Tornado, Trilinos, UFC, Velvet, WIEN2k, XCrySDen
- various enhancements and bug fixes to existing easyblocks

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
