-
Notifications
You must be signed in to change notification settings - Fork 146
Closed
Description
This issue keeps track of what changed are planned for EasyBuild v4.0, in which backwards-incompatible changes will be made compared to EasyBuild v3.x.
ETA for EasyBuild v4.0: summer 2019 (subject to change!)
Codebase
-
drop support for using EasyBuild on top of Python 2.6 (?)(not dropping Py2.6 support for now)after consulting with community via user survey?only if Python 2.6 support really gets in the way (mainly w.r.t. also supporting Python 3)- (turns out this is not needed, we can keep supporting Python 2.6 without too much hassle)
-
drop deprecated functionality (seelog.deprecated
statements)- (no action needed here,
log.deprecated("...", '4.0')
statements will now simply result an error
- (no action needed here,
-
support running EasyBuild on top of (both Python 2.7 &) Python 3 (because 2+3=4)[DONE]- see
support Python 3.x easybuild-framework#133 blocker:vsc-base
should be compatible with Python 3 (cfr. start looking into making vsc-base Py3 compatible hpcugent/vsc-base#231, )- fixed by ingesting
vsc-base
&vsc-install
into framework, seeingest vsc-base & vsc-install easybuild-framework#2708
- fixed by ingesting
see PRs marked withpython3
label: https://github.com/easybuilders/easybuild-framework/labels/python3
- see
-
avoid[DONE]setuptools
dependencyonly needed forpkg_resources.declare_namespace
used to spreadeasybuild
namespace across multiple directoriesalso relevant for(OK)--include-*
support, but can be worked around?- central idea is to basically just replace the use of
pkg_resources.declare_namespace
bypkgutil.extend_path
, which seems to be the one true way (tm), cfr. https://packaging.python.org/guides/packaging-namespace-packages/#pkgutil-style-namespace-packages ("This is the recommended approach for the highest level of compatibility.") see drop requirement for setuptools as runtime dependency easybuild-framework#2836 + only import from pkg_resources (provided by setuptools) to check GC3Pie version easybuild-framework#2837
Packaging & installation
-
try to avoid requiring(DONE)setuptools
to install EasyBuild (try to avoid requiring setuptools to install EasyBuild easybuild-framework#2941) - update bootstrap script to be able to install EasyBuild 4.0 (see update bootstrap script to support installing EasyBuild v4.0 easybuild-framework#3017)
Documentation
- overview of (breaking) changes
- release notes
Features
more flexibility w.r.t. dependency versions?- unclear how at this point...
(fat) easyconfigs in YAML syntax (.yeb
)?- unlikely, unless someone has time to work on it...
drop(will look into deprecating this in EasyBuild 4.x)exts_classmap
?-
replacedummy
toolchain withsystem
toolchaindeprecatedummy
toolchain to trigger deprecation warning on use, to be removed in EasyBuild 5.0see Please rename thedummy
toolchain easybuild-framework#1181done, see deprecate 'dummy' toolchain, replace with 'system' toolchain easybuild-framework#2877- also add alias for
system
toolchain to EasyBuild 3.x: support using 'system' as alias for 'dummy' toolchain easybuild-framework#2960
[ ] deprecateruntest
in favor oftestopts
, see deprecate runtest in favor of testopts (was: Add pretestopts and testops) easybuild-framework#2868stable support for(needs more time)--containerize
Easyblocks
-
PythonPackage
switch to installing Python packages with(not switching the default, but will keep requiringpip
by default (rather thansetup.py install
, i.e.setuptools
)use_pip = True
in contributed easyconfigs)- cfr. https://docs.python.org/2/installing/index.html
needs to be re-evaluated...-
enable(already done indownload_dep_fail
by default, to ensure that no dependencies are automatically downloaded by whichever Python installation tool is being usedPythonBundle
)
-
custom easyblock for(done, see add custom easyblock for OpenMPI easybuild-easyblocks#1789)OpenMPI
Easyconfigs
- archiving of old easyconfig files
- anything using
ictce
toolchain (already deprecated in EasyBuild 3.8.0) - anything using
goolf/1.4.10
(already deprecated in EasyBuild 3.8.0) - also oldest versions of
intel
andfoss
toolchains? (already deprecated in EasyBuild 3.8.0) - <
intel/2016a
:archive easyconfigs using deprecated ictce or intel (< 2016a) toolchain easybuild-easyconfigs#8558 - <
foss/2016a
:archive easyconfigs using a gompi/foss toolchain older than {gompi,foss}/2016a easybuild-easyconfigs#8585(EasyBuild v3.9.4) - archive easyconfig for old software versions:
archive ancient versions of GC3Pie/GCC/OpenMPI/ORCA easybuild-easyconfigs#8586(EasyBuild v3.9.4)- try to avoid losing support for particular software packages while doing this...
- anything using
-
"basic" Python atGCCcore
+ SciPy bundle?- done, see
{lang}[GCCcore/8.2.0] Python v3.7.2 easybuild-easyconfigs#7898 (Python 3.7.2),{lang}[GCCcore/8.2.0] Python v2.7.15 easybuild-easyconfigs#7821 (Python 2.7.15),{lang}[foss/2019a] SciPy-bundle v2019.03 w/ Python 2.7.15 + 3.7.2 easybuild-easyconfigs#7921 (SciPy-bundle)
- done, see
-
adopt ComputeCanada's approach to installing Python packages for multiple Python versions -
avoid warnings w.r.t. naming of local variables(all done!)- cfr. recommended naming scheme for local variables in
warn if non-single-letter local variables not named 'local_*' or '_*' are used + enhance --fix-deprecated-easyconfigs to rename them easybuild-framework#2938
- cfr. recommended naming scheme for local variables in