Skip to content

Commit 436b5ec

Browse files
committed
Merge branch 'develop' into ocaisa_develop
2 parents f842f54 + c12d723 commit 436b5ec

223 files changed

Lines changed: 2502 additions & 7173 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

RELEASE_NOTES

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,67 @@ For more detailed information, please see the git log.
33

44
These release notes can also be consulted at http://easybuild.readthedocs.org/en/latest/Release_notes.html.
55

6+
v2.0.0 (March 6th 2015)
7+
-----------------------
8+
9+
feature + bugfix release
10+
- requires vsc-base v2.0.3 or more recent
11+
- avoid deprecation warnings w.r.t. use of 'message' attribute (hpcugent/vsc-base#155)
12+
- fix typo in log message rendering --ignoreconfigfiles unusable (hpcugent/vsc-base#158)
13+
- removed functionality that was deprecated for EasyBuild version 2.0 (#1143)
14+
- see http://easybuild.readthedocs.org/en/latest/Removed-functionality.html
15+
- the fix_broken_easyconfigs.py script can be used to update easyconfig files suffering from this (#1151, #1206, #1207)
16+
- for more information about this script, see http://easybuild.readthedocs.org/en/latest/Useful-scripts.html#fix-broken-easyconfigs-py
17+
- stop including a crippled copy of vsc-base, include vsc-base as a proper dependency instead (#1160, #1194)
18+
- vsc-base is automatically installed as a dependency for easybuild-framework, if a Python installation tool is used
19+
- see http://easybuild.readthedocs.org/en/latest/Installation.html#required-python-packages
20+
- various other enhancements, including:
21+
- add support for Linux/POWER systems (#1044)
22+
- major cleanup in tools/systemtools.py + significantly enhanced tests (#1044)
23+
- add support for 'eb -a rst', list available easyconfig parameters in ReST format (#1131)
24+
- add support for specifying one or more easyconfigs in combination with --from-pr (#1132)
25+
- see http://easybuild.readthedocs.org/en/latest/Integration_with_GitHub.html#using-easyconfigs-from-pull-requests-via-from-pr
26+
- define __contains__ in EasyConfig class (#1155)
27+
- restore support for downloading over a proxy (#1158)
28+
- i.e., use urllib2 rather than urllib
29+
- this involved sacrificing the download progress report (which was only visible in the log file)
30+
- let mpi_family return None if MPI is not supported by a toolchain (#1164)
31+
- include support for specifying system-level configuration files for EasyBuild via $XDG_CONFIG_DIRS (#1166)
32+
- see http://easybuild.readthedocs.org/en/latest/Configuration.html#default-configuration-files
33+
- make unit tests more robust (#1167, #1196)
34+
- see http://easybuild.readthedocs.org/en/latest/Unit-tests.html
35+
- add hierarchical module naming scheme categorizing modules by 'moduleclass' (#1176)
36+
- enhance bootstrap script to allow bootstrapping using supplied tarballs (#1184)
37+
- see http://easybuild.readthedocs.org/en/latest/Installation.html#advanced-bootstrapping-options
38+
- disable updating of Lmod user cache by default, add configuration option --update-modules-tool-cache (#1185)
39+
- for now, only the Lmod user cache can be updated using --update-modules-tool-cache
40+
- use available which() function, rather than running 'which' via run_cmd (#1192)
41+
- fix install-EasyBuild-develop.sh script w.r.t. vsc-base dependency (#1193)
42+
- also consider robot search path when looking for specified easyconfigs (#1201)
43+
- see http://easybuild.readthedocs.org/en/latest/Using_the_EasyBuild_command_line.html#specifying-easyconfigs
44+
- various bug fixes, including:
45+
- stop triggering deprecated/no longer support functionality in unit tests (#1126)
46+
- fix from_pr test by including dummy easyblocks for HPL and ScaLAPACK (#1133)
47+
- escape use of '%' in string with command line options with --job (#1135)
48+
- fix handling specified patch level 0 (+ enhance tests for fetch_patches method) (#1139)
49+
- fix formatting issues in generated easyconfig file obtained via --try-X (#1144)
50+
- use log.error in tools/toolchain/toolchain.py where applicable (#1145)
51+
- stop hardcoding /tmp in mpi_cmd_for function (#1146, #1200)
52+
- correctly determine variable name for $EBEXTLIST when generating module file (#1156)
53+
- do not ignore exit code of failing postinstall commands (#1157)
54+
- fix rare case in which used easyconfig and copied easyconfig are the same (#1159)
55+
- always filter hidden deps from list of dependencies (#1161)
56+
- fix implementation of path_matches function in tools/filetools.py (#1163)
57+
- make sure plain text keyring is used by unit tests (#1165)
58+
- suppress creation of module symlinks for HierarchicalMNS (#1173)
59+
- sort all lists obtained via glob.glob, since they are in arbitrary order (#1187)
60+
- stop modifying $MODULEPATH directly in setUp/tearDown of toolchain tests (#1191)
61+
62+
v1.16.2 (March 6th 2015)
63+
------------------------
64+
65+
(no changes compared to v1.16.1, simple version bump to stay in sync with easybuild-easyblocks)
66+
667
v1.16.1 (December 19th 2014)
768
----------------------------
869

easybuild/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
##
2-
# Copyright 2011-2014 Ghent University
2+
# Copyright 2011-2015 Ghent University
33
#
44
# This file is part of EasyBuild,
55
# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),

easybuild/framework/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
##
2-
# Copyright 2009-2014 Ghent University
2+
# Copyright 2009-2015 Ghent University
33
#
44
# This file is part of EasyBuild,
55
# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),

easybuild/framework/easyblock.py

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# #
2-
# Copyright 2009-2014 Ghent University
2+
# Copyright 2009-2015 Ghent University
33
#
44
# This file is part of EasyBuild,
55
# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),
@@ -52,8 +52,8 @@
5252
from easybuild.tools import config, filetools
5353
from easybuild.framework.easyconfig import EASYCONFIGS_PKG_SUBDIR
5454
from easybuild.framework.easyconfig.easyconfig import ITERATE_OPTIONS, EasyConfig, ActiveMNS
55-
from easybuild.framework.easyconfig.easyconfig import fetch_parameter_from_easyconfig_file
5655
from easybuild.framework.easyconfig.easyconfig import get_easyblock_class, get_module_path, resolve_template
56+
from easybuild.framework.easyconfig.parser import fetch_parameters_from_easyconfig
5757
from easybuild.framework.easyconfig.tools import get_paths_for
5858
from easybuild.framework.easyconfig.templates import TEMPLATE_NAMES_EASYBLOCK_RUN_STEP
5959
from easybuild.tools.build_details import get_build_stats
@@ -937,7 +937,7 @@ def make_module_req(self):
937937
txt = "\n"
938938
for key in sorted(requirements):
939939
for path in requirements[key]:
940-
paths = glob.glob(path)
940+
paths = sorted(glob.glob(path))
941941
if paths:
942942
txt += self.module_generator.prepend_paths(key, paths)
943943
try:
@@ -1652,7 +1652,10 @@ def make_module_step(self, fake=False):
16521652

16531653
self.log.info("Module file %s written" % self.module_generator.filename)
16541654

1655-
self.modules_tool.update()
1655+
# only update after generating final module file
1656+
if not fake:
1657+
self.modules_tool.update()
1658+
16561659
self.module_generator.create_symlinks()
16571660

16581661
if not fake:
@@ -1825,15 +1828,17 @@ def run_all_steps(self, run_test_cases):
18251828
return True
18261829

18271830

1828-
def build_and_install_one(module, orig_environ):
1831+
def build_and_install_one(ecdict, orig_environ):
18291832
"""
18301833
Build the software
1831-
@param module: dictionary contaning parsed easyconfig + metadata
1834+
@param ecdict: dictionary contaning parsed easyconfig + metadata
18321835
@param orig_environ: original environment (used to reset environment)
18331836
"""
18341837
silent = build_option('silent')
18351838

1836-
spec = module['spec']
1839+
spec = ecdict['spec']
1840+
rawtxt = ecdict['ec'].rawtxt
1841+
name = ecdict['ec']['name']
18371842

18381843
print_msg("processing EasyBuild easyconfig %s" % spec, log=_log, silent=silent)
18391844

@@ -1847,12 +1852,11 @@ def build_and_install_one(module, orig_environ):
18471852
# load easyblock
18481853
easyblock = build_option('easyblock')
18491854
if not easyblock:
1850-
easyblock = fetch_parameter_from_easyconfig_file(spec, 'easyblock')
1855+
easyblock = fetch_parameters_from_easyconfig(rawtxt, ['easyblock'])[0]
18511856

1852-
name = module['ec']['name']
18531857
try:
18541858
app_class = get_easyblock_class(easyblock, name=name)
1855-
app = app_class(module['ec'])
1859+
app = app_class(ecdict['ec'])
18561860
_log.info("Obtained application instance of for %s (easyblock: %s)" % (name, easyblock))
18571861
except EasyBuildError, err:
18581862
tup = (name, easyblock, err.msg)
@@ -1909,9 +1913,9 @@ def build_and_install_one(module, orig_environ):
19091913
# upload spec to central repository
19101914
currentbuildstats = app.cfg['buildstats']
19111915
repo = init_repository(get_repository(), get_repositorypath())
1912-
if 'original_spec' in module:
1916+
if 'original_spec' in ecdict:
19131917
block = det_full_ec_version(app.cfg) + ".block"
1914-
repo.add_easyconfig(module['original_spec'], app.name, block, buildstats, currentbuildstats)
1918+
repo.add_easyconfig(ecdict['original_spec'], app.name, block, buildstats, currentbuildstats)
19151919
repo.add_easyconfig(spec, app.name, det_full_ec_version(app.cfg), buildstats, currentbuildstats)
19161920
repo.commit("Built %s" % app.full_mod_name)
19171921
del repo
@@ -1976,22 +1980,23 @@ def build_and_install_one(module, orig_environ):
19761980
return (success, application_log, errormsg)
19771981

19781982

1979-
def get_easyblock_instance(easyconfig):
1983+
def get_easyblock_instance(ecdict):
19801984
"""
19811985
Get an instance for this easyconfig
19821986
@param easyconfig: parsed easyconfig (EasyConfig instance)
19831987
19841988
returns an instance of EasyBlock (or subclass thereof)
19851989
"""
1986-
spec = easyconfig['spec']
1987-
name = easyconfig['ec']['name']
1990+
spec = ecdict['spec']
1991+
rawtxt = ecdict['ec'].rawtxt
1992+
name = ecdict['ec']['name']
19881993

19891994
# handle easyconfigs with custom easyblocks
19901995
# determine easyblock specification from easyconfig file, if any
1991-
easyblock = fetch_parameter_from_easyconfig_file(spec, 'easyblock')
1996+
easyblock = fetch_parameters_from_easyconfig(rawtxt, ['easyblock'])[0]
19921997

19931998
app_class = get_easyblock_class(easyblock, name=name)
1994-
return app_class(easyconfig['ec'])
1999+
return app_class(ecdict['ec'])
19952000

19962001

19972002
def build_easyconfigs(easyconfigs, output_dir, test_results):

easybuild/framework/easyconfig/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# #
2-
# Copyright 2009-2014 Ghent University
2+
# Copyright 2009-2015 Ghent University
33
#
44
# This file is part of EasyBuild,
55
# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),

easybuild/framework/easyconfig/constants.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright 2013-2014 Ghent University
2+
# Copyright 2013-2015 Ghent University
33
#
44
# This file is part of EasyBuild,
55
# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),

easybuild/framework/easyconfig/default.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# #
2-
# Copyright 2009-2014 Ghent University
2+
# Copyright 2009-2015 Ghent University
33
#
44
# This file is part of EasyBuild,
55
# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),

0 commit comments

Comments
 (0)