-
Notifications
You must be signed in to change notification settings - Fork 144
EasyBuild 5.0 sync meetings
- attending: Kenneth, Bart, Jasper, Alex, Mikael
- porting of eayblocks to
module_load_environment
is moving, see easyblocks issue #3527 - deprecating
parallel
- framework PR #4580
- easyblock PR #3557
- Bart is having trouble with Bazel (w/ EasyBuild 5.0 & RPATH & ccache)
- problem is due to using
ccache
in test step
- problem is due to using
- Mikael will open PR to have
--keep-debug-symbols
disabled by default - known bugs to fix:
- PyTorch (see easyblocks issue #3570)
- TensorFlow (see easyblocks issue #3566)
- Qt6 -> seems to be a non-issue with
--disable-keep-debug-symbols
(see easyconfigs issue #22228)
- TODO
- LLVM easyblock revamp PR #3373
- let jobs tweak themselves framework PR #4669
- Extensions can should not be allowed to impact global environment during builds (framework PR #4706)
- attending: Kenneth, Alex, Bart, Mikael, Simon
- project board
framework
- Adapt module show command run to cope with non-zero exit code for non-existing module (required for Environment Modules v5.5+ and Lmod 8.7.56+) (framework PR #4739)
- Small improvements to
ModuleLoadEnvironment
(framework PR #4754) - enable non-blocking reads for streaming outputs (framework PR #4755)
- Remove superflous
is_string
method (PR #4756) - add
BOTH_TO_DIR
state toLibSymlink
(framework PR #4761)
easyblocks
- adopt
module_load_environment
in PerlModule + custom easyblock for FlexiBLAS (easyblocks PR #3529) - adopt module_load_environment: PythonPackage (easyblocks PR #3530)
- adopt module_load_environment: icc, ifort, iccifort (easyblocks PR #3550)
- adopt module_load_environment: IntelBase, Advisor, Inspector, VTune (easyblocks PR #3551)
- adopt module_load_environment: intel-compilers (easyblocks PR #3552)
- adopt module_load_environment: impi (easyblocks PR #3553)
- adopt module_load_environment: imkl (easyblocks PR #3555)
- adopt module_load_environment: GCC (easyblocks PR #3556)
- adopt
module_load_environment
: Conda (easyblocks PR #3562) - adopt module_load_environment: Anaconda (easyblocks PR #3577)
- adopt module_load_environment: ABAQUS (easyblocks PR #3578)
- Deprecate use of parallel easyconfig parameter and fix updating the template value (framework PR #4580)
- see also related easyblocks PR #3557
- add
module-search-path-headers
configuration option to control how modules set search paths to header files (framework PR #4655) - Let jobs retweak easyconfigs themselves (framework PR #4669)
- 14 open easyblocks PRs related to EasyBuild 5.0 (link)
- port
CUDAcompat
easyblock tomodule_load_environment
=> obscure thing, just make educated guess on how to port, and assume it's OK
- attending: Kenneth, Simon, Alex, Mikael, Bart
- project board
- refactor generation of required environment variables in module files + deprecate
make_module_req_guess
method inEasyBlock
class (framework PR #4653)- use
enumerate
where applicable + fix forModuleGenerator._generate_multi_deps_list
(framework PR #4720) - add TODO and warning about non-path variables not being currently handled in module load environment (framework PR #4748)
- Small improvements to
ModuleLoadEnvironment
(framework PR #4754)
- use
- adopt
module_load_environment
inBundle
easyblock (easyblocks PR #3513) - archive binutils-2.29-GCCcore-system.eb and related easyconfigs (easyconfigs PR #22175 + archive PR #9)
attending: Kenneth, Simon, Mikael, Alexandre, Alex, Bart
- refactor generation of required environment variables in module files + deprecate
make_module_req_guess
method inEasyBlock
class (framework PR #4653) - fix error reporting for unknown value of
unrecognized_configure_options
inConfigureMake
(easyblocks PR #3563)
- RPATH wrappers break SystemCompiler easyblock (easyblocks issue #3558)
- installation of
Qt6-6.6.3-GCCcore-13.2.0.eb
fails with EB 5.0dev, works with EB v4.9.4- see issue framework #4746
- reported by Mikael/Leonard,
confirmed by Simon
-
$CMAKE_PREFIX_PATH
is being updated in all module files generated with EasyBuild 5.x?- no, already done with EasyBuild 4.x as well
- => @Alex: please open issue to check if we need to make this conditional so
$CMAKE_PREFIX_PATH
is only expanded when it makes sense - Bart: (also) used by CMake to find libraries/header files...
- easyblock PRs to adopt
module_load_environment
-
easyblocks PR #3513 for
Bundle
needs work, and should be merged ASAP
-
easyblocks PR #3513 for
- docs update
attending: Kenneth, Alex, Mikael, Bart, Simon, Alex
- Fix
to_checksums
withNone
values in dicts and recursion (framework PR #4579) - Allow nesting values in checksum dicts (framework PR #4711)
- faster
nub
function (framework PR #4737)
- (Alex,Kenneth) refactor generation of required environment variables in module files + deprecate
make_module_req_guess
method inEasyBlock
class (framework PR #4653) - (Mikael) Deprecate use of parallel easyconfig parameter and fix updating the template value #4580
- some concerns w.r.t. always adding
-j
tobuild_cmd
-
parallel = False
use case was broken (cfr. Corsika), no equivalent to it viamaxparallel
-
- (NO) should we auto-remove
-j 1
in<build_cmd> -j 1
?
- (NO) should we auto-remove
-
- (YES) only add
-j
ifself.cfg.parallel > 1
inConfigureMake
-
maxparallel = 1
would still work for easyconfigs that customizebuild_cmd
-
make -j 1
is equivalent tomake
(see Make docs)
- (YES) only add
-
- (not needed if 2 is done) add support
build_j_option = False
toConfigureMake
(as equivalent toparallel = False
)?
- to avoid
maxparallel = 1
workaround?
- (not needed if 2 is done) add support
-
- (NO, see Rust) only add
-j
ifbuild_cmd
hasmake
?
- (NO, see Rust) only add
-
- (YES) help text for
build_cmd
should mention that-j
is added to build command (if > 1 cores is used)
- (YES) help text for
-
- some concerns w.r.t. always adding
- complete overview of changes in EasyBuild v5.0 in docs
- make generic
EasyBlock
usable to install software (framework PR #4531)
attending: Alex, Jasper, Simon, Kenneth, Mikael, Bart
project board: https://github.com/orgs/easybuilders/projects/18/views/2
- EasyBuild v5.0.0beta1 was released on 24 Dec 2024
- [Alex,Kenneth] refactor easyblocks to not use deprecated
make_module_req_guess
method- see framework PR #4653
- open easyblock PRs:
- [Mikael] deprecate
parallel
easyconfig parameter framework PR #4580- will also require updates in easyblocks that use
self.cfg['parallel']
- will also require updates in easyblocks that use
- [Bart,Mikael] checksum-related PRs in framework
- support for using dict-value in
checksums
(as opposed to list of dicts...) is a nice-to-have
- support for using dict-value in
- [Mikael] let jobs retweak themselves framework PR #4669
- [Jasper] RPATH-related issues
- [Kenneth] enhanced LLVM easyblock
- [Simon,Kenneth] complete overview of changes in EasyBuild v5.0 in docs
- work through list of merged PRs to
5.0.x
branches, make sure all of them are somehow reflected in overview of changes
- work through list of merged PRs to
- revised landing page with overview of EasyBuild v5.0 changes docs PR #289
attending: Kenneth, Alex, Simon, Jasper
project board: https://github.com/orgs/easybuilders/projects/18/views/2
- beta release of EasyBuild 5.0 (
5.0.0beta1
)- which PRs should we really get merged before tagging
5.0.0beta1
?- not running sanity check commands from install dir (no PR yet) [Alex]
- Add dashes directly in compiler optimization flags (framework PR #4698) [Kenneth]
- update
ConfigureMake
easyblock to error out on unknown configure options (easyblocks PR #3025) [Kenneth] - Rename
post_install_step
topost_processing_step
(framework PR #4715 + easyblocks PR #3525) - checksum PRs #4578 + #4579 [Mikael]
- update Python easyblock to move
sitecustomize.py
intosite-packages
(easyblocks #3514) [Kenneth] - sync with
develop
for all repos [Kenneth]
- what do we need?
- tags in GitHub repos (no releases on PyPI)
- easyconfig file to make installation with EasyBuild v4.x easy (using
git_config
) - instructions to set up venv
- docs page with basic info on release candidates for EasyBuild 5.0 (https://docs.easybuild.io/easybuild-v5/release-candidates)
- highlighted changes
- requires Python >= 3.6
- requires Lmod >= 8.0 or Environment Modules version >= 4.3.0
run_shell_cmd
- changed defaults: RPATH, trace output,
use_pip
,depends_on
in Lua modules - deprecated functionality
-
run_cmd
+run_cmd_qa
-
- easyconfigs using an old unsupported toolchains have been moved to the easyconfigs archive
- planned changes
- selected open framework PRs
- deprecating of
module_req_guess
method - deprecating of
parallel
easyconfig parameter
- highlighted changes
- dedicated issue to give feedback (in
easybuild
repo)- positive/negative
- include output of
eb --version
andeb --show-config
andeb --show-system-info
- what did you try
- which PRs should we really get merged before tagging
attending: Mikael, Jasper, Simon, Kenneth, Bart, Alex
project board: https://github.com/orgs/easybuilders/projects/18/views/2
- tweak
setup.py
to fall back to importing setup fromsetuptools
ifdistutils
is not available (framework PR #4478) - Rename '
source
' step to 'extract
' (affectsskipsteps
easyconfig parameter +--stop
option) (framework PR #4629) - add
--search-path-cpp-headers
configuration option to control how EasyBuild sets paths to headers at build time (PR #4645) - Refactor
make_extension_string
(framework PR #4690) - add option
search-path-linker
to control linker options at build time (framework PR #4697) - enhance
get_software_libdir
to return full paths if requested (framework PR #4699) - sync with develop (20241207) (framework PR #4718)
- retain custom easyconfig parameters supported by
MesonNinja
easyblock in custom easyblock for scipy (easyblocks PR #3526)
-
-x
is broken: framework issue #4713 installingscipy
is broken: easyblocks issue #3524
- refactor generation of required environment variables in module files + deprecate
make_module_req_guess
method inEasyBlock
class (framework PR #4653)- minor suggested changes (+ bug fix?) in https://github.com/lexming/easybuild-framework/pull/6
- Add dashes directly in compiler optimization flags (framework PR #4698)
- ready to re-review/merge...
- Rename
post_install_step
topost_processing_step
(framework PR #4715)- see also (trivial) easyblocks PR #3525
- Hopefully an initial release candidate of EasyBuild v5.0 still this year...
- tagged version in GitHub repos
- easyconfig file to make it easy to install
-
- instructions on setting up Python virtual env to play with it
- feedback mechanisms
-
#eb5
channel in Slack - dedicated meta-issue in GitHub to report problems with this RC?
-
- bugs introduced in
5.0.x
branches:-
-x
is broken: framework issue #4713 - installing
scipy
is broken: easyblocks issue #3524
-
attending: Simon, Alex, Jasper, Mikael, Kenneth
- project board: https://github.com/orgs/easybuilders/projects/18/views/2
- make
LooseVersion('1.0') == LooseVersion('1')
#4691 - simplify code for determining the PYTHONPATH module entries #4686
- allow use of custom delimiter for paths in module generator #4687
- change semantics of
--dry-run
, so it doesn't imply--robot
(PR #4704)
attending: Alex, Mikael, Bart, Kenneth, Simon
- project board: https://github.com/orgs/easybuilders/projects/18/views/2
- WIP PRs
- Add dashes directly in compiler optimization flags (PR #4698)
- should produce a warning when leading
-
is missing - ideally as late as possible, when we're actually setting up the build env?
- should produce a warning when leading
- tarball PR reviewed, small changes needed
- refactor generation of required environment variables in module files + deprecate make_module_req_guess method in EasyBlock class (PR #4653)
- changes to easyblocks are WIP by Alex already
- overview of changes in docs
- starting point @ https://hackmd.io/J_GZmsq3Rn2mbzZo-GDGiQ
- Kenneth will flesh out structure by early next week
- Simon can pick it up from there
- Add dashes directly in compiler optimization flags (PR #4698)
attending:
- project board: https://github.com/orgs/easybuilders/projects/18/views/2
- blockers + breaking changes + changed defaults columns were updated to reflect what's worth blocking the EasyBuild 5.0 release over
- to be revisited in next sync meeting, a handful of issues/PRs still on the table may be pushed out still...
- syncing of
5.0.x
branches withdevelop
- framework: in sync with
develop
- easyblocks: PR #3500
- easyconfigs: TODO
- framework: in sync with
- open PRs to focus on:
- improve portability of reproducible tarballs PR #4660 ready for review [Kenneth]
-
$CPATH
related PRs - Rename SOURCE_STEP to EXTRACT_STEP (PR #4629)
- Let jobs retweak easyconfigs themselves (PR #4669) [Kenneth]
- Deprecate use of
parallel
easyconfig parameter and fix updating the template value (PR #4580)- still being considered to be included in EasyBuild 5.0
- we can already disallow setting of
parallel
in easyconfig files by checking for it in easyconfigs test suite - support for
parallel
easyconfig parameter should be deprecated, not removed - impact on easyblocks?
attending: Kenneth, Alex, Alexandre, Simon, Jasper, Bart
-
project board: https://github.com/orgs/easybuilders/projects/18/views/2
-
syncing of
5.0.x
branches withdevelop
- framework PR #4654
- easyblocks PR #3459
- easyconfigs PR #21497
- collapse of
5.0.x
intodevelop
is postponed a bit, we need to be closer to EasyBuild 5.0 release for that- mainly to avoid impact on people using EasyBuild 4.9.x release with
--from-pr
+ having to re-trigger CI in easyconfig PRs - doesn't affect
--new-pr
: will still work with EasyBuild 4.x even whendevelop
is already prepared for EasyBuild 5.0 release - probably only makes sense when we have a release candidate for EasyBuild 5.0
- mainly to avoid impact on people using EasyBuild 4.9.x release with
- framework
- easyblocks
- update easyblock to let EasyBuild framework take care of prepend to
$PYTHONPATH
or$EBPYTHONPREFIXES
+ makePythonBundle
andPythonPackage
aware of--prefer-python-search-path
EasyBuild configuration option (PR #3343) - Make
CMakeMake
respect thetoolchainopts
when selecting build type (easyblocks #3452)
- update easyblock to let EasyBuild framework take care of prepend to
framework
- [Kenneth] Enable
module-depends-on
by default (PR #4500) - [Alex] Rename
SOURCE_STEP
toEXTRACT_STEP
(PR #4629) - [Kenneth] add option search-path-cpp-headers to control how EasyBuild sets paths to headers at build time (PR #4645)
- affects build environment set up by EaysBuild
- [Kenneth] refactor generation of required environment variables in module files (PR #4653)
- merge conflict on
easybuild/tools/config.py
-
ModuleLoadEnvironment
should not be a singleton? - deprecates
make_module_req_guess
method - easyblocks will have to be updated accordingly
- Alex is working on this already
-
self.module_load_environment
should still be accessed inmake_module_step
(taking into account--module-only
)
- merge conflict on
- [Kenneth] add option
module-search-path-headers
to control how modules set search paths to header files (PR #4655) - [Kenneth] use Slurm as the default job back-end (PR #4659)
- shold be ready to go now
- use more portable
--date
argument fortouch
command used in reproducible tarballs (PR #4660) - Add flushing and possible closing of stdin on
run_shell_cmd
(PR #4664) - Proposed changest to add a
timeout
torun_shell_cmd
(PR #4665)
easyblocks
- enhance
CMakeMake
easyblock to check whether correct Python installation was picked up by CMake (PR #3399) - [Jasper] Make
MesonNinja
respect thetoolchainopts
with buildtype as well as--debug
and--optimization
flags (PR #3454)
easyconfigs
- stop using
modextrapaths
to update$PYTHONPATH
with standard path to installed Python packages (lib/python%(pyshortver)s/site-packages
) (PR #20960)
- attending: Kenneth, Bart, Mikael, Alex
- project board: https://github.com/orgs/easybuilders/projects/18/views/2
- EasyBuild v4.9.4 was released 22 Sept'24
-
5.0.x
branches will soon be collapsed intodevelop
- probably on Wed 25 Sept'24
- after sync of
5.0.x
with currentdevelop
- increases the pressure to make next EasyBuild release 5.0...
- will break
--from-pr
with EasyBuild 4.x- should use
--from-commit
instead, see also https://docs.easybuild.io/integration-with-github/#github_from_commit
- should use
- for open easyconfig PRs, we'll need to make sure that CI is re-run before merging
- first call
eb --sync-pr
beforeeb --merge
- first call
- framework:
- Enable
module-depends-on
by default (PR #4500)- deprecate
modules_depends_on
easyconfig parameter - => set it to
None
as default, print warning frommodule_generator.load_module
+ honor it when set toFalse
/True
- => also accept use of
modules_depends_on = False
in tests (will trigger deprecated warning) -
modules_depends_on
easyconfig parameter was introduced in framework PR #2391, but use case for it was unclear, maybe to "ease in" to usingdepends_on
?- was originally introduced to mirror
recursive_module_unload
which was already there;
- was originally introduced to mirror
- deprecate
- prepend to
$PYTHONPATH
or$EBPYTHONPREFIXES
in generated module files by automatically scanning for python site package directories (PR #4539)- should be merged along with companion PRs in easyblocks (PR #3343) + easyconfigs (#20960)
- so should be done before
5.0.x
is collapsed intodevelop
- see also easyconfigs issue #21456 for easyconfigs that explictly update
$PYTHONPATH
- add option
cpp-headers-search-paths
to control how EasyBuild sets paths to headers at build time (PR #4645)- this PR is about
$CPATH
set in build environment that EasyBuild uses - tests fixed, extra test added
- other (independent) PR to not update
$CPATH
in generated module files is coming up, see PR #4653- keep in mind there's a temporary module file as well, which is loaded before extensions are being installed
-
make_module_req_guess
is often redefined by easyblocks
- this PR is about
- Reverse order for parsing files in
XDG_CONFIG_DIRS
(PR #4630)
- Enable
- easyblocks:
-
attending: Kenneth, Alex, Bart, Mikael, Jasper, Georgios
-
project board: https://github.com/orgs/easybuilders/projects/18/views/2
-
EasyBuild v4.9.3 released on 14 Sept 2024
- we'll need a EasyBuild v4.9.4 release too because of a "severe" bug in GCC easyblock... (see easyblocks PR #3449)
- framework
- bump minimum required Tmod (4.x) to 4.3.0 (PR #4425)
- use more granular exit codes when
EasyBuildError
is raised (PR #4534) - move verifying of checksums from source to fetch step, to include it with --fetch (PR #4624)
- derive EnvironmentModules class directly from ModulesTool rather than from to be deprecated EnvironmentModulesTcl (PR #4625)
- sync with develop (20240915) (PR #4639)
- easyblocks
- sync with develop (20240915) (PR #3447)
- framework
- Replace
parallel
easyconfig parameter bymaxparallel
(PR #4398) - Enable
module-depends-on
by default (PR #4500) - prepend to
$PYTHONPATH
or$EBPYTHONPREFIXES
in generated module files by automatically scanning for python site package directories (PR #4539)- Mikael is looking into suggested changes
- Deprecate use of
ec['parallel']
and fix updating the template value (PR #4580) - Rename
SOURCE_STEP
toEXTRACT_STEP
(PR #4629)
- Replace
- easyblocks
- ...
- project board: https://github.com/orgs/easybuilders/projects/18/views/2
- merged PRs
- several PRs related to Environment Modules support (contributions by Tmod maintainer)
- drop load storm safe guard for Environment Modules v4.2.4+ (PR #4373)
- add
check_group
support for module files in Tcl syntax (PR #4418) - Run unit tests on an updated versions of Modules: v4.5.3 + v5.3.1 (PR #4415)
- Use
getenv
modulefile command withEnvironmentModules
>= 4.2.0 (PR #4614) - Add module cache build support on
EnvironmentModules
(PR #4615) - derive
EnvironmentModules
class directly fromModulesTool
rather than from to be deprecatedEnvironmentModulesTcl
(PR #4625) - update to docs that suggests to install Environment Modules 3.2.10 (docs PR #264)
- Use default value
$XDG_CONFIG_DIRS
from XDG basedir spec:/etc/xdg
(instead of/etc
) (PR #4591 )- including warn about finding
/etc/easybuild.d/*.cfg
instead of/etc/xdg/easybuild.d/*.cfg
- including warn about finding
- move verifying of checksums from source to fetch step, to include it with
--fetch
(PR #4624)
- several PRs related to Environment Modules support (contributions by Tmod maintainer)
- open active PRs
- Enable
module-depends-on
by default (framework PR #4500)-
--module-depends-on
should only mean usedepends_on
when using Lmod as modules tool
-
- prepend to
$PYTHONPATH
or$EBPYTHONPREFIXES
in generated module files by automatically scanning for python site package directories (framework PR #4539)- companion PRs:
- Use
prefer_ebpythonprefixes
flag to use$EBPYTHONPREFIXES
(easyblocks PR #3343) - Drop manually specified default
$PYTHONPATH
's (easyconfigs PR #20960)
- Use
- reviewed by Alex, some nitpicking on names of the options
- companion PRs:
- More granular exit codes (framework PR #4534)
- Kenneth is reviewing this in detail, has some (minor) suggestions coming soon...
- enhancing tests for non-1 exit code is not that trivial...
- run
pip check
only once for PythonBundle (PR #3428)- see also PR #3432
- Enable
- TODO:
- ...
- Merged module extensions default to true.
- Merged template constant list to dicts (+ fix).
- Alex looked at EBPYTHONPREFIXES pr. Does not like the option names.
- Alex: EBPYTHONPREFIXES means nothing to users, prefer some more descriptive option about user vs system precedence.
- Mikael: Maybe we call the easyconfig/block option
force_pythonpath
(default false)? - Suggestions for command line option (currently
--prefer-ebpythonprefixes
)?- Mikaels wild idea:
--use-system-level-python-path
- Mikaels wild idea:
--use-low-prio-python-path
- Mikaels wild idea:
- Alex is ready to merge return codes PR #4534
- Maybe we add a test for return codes?
- (updated) project board for EasyBuild 5.0
- merged PRs
- ...
- recent open PRs
- Use default value
$XDG_CONFIG_DIRS
from XDG basedir spec:/etc/xdg
(instead of/etc
) (PR #4591)- breaking change
- we should at least print a warning when finding
/etc/easybuild.d/*.cfg
, maybe even still pick up on them?
- convert template constant lists to dicts and export the constants by name (PR #4595)
- breaking (though mostly internal) change to value type for
TEMPLATE_*
constants
- breaking (though mostly internal) change to value type for
- add
qa_check_interval
option torun_shell_cmd
(PR #4613)- seemed necessary for WIEN2k easyblock, but looks like there's actually a bug to fix...
-
EBPYTHONPREFIXES
vsPYTHONPATH
(framework PR #4539, easyblocks PR #3343, easyconfigs PR #20960)- is now opt-in via
--prefer-ebpythonprefixes
- Mikael will do some more testing with this
- only consider
/lib/
, since that's also what oursitecustomize.py
does
- is now opt-in via
- Use default value
- plan towards EasyBuild 5.0
- focus on breaking changes, put other efforts in the fridge for now
- that includes PRs related to improving naming consistency of things
- would be nice to get support for alternative names for toolchain options merged (framework PR #4587), since that opens door for "modernizing" easyconfig files
- finish up
run_shell_cmd
effort
- focus on breaking changes, put other efforts in the fridge for now
(hosted by Mikael)
- Work on
EBPYTHONPREFIXES
proceeding (see easyblock PR#33438. Needs lots of testing, preliminary results look fine. PRs are not that complex but needs all 3 (framework+blocks+configs) to test. Someone other than Mikael also needs to volunteer to test some of it at least. - Toolchain options basically done framework PR#4587, PR stuck on test that only runs on easybuilders repo (why do we have such tests?)
- Mikael: I can't think of a good reason why this would only run within the easybuilders branches; just have it run always (and fix it)?
- Maybe add a
--accept-eula-for=anaconda
(no issue yet, also not a 5.0.x blocker in Mikaels opinion)
(hosted by Simon)
Limited progress since the previous meeting and several people unavailable for this meeting.
- check presence of CWD at the end of
run_shell_cmd
and try to return to original working directory if non-existent (framework PR #4390) - remove
CMAKE_INSTALL_LIBDIR
settings from configopts + add test to enfore use of install_libdir instead (easyconfigs PR #20487)
- Make generic EasyBlock usable to install software (framework PR #4531)
- this is not a blocker for EasyBuild 5.0, so we should put this in the fridge until EasyBuild 5.0 is out
-
pre_configure_cmds
in PR #4531 is run in separate subshell, which limits usefulness- also only picked up when
configure_cmd
is set (seeEasyBlock.configure_step
)
single_shell_env = True pre_configure_cmds = [ "export FOO=bar", "ln -s something something_else", "sed ...", "make configure", ] configure_cmd = "./configure"
shell 0:
set -e echo '>>> running command: export FOO=bar' export FOO=bar >&2 | tee /tmp/export.out echo ">>> done running command: export FOO=bar'" ... echo ">>> running command: ./configure" ./configure
- also only picked up when
- progress has stalled, how do we get things back on track towards EasyBuild 5.0?
- Use "alternative" instead of "alternate" PR#4555
- include alternative names of easyconfig parameters in output of --avail-easyconfig-params PR#4549
-
Alex: Issues to test https://github.com/easybuilders/easybuild-easyconfigs/pull/20487
- it can only be tested on jsc-zen3 beacuse of bot support for EB5
- jsc-zen3 fails to build old toolchains (2020a)
- solutions:
- ignore the deprecated toolchains and don't test them
- merge 5.0.x branch into develop to be able to test in generoso
-
Jasper: New meta issue to track progress on renaming of easyconfig parameters
-
Alex: Review of PR from HPCNow to have more granular exit codes:
-
Mikael: reviewing easyconfigs not yet using Cargo easyblock
-
Alex: can be merged asap: https://github.com/easybuilders/easybuild-easyconfigs/pull/20435
- Jasper: merging...
-
Alex: Kenneth reviewed https://github.com/easybuilders/easybuild-framework/pull/4531, not yet looked into it in detail but seeems ok
-
Alex: Kenneth reviewed https://github.com/easybuilders/easybuild-framework/pull/4531, minor comments, seems ok
-
Mikael: enabling module-extensions by default is more painful than expected due to the buggy test with
namelower
templates. Not a priority. -
Mikael: will ping other maintainers when
PYTHONPATH
PR is ready- Bart: can help to test this PR or anything else that needs doing
- prepared, regtest
- versions checks to avoid mixing major versions across the EasyBuild components #4520
- will be included with EasyBuild v4.9.2 release
- quite strict now, could loosen this up
- new EasyBuild using easyconfigs for EB v4.x should be fine
- should we add support for
--allow-from-pr-api-mismatch
so you can still consume (only) easyconfig PRs intended for EasyBuild 5.x using EasyBuild 4.9.2+-
--from-pr
on a merged PR => pull easyconfig fromdevelop
branch - using EB 4.9.2
--from-pr
+ when5.0.x
in collapsed intodevelop
=> ERROR - conclusion: for v4.9.2, we'll leave the strict API version check in place for both framework+easyblocks & framework+easyconfigs
- if needed/desired, we could still do a v4.9.3 release that adds a way to opt-out
-
- add renamed alternative constants/templates/parameters #4514
- trigger pre-hook in
run_shell_cmd
as early as possible so dry-run + trace output is correct #4544
- check presence of CWD at the end of
run_shell_cmd
and try to return to original working directory if non-existent #4390 - include alternative names of easyconfig parameters in output of
--avail-easyconfig-params
#4549 - Use "alternative" instead of "alternate" #4555
- add support for alternative EasyBuild configuration options (WIP) #4556
- More granular exit codes #4534
┃ 74 class EasyBuildExit(IntEnum): """ Table of exit codes """ SUCCESS = 0 ERROR = 0 MISS_EASYCONFIG = 3 # no_specific_easyconfig = 4 FAIL_IMPORT_EASYBLOCK = 5 FAIL_IMPORT_EASYBLOCK_CLASS = 6 MISS_DEPENDENCY = 10 MISS_SYSTEM_DEPENDENCY = 11 MISS_SOURCES = 12 FAIL_SANITY_CHECK = 20 FAIL_MODULE_WRITE = 21 ERRO_SYNTAX = 30
- can use
EasyBuildExit.ERROR
- which exit code to use for failing sanity check command?
- can't use exit code of command directly, since that would overlap with custom exit codes used by EasyBuild
-
MISS_DEPENDENCY
vsMISSING_DEP
- custom exit code for download failures, failing shell commands, ...
- also separate exit code for extract failures?
- can use
- parent issue with overview of what's TODO for renaming stuff (Kenneth)
- toolchain options (Jasper)
- cfg options (Kenneth)
- capture renamed stuff in docs (see PR #)
- feature to auto-rename in easyconfigs (see PR #4547)
attendees: Kenneth, Simon, Jasper, Mikael, Bart
- create
env.sh
andcmd.sh
helper scripts inrun_shell_cmd
(framework PR #4486) - fix
test_update_branch_github
which got broken becausetoy-0.0.eb
easyconfig was modified (framework PR #4545) - use
run_shell_cmd
(and use f-strings) in custom easyblock for GAMESS-US (PR #3342)
- versions checks to avoid mixing major versions across the EasyBuild components (PR #4520)
- add renamed alternate constants/templates/parameters (PR #4514)
- policy for naming easyconfig parameters/templates/constants/configuration options
- multiple words are separated by
_
(as opposed to just concatenating them)- examples:
build_opts
(notbuildopts
),post_install_cmds
(notpostinstallcmds
) - exceptions:
symlink
,sysroot
- examples:
- common long words can be abbreviated, but only if there's no room for confusion
- examples:
deps
(instead ofdependencies
),opts
(instead ofoptions
),env_mod
(instead ofenvironment_module
) -
deps
,opts
,stats
,exts
,vars
,dir
,ver
,maj_ver
,min_ver
,short_ver
,py
(python
),cuda_cc
(CUDA compute capabilities) - exceptions:
-
configure
in easyconfig parameters (to be consistent withconfigure
step) -
cfg
in EasyBuild configuration options
-
- examples:
- confusion with commonly used terms (like 'module') is avoided by being more descriptive
- example: don't use
mod
for module, butpy_mod
for Python module,env_mod
for environment module,fortran_mod
for Fortran module
- example: don't use
- multiple words are separated by
- support for automatically renaming in easyconfigs: WIP PR #4547
- nice to have for EasyBuild 5.0 (not a blocker)
- TODO
- renaming of configuration options
- reanming of toolchain options
-
usempi
-> justmpi
? or more specific like'mpi_compilers': True
-
- make
eb -a
& co also mention alternate names - docs
- policy for naming easyconfig parameters/templates/constants/configuration options
attendees: Kenneth, Bart, Alex, Mikael, Jasper, Simon
- add support for alternate easyconfig parameters/templates/constants (PR #4511)
- follow-up PR https://github.com/easybuilders/easybuild-framework/pull/4514
- @all: please review
- separate PR for alternative names for configuration options
- policy (should be documented)
- underscore where there should be a space
- full words, except for deps, env_mods, etc.
- see also https://github.com/easybuilders/easybuild-framework/issues/4464
- set CMake installation LIBDIR to lib by default in CMakeMake easyblock https://github.com/easybuilders/easybuild-easyblocks/pull/3227
- trouble with SuiteSparse has nothing to do with changes in
CMakeMake
being made in this PR - follow-up PR for easyconfigs: https://github.com/easybuilders/easybuild-easyconfigs/pull/20487
- trouble with SuiteSparse has nothing to do with changes in
- check API mismatch: https://github.com/easybuilders/easybuild-framework/pull/4520/files
- GAMESS-US to
run_shell_cmd
: https://github.com/easybuilders/easybuild-easyblocks/pull/3342 - EBPYTHONPREFIXES: https://github.com/easybuilders/easybuild-framework/pull/4539
- needs a test
python -O -m test.framework.toy_build test_ebpythonprefixes
- easyblocks: https://github.com/easybuilders/easybuild-easyblocks/pull/3343
- PR to clean up easyconfigs coming up
- https://github.com/easybuilders/easybuild-framework/pull/4496 can be repursoded for the other general improvements/code cleanup
- needs a test
- support for
cmd.sh
to set up shell for failing shell commands- https://github.com/easybuilders/easybuild-framework/pull/4486
- should be documented (Kenneth)
- more general
EasyBlock
- https://github.com/easybuilders/easybuild-framework/pull/4531
- toy test
- toy-0.0.eb =>
easyblock = 'EasyBlock'
to force using genericEasyBlock
class
- toy-0.0.eb =>
- recently synced with
develop
- framework: 2024-05-22 (framework PR #4538)
- easyblocks: 2024-05-22 (easyblocks PR #3333)
- easyconfigs: 2024-05-22 (easyconfigs PR #20578)
- requires restoring Molpro easyblock: easyblocks PR #3335
- versions checks to avoid mixing major versions across the EasyBuild components (PR #4520)
- who: Simon + Kenneth
- action: review (Kenneth)
- should into EasyBuild v4.9.2
- add support for disabling strict RPATH sanity check + print a warning when mixing of non-RPATH and RPATH installations was detected (PR #4475)
- who: Kenneth
- action: needs to be reworked, RPATH sanity check needs to be changed
- Log shell cmds to temp file which allow users to revisit them (PR #4486)
- who: Mikael + Kenneth
- action: merge it (Kenneth), then document it (Mikael?)
- Prefer
$EBPYTHONPREFIXES
over$PYTHONPATH
(PR #4496)- who: Mikael
- plan: rework based on current ideas, then get feedback
- concerns w.r.t. behaviour for Python installations not controlled by EasyBuild
-
PythonPackage
should take into accountself.prefer_ebpythonprefixes
self.prefer_ebpythonprefixes = build_option('prefer_ebpythonprefixes') and self.cfg['prefer_ebpythonprefixes']
- let framework prepend to
$EBPYTHONPREFIXES
or$PYTHONPATH
(similar to$LD_LIBRARY_PATH
) forlib/python*/site-packages
, if the easyconfig/easyblock is not prepending to either$EBPYTHONPREFIXES
or$PYTHONPATH
already, and only ifPython
is a dependency - clean up easyconfigs to not update
$PYTHONPATH
viamodextrapaths
+ make easyconfigs test suite check that this doesn't get re-introduced (with a whitelist for special cases)
- add support for alternate easyconfig parameters/templates/constants (PR #4511)
- cfr. issue #4464
- who: Jasper + Kenneth
- action: Kenneth figures out trouble with the tests
- follow-up PR: add renamed alternate constants/templates/parameters (PR #4514)
- TODO:
- document policy on naming stuff + cross-check with PR #4514
- support for alternative names for configuration options
- More granular exit codes (PR #4534)
- who: Danilo + Alex
- set CMake installation LIBDIR to lib by default in CMakeMake easyblock (PR #3227)
- who: Alex + Kenneth
- status: ready to merge
- several easyblocks to migrate from
run_cmd
torun_shell_cmd
- Molpro: https://github.com/easybuilders/easybuild-easyblocks/pull/3335
- new: MetalWalls (Kenneth?)
- other:
- GAMESS-US (Alex)
- Wien2k (Kenneth)
- QuantumESPRESSO (Alan?)
- ABAQUS (Kenneth?)
attending: Alex, Simon, Bart, Jasper, Mikael
- Checksums:
- switch checksum default to sha256 (framework PR #4523)
- deprecate old checksum options (incl. md5) (framework PR #4526)
- RPATHs:
- always include rpath configuration setting in output of --show-config (framework PR #4515)
- Reproducible tarballs:
- Fix stability of reproducible tarballs from git repos (framework PR #4517)
- use generic chmod command to reset permissions of reproducible archives (framework PR #4522)
- Easyblocks:
- use ERROR global from tools.config in clang easyblock (easyblocks PR #3318)
- use ERROR global from tools.config in TensorFlow easyblock (easyblocks PR #3320)
- Log shell cmds to temp file which allow users to revisit them (PR #4486)
- Alex: will review and merge it asap
- Prefer
$EBPYTHONPREFIXES
over$PYTHONPATH
(framework PR #4496)- Mikael: EBPYTHONPREFIX is not understood by anything but EB, this makes it not a workable solution for software in SYSTEM (or Conda)
- Alex: we need something that can be understood by upstream Python, is there something softer than PYTHONPATH?
- Mikael: new logic with EBPYTHONPREFIX can be limited to PythonPackage easyblock (and its derivates), so moving from framework to easyblock
- Bart: many users load virtual environments before loading software modules. Our Python modules set PYTHONPATH to a sitecustomization.py that sets sys.path
- Mikael: complex to implement as opt-in as needs to consider all custom PYTHONPATH definitions in easyconfigs
- add support for alternate easyconfig parameters/templates/constants (framework #4511)
- Jasper: unit test fails in CI, but not when run standalone locally. Somewhere templates stopped to be resolved.
- add 'archive' extra to optionally install easybuild-easyconfigs-archive (PR #20435)
- Aled: ready to merge
- set CMAKE_INSTALL_LIBDIR to lib by default
- Standarize behaviour on CWD changes
- add new get_cwd function to tools.filetools to retrieve current working directory (PR #4525)
- return to original working directory after executing a command in run_shell_cmd (PR #4390)
- Alex: conbination of faulty storage and build on install dir makes
os.getcwd
to fail (storage in zombie state). Proposal to standarize behaviour ofrun_shell_cmd
to switch to starting working directory at the end of execution - Mikael: this changes behaviour and should not be necessary as any changes to working directory inside the shell executing the command should not affect the CWD of the main Python process. Will be troublesome to execute multiple commands that rely on directory changes by previous commands.
- Alex: I still hit the error with
os.getcwd
outside of the subprocess shell
- Replace run_cmd with run_shell_cmd in custom easyblock for QuantumESPRESSO (PR #3269)
- Simon: there is some on-going discussion about deciding which one of the two easyblocks for QuantumESPRESSO becomes the default one (aka
EB_QuantumESPRESSO
)
- Simon: there is some on-going discussion about deciding which one of the two easyblocks for QuantumESPRESSO becomes the default one (aka
- update ConfigureMake easyblock to error out on unknown configure args (PR #3025)
- Companion PR adding deprecation warning/error: https://github.com/easybuilders/easybuild-easyblocks/pull/3026
- seems ready for merge
- HPCNow interested in adding additional error types and exit codes to EasyBuild: https://github.com/easybuilders/easybuild-framework/issues/4426
- Jasper tagged fior EB5 the PR from Flamefire fixing compilation on AMD Zen with Intel compilers (https://github.com/easybuilders/easybuild-framework/pull/3797), as it is quite annoying to deal with those errors. Not a blocker but nice to have.
attending: ???
- Fix stability of reproducible tarballs from git repos (framework PR #4517)
- Log shell cmds to temp file which allow users to revisit them #4486
- ready to merge
- Prefer
$EBPYTHONPREFIXES
over$PYTHONPATH
(framework PR #4496)- may need to move logic to pick EBPYTHONPREFIXES vs PYTHONPATH to
EasyBlock.make_module_req
(rather than inModuleGenerator.update_paths
) - maybe need to logic in both
make_module_req
(default + makePythonPackage
behave) +ModuleGenerator
(to deal withPYTHONPATH
used inmodextrapaths
) - EB should produce a warning if it detects that
PYTHONPATH
is used when it shouldn't be - Mikael will continue working on this
- may need to move logic to pick EBPYTHONPREFIXES vs PYTHONPATH to
- add support for alternate easyconfig parameters/templates/constants (framework #4511)
- always include rpath configuration setting in output of
--show-config
(framework PR #4515) - 5.0.x consideration: ruff format
filetools.py
(PR #4521)- not so much about which tool/linter is used, but rather whether the community thinks it's worth adopting an approach like this
- ruff can be heavily configured, we could configure it to match our current code style
- definitely impacts usefulness of "git blame"
- should we recommend that developers install a pre-commit hook to run
ruff
on their code changes? - should we adopt a bot that automatically add a commit to fix code style changes?
- add 'archive' extra to optionally install easybuild-easyconfigs-archive (PR #20435)
- need to introduce protected branch in archive repo => fixed
- how to mitigate impact of collapsing
5.0.x
branches indevelop
- will (often) break use of
--from-pr
with EasyBuild 4.x - see also Simon's framework PR #4520
- include
easybuild_version = '5.0'
in easyconfig that require EasyBuild v5.0# requires EasyBuild 5.0 which enables use_pip by default easybuild_version = '5.0'
- also will be useful when we start renaming easyconfig parameters
- error message should be improved
- motivation to rename branches in GitHub?
-
--from-pr
on merged PR currently pulls fromdevelop
- only use
5.0.x
style branches going forward? - how does
--new-pr
know which branch to target by default?
-
- will (often) break use of
attending: ???
- v4.9.1 released 2024-04-05 (14 days ago)
- next release will hopefully be 5.0.0 (famous last words)
- recently synced with
develop
- framework: 2024-04-14 (framework PR #4508)
- easyblocks: 2024-04-06 (easyblocks PR #3287)
- easyconfigs: 2024-04-06 (easyconfigs PR #20314)
framework
- implement support for running interactive commands with
run_shell_cmd
(PR #4453) - deprecate
run_cmd
andrun_cmd_qa
& co, move them toeasybuild._deprecated
module (PR #4433)
easyblocks
- various PRs to migrate from
run_cmd_qa
torun_shell_cmd
- remove a bunch of unused easyblocks (WRF-Fire, HEALPix, pplacer, Modeller, Molpro)
- drop support for versions < 9.5 in custom easyblock for Geant4 (PR #3296)
- add warning if .Renviron detected during install of RPackage (PR #3263)
easyconfigs
- Remove dead dotNET codes (PR #20259)
framework
- add support for disabling strict RPATH sanity check + print a warning when mixing of non-RPATH and RPATH installations was detected (PR #4475)
- add mechanism for easyconfig template deprecation (PR #4485)
- stuck on broken tests
- Log shell cmds to temp file which allow users to revisit them (PR #4486)
- Enable module-depends-on by default (PR #4500)
- Make module-extensions true by default (PR #4501)
- add support for alternate easyconfig parameters/templates/constants (PR #4511)
- Prefer EBPYTHONPREFIX over PYTHONPATH #4496
easyblocks
- Replace
run_cmd
withrun_shell_cmd
in custom easyblock for QuantumESPRESSO (quantumespresso.py) (PR #3269)
framework
- go through open PRs/issues for EasyBuild 5.0: what do we really still need to do that is required for EasyBuild 5.0
easyblocks
- complete migration to
run_shell_cmd
(ABAQUS, GAMESS-US, QuantumESPRESSO, WIEN2k) - go through open PRs/issues for EasyBuild 5.0: what do we really still need to do that is required for EasyBuild 5.0
- not a "big bang" approach by deprecated
configopts
& co for EasyBuild 5.0 - first add support for new names, then gradually adopt them
- not necessarily in EasyBuild 5.0
- only deprecate when framework/easyblocks/easyconfigs have been migrated to new news (EasyBuild 5.x with x > 0)
- drop support for old names in EasyBuild 6.0 (in X years)
- need to take into account hooks using old/new names...
- weird issue with
libjpeg.so.8
not being found become Meson strips out part of RPATH section fixed
attending: Alex, Bart, Jasper, Simon, Kenneth
- being prepared
- unchanged since 2024-03-28 meeting, except for merging PRs to sync with
develop
branch
- hide
readelf
output in trace output in RPATH sanity check PR #4491 - switch from
ls
tobash
in tests that are expecting this to be a binary PR #4492
- use
sysconfig.get_config_vars
from Python standard library inPythonPackage
easyblock (instead ofdistutils.sysconfig.get_config_vars
) PR #3264 (Python 3.12) - also run easyblocks test suite with Python 3.12 PR #3266
- remove unused easyblock for ncurses (
ncurses.py
) PR #3265
- cleanup Python < 2.6 test skip PR #20253
- deprecate
run_cmd
andrun_cmd_qa
& co, move them toeasybuild._deprecated
module (WIP) (PR #4433)- blocked by open
run_shell_cmd
PR #4453
- blocked by open
- implement support for running interactive commands with
run_shell_cmd
(WIP) (PR #4453) - add support for disabling strict RPATH sanity check (PR #4475)
- our idea to detect a "mixed stack" (mix of RPATH and non-RPATH installations) isn't really working out...
- we can merge support for
--disable-strict-rpath-sanity-check
, and always mention it in error message for failing RPATH sanity check for now - should also be controllable via easyconfig parameter (for OCaml for example)
- then later come up with a good way of detected mixed stack
-
ldd
check should always be run to check for missing libraries, regardless of using RPATH or not - we could/should only care of
NEEDED
libraries (direct dependencies, viareadelf -d
) ifldd
reports them asnot found
=> no problem in mixed stack situation
- Rename easyconfig parameters (WIP PR #4483)
- Log shell cmds to temp file which allow users to revisit them (PR #4486)
- add mechanism for easyconfig template deprecation (PR #4485)
- fix extension filter for Perl packages (PR #2699)
- set CMake installation
LIBDIR
to lib by default inCMakeMake
easyblock (PR #3227) - update
ConfigureMake
easyblock to error out on unknown configure args (PR #3025) - use
run_shell_cmd
in custom easyblock for WRF PR #3270
attending: Mikael, Jasper, Kenneth, Simon
- blocked by framework PR #4468 to add support for
--from-commit
and--include-easyblocks-from-commit
- change
tar
command used inget_source_tarball_from_git
to get reproducible tarballs (PR #4248) - Eliminate use of
distutils.version.StrictVersion
, useLooseVersion
instead (PR #4476) - also run unit tests with Python 3.12 + add it to classifiers in
setup.py
(PR #4484)
(none)
(none)
- deprecate
run_cmd
andrun_cmd_qa
& co, move them toeasybuild._deprecated
module (WIP) (PR #4433)- blocked by open
run_shell_cmd
PR #4453
- blocked by open
- implement support for running interactive commands with
run_shell_cmd
(WIP) (PR #4453) - add support for disabling strict RPATH sanity check (PR #4475)
- our idea to detect a "mixed stack" (mix of RPATH and non-RPATH installations) isn't really working out...
- we can merge support for
--disable-strict-rpath-sanity-check
, and always mention it in error message for failing RPATH sanity check for now - should also be controllable via easyconfig parameter (for OCaml for example)
- then later come up with a good way of detected mixed stack
- Rename easyconfig parameters (WIP PR #4483)
- Log shell cmds to temp file which allow users to revisit them (PR #4486)
- add mechanism for easyconfig template deprecation (PR #4485)
- fix extension filter for Perl packages (PR #2699)
- set CMake installation
LIBDIR
to lib by default inCMakeMake
easyblock (PR #3227) - update
ConfigureMake
easyblock to error out on unknown configure args (PR #3025)
attending: Kenneth, Mikael, Simon, Jasper, Alex, Bart, Adam
- working towards EasyBuild v4.9.1 release using
develop
branch, hopefully this week...
- framework: sync with
develop
(20240311) PR #4482 - easyblocks: sync with
develop
(20240311) PR #3251 - easyconfigs: sync with
develop
(20240311) PR #20076
- rename unclear
*run*
methods to*install_extension*
+ renameinstall_extensions
toinstall_all_extensions
(PR #4400) - replace
log.warn
withlog.warning
(PR #4473) - Eliminate
distutils.util.strtobool
(PR #4477) - fix easyconfig parameter deprecation (PR #4479)
- Clean up parameter deprecation warnings, and update easybuild doc urls (PR #4480)
- rename
run
method toinstall_extension
, and likewise forprerun
topre_install_extension
,postrun
topost_install_extension
, andrun_async
toinstall_extension_async
(PR #3064)
- migrate archive of easyconfigs to
easybuild-easyconfigs-archive
(PR #20006)- see also (easybuild-easyconfigs-archive PR #2)
-
setup.py
of easybuild-easyconfigs will be enhanced to easily install archive (but it won't be by default)
- change
tar
command used inget_source_tarball_from_git
to get reproducible tarballs (PR #4248) - implement support for running interactive commands with
run_shell_cmd
(WIP) (PR #4453) - add support for disabling strict RPATH sanity check (PR #4475)
- our idea to detect a "mixed stack" (mix of RPATH and non-RPATH installations) isn't really working out...
- Eliminate use of
distutils.version.StrictVersion
(PR #4476) - remove
distutils
use fromsetup.py
(PR #4478) - Rename easyconfig parameters (WIP PR #4483)
- fix extension filter for Perl packages (PR #2699)
- update
ConfigureMake
easyblock to error out on unknown configure args (PR #3025) - set CMake installation
LIBDIR
tolib
by default inCMakeMake
easyblock (PR #3227)
- Replace parallel by maxparallel (PR #19375)
- refactor easyconfig parameters and template constants to use a consistent naming style (issue #4464)
- enabling RPATH linking by default
- RPATH sanity check fails for OCaml (easyblocks issue #3247)
- RPATH sanity check fails for LAMMPS when (not all) dependencies are installed with RPATH (easyconfigs issue #20051)
attending: Kenneth, Bart, Simon, Alex, Jasper, Mikael
- working to push out EasyBuild v4.9.1 using current
develop
in next couple of days...
-
5.0.x
branches recently synced withdevelop
(framework PR #4469, easyblocks PR #3238, easyconfigs PR #20004)
- framework
- easyblocks
- easyconfigs
- none
- framework
- change
tar
command used inget_source_tarball_from_git
to get reproducible tarballs (PR #4248) [Alex] - rename unclear
*run*
methods to*install_extension*
+ renameinstall_extensions
toinstall_all_extensions
(PR #4400) [Kenneth] - implement support for running interactive commands with
run_shell_cmd
(WIP) (PR #4453) [Kenneth] - deprecate
run_cmd
andrun_cmd_qa
& co, move them toeasybuild._deprecated
module (WIP) (PR #4433) [Kenneth]
- change
- easyblocks
- rename
run
method toinstall_extension
, and likewise forprerun
topre_install_extension
,postrun
topost_install_extension
, andrun_async
toinstall_extension_async
(PR #3064) [Alex] - set CMake installation
LIBDIR
tolib
by default inCMakeMake
easyblock (PR #3227) [Simon] - replace
run_cmd
withrun_shell_cmd
in custom easyblock for LAMMPS (lammps.py
) (PR #3244) [Kenneth]- failing test report when not all dependencies were installed with RPATH... :-/
- rename
- easyconfigs
- migrate archive of easyconfigs to easybuild-easyconfigs-archive (PR #20006)
- Migrate archive of easyconfigs from easybuild-easyconfigs (easybuild-easyconfigs-archive PR #2)
- migrate archive of easyconfigs to easybuild-easyconfigs-archive (PR #20006)
- Are we sticking to enabling RPATH by default? [Kenneth]
- installing with RPATH on top of dependencies not installed with RPATH may fail...
- cfr. Kenneth's recent experience with LAMMPS (issue #20051)
== FAILED: Installation ended unsuccessfully: Sanity check failed: Library libhdf5_hl.so.310 not found for /software/LAMMPS/2Aug2023_update2-foss-2023a-kokkos/bin/lmp Library libbz2.so.1.0 not found for /software/LAMMPS/2Aug2023_update2-foss-2023a-kokkos/bin/lmp Library libhdf5_hl.so.310 not found for /software/LAMMPS/2Aug2023_update2-foss-2023a-kokkos/lib/liblammps.so.0 Library libbz2.so.1.0 not found for /software/LAMMPS/2Aug2023_update2-foss-2023a-kokkos/lib/liblammps.so.0 Library libhdf5_hl.so.310 not found for /software/LAMMPS/2Aug2023_update2-foss-2023a-kokkos/lib64/liblammps.so.0 Library libbz2.so.1.0 not found for /software/LAMMPS/2Aug2023_update2-foss-2023a-kokkos/lib64/liblammps.so.0 (took 23 mins 13 secs)
- cfr. Kenneth's recent experience with LAMMPS (issue #20051)
- for a mixed software stack (installations with RPATH + without RPATH), we need a configuration option to loosen up the RPATH sanity check (to not unset
$LD_LIBRARY_PATH
)- need to use
--disable-strict-rpath-sanity-check
- can we produce a warning to hint towards need for
--disable-strict-rpath-sanity-check
?- when we notice that a dependency was installed without RPATH (like netCDF, in case of LAMMPS)
- Kenneth will look into implementation, review by Simon
- need to use
- installing with RPATH on top of dependencies not installed with RPATH may fail...
- stop relying on
distutils
(will no longer be available in Python 3.12) (issue #3963) [Bart] - refactor easyconfig parameters and template constants to use a consistent naming style (PR #4464) [Jasper]
eb --modernize-easyconfigs foo.eb bar.eb
- TODO: revise EasyBuild configuration options
- Alex: review issues tagged for 5.0 (see here)
attending: Mikael, Simon, Jasper, Simon, Kenneth, Alex
- we're still weeks away from releasing EasyBuild 5.0
- should look into EasyBuild v4.9.1 release...
- and then collapse
5.0.x
intodevelop
(and keep4.9.x
as backup branch)- this will affect people using
--from-pr
and--include-easyblocks-from-pr
- this will affect people using
- sync PRs open:
-
https://github.com/easybuilders/easybuild-framework/pull/4469
- ready to merge (?)
-
https://github.com/easybuilders/easybuild-easyblocks/pull/3238
- ready to merge
-
https://github.com/easybuilders/easybuild-easyconfigs/pull/20004
- ~40 failing tests, some cleanup is needed w.r.t.
use_pip = True
, etc. to make CI happy
- ~40 failing tests, some cleanup is needed w.r.t.
-
https://github.com/easybuilders/easybuild-framework/pull/4469
- docs:
- RPATH is enabled by default in EasyBuild v5.0 (PR #241)
- framework:
- add support for running shell commands asynchronously with
run_shell_cmd
(PR #4444)- unresolved bug, see intermittent failures of
test_toy_exts_parallel
in https://github.com/easybuilders/easybuild-framework/pull/4453- working directory is not always correct for shell commands being run somehow?
- unresolved bug, see intermittent failures of
- enable RPATH linking by default (PR #4448)
- allow only alphanumeric characters in the output filename used in
run_shell_cmd
(PR #4454) - add cuda compute capability integer format templates (PR #4463)
- Enhance download instructions by mentioning active source path (PR #4459)
- add support for running shell commands asynchronously with
- easyblocks:
- easyconfigs
-
archive (https://github.com/easybuilders/easybuild-easyconfigs-archive)
- add
README
PR #1 - support installation of archive via
pip install easybuild-easyconfigs[archive]
(orpip install easybuild-easyconfigs-archive
)
- add
-
docs
-
framework
- change
tar
command used inget_source_tarball_from_git
to get reproducible tarballs (PR #4248) - rename unclear
*run*
methods to*install_extension*
+ renameinstall_extensions
toinstall_all_extensions
(PR #4400)- ready for final review + merge [Kenneth]
- implement support for running interactive commands with
run_shell_cmd
(WIP) (PR #4453)- rebased after merge of PR #4444
- still WIP...
- missing support for
qa_wait_patterns
- more existing
run_cmd_qa
tests should also be implemented forrun_shell_cmd
- to be tested with real easyblock
- deprecate
run_cmd
andrun_cmd_qa
& co, move them toeasybuild._deprecated
module (WIP) (PR #4433)- blocked by PR #4453
- refactor easyconfig parameters and template constants to use a consistent naming style (issue #4464)
- can we reach consensus on which things we will rename, and what not?
-
dependencies
vsdeps
- what about EasyBuild configuration options, do we need to rename something there too?
- does current deprecation mechanism take into account setting of easyconfig parameters in a hook? (see
EasyConfig.__setitem__
?) - rules
- separate words with underscores (
versionsuffix
->version_suffix
) - aim for consistency (
mod
+module
-> allmodule
) - if a shorthand is used, no room for confusion (
deps
/exts
/doc
/mod
is OK), less room for typos, must be at least 50% gain -
mod_
/module_
->env_mod_
(no room for confusion with other types of modules) -
modulename
->import_name
(see dedicated issue)-
options = {'modulename': 'torch'}
=>import_name = 'torch'
(avoid "module")
-
- should also look at easyblock-specific easyconfig parameters
- script or
eb
option to "modernize" easyconfigs (rename parameters/templates/constants)
- separate words with underscores (
- Always set
$EBPYTHONPREFIXES
instead of$PYTHONPATH
(issue #2887)- counter argument:
$PYTHONPATH
is ubiquitous - problem with setting
$PYTHONPATH
is getting worse due to switch to introduction ofPython-bundle-PyPI
- someone should do the homework to figure out what needs to be implemented to support this => Mikael
- global EasyBuild configuration option:
--prefer-ebpythonprefixes-over-pythonpath
,--avoid-pythonpath=PythonPackage,PythonBundle
- make
PythonBundle
+PythonPackage
to be aware of it
- global EasyBuild configuration option:
- what about corner cases like
PLUMED/2.7.2-foss-2021a.lua
which hasprepend_path("PYTHONPATH", pathJoin(root, "lib/plumed/python"))
in env. module- rename
lib/plumed/python
tolib/pythonX.Y/site-packages
to avoid having to use$PYTHONPATH
- similar:
Graphviz
,ROOT
,PYTHIA
- rename
- counter argument:
- change
-
easyblocks
-
153 open PRs to port easyblocks torun_shell_cmd
- 5 open PRs to remove unused custom easyblocks
-
-
easyconfigs
- Replace
parallel
bymaxparallel
(PR #19375)
- Replace
attending: Kenneth, Alex, Simon, Bart, Sebastian, Lara
- status of
5.0.x
branches- framework: synced with
develop
on 8 Feb'24 (CI OK) - easyblocks: synced with
develop
on 12 Feb'24 (CI OK) - easyconfigs: synced with
develop
on 12 Feb'24 (CI broken)- "
Missing dependencies: Gblocks/0.91b
" => Gblocks easyconfig should be pulled back out of archive...
- "
- should start doing syncs of
5.0.x
withdevelop
via PRs to avoid breaking CI
- framework: synced with
- merged PRs (
5.0.x
branches)- docs
- fix typo in example code for
run_shell_cmd
(PR #240)
- fix typo in example code for
- framework
- easyblocks
- over 20 PRs to remove unused easyblocks
- ~50 PRs to migrate from
run_cmd
torun_shell_cmd
in software-specific easyblocks - fail on non-zero exit code in command to run Perl test suite (PR #3170)
- enable
use_pip
for extensions that are installed along with Python (PR #3221)- may need to revisit this and come up with a way to inherit defaults from
PythonPackage
easyblock?
- may need to revisit this and come up with a way to inherit defaults from
- easyconfigs
- docs
- open PRs
- framework
- rename unclear
*run*
methods to*install_extension*
+ renameinstall_extensions
toinstall_all_extensions
(PR #4400)- what happens if a
PythonPackage
that has not been migrated yet is used along with an easyblock on top (likenumpy
) that has been migrated - we can probably detect this and produce a meaningful error that easyblocks must be migrated
- what happens if a
- add support for running shell commands asynchronously with
run_shell_cmd
(PR #4444) - enable RPATH linking by default (PR #4448)
- see also docs PR #241
- waiting for Kenneth to re-review both PRs & merge
- rename unclear
- easyblocks
- ~5 PRs to remove unused easyblocks
- ~18 PRs to migrate software-specific easyblocks to
run_shell_cmd
- OpenBLAS easyblock still uses
parse_log_for_error
(which we want to deprecate, cfr. framework PR #4433) - OpenSSL => should catch
RunShellCmdError
instead ofEasyBuildError
- OpenBLAS easyblock still uses
- rename
run
method toinstall_extension
, and likewise forprerun
topre_install_extension
,postrun
topost_install_extension
, andrun_async
toinstall_extension_async
(PR #3064) - update
run_async
methods inRPackage
,Rmpi
, andRserve
easyblocks to use submitrun_shell_cmd
call into thread pool (PR #3163)
- easyconfigs
- add check to make sure that
download_dep_fail
,sanity_pip_check
,use_pip
are not explicitly set toTrue
in easyconfigs (PR #19830)
- add check to make sure that
- framework
- WIP
- (Kenneth) support for running interactive commands in
run_shell_cmd
(no PR yet)
- (Kenneth) support for running interactive commands in
- notes
- for framework PR #4248
- could use
touch
to reset timestamp to0
rather than relying on--mtime
option oftar
=> Alex will comment in PR
- could use
- easyconfigs archive should be in a separate repo
- not included by default in EasyBuild installation
- requires extra
pip install easybuild-easyconfigs-archive
- Alex will open PRs for this...
- https://github.com/easybuilders/easybuild-easyconfigs-archive
- for framework PR #4248
- TODO
- ...
attending: ?
- status of
5.0.x
branches- synced with
develop
on 2024-02-07, only trivial merge conflicts had to be fixed
- synced with
- merged PRs
- framework
- deprecate support for
EnvironmentModulesC
(v3.2.x) andEnvironmentModulesTcl
(ancient v1.x) module tools (PR #4439)
- deprecate support for
- easyblocks
- various PRs to port software-specific easyblocks to
run_shell_cmd
- for Perl, we are ignoring exit code of shell command in
test_step
, that seems like a bug (PR #3162) - being fixed in easyblocks PR #3170
- no easyconfig for PALM (recently merged easyblock)
- for Perl, we are ignoring exit code of shell command in
- various PRs to port software-specific easyblocks to
- framework
- open PRs
- framework
- drop load storm safe guard for Environment Modules v4.2.4+ (PR #4373)
- should also switch to
depends_on
with Lmod as default?
- should also switch to
- replace
parallel
easyconfig parameter bymaxparallel
(PR #4398) - rename unclear
*run*
methods to*install_extension*
+ renameinstall_extensions
toinstall_all_extensions
(PR #4400)- "
see http://easybuild.readthedocs.org/en/latest/Deprecated-functionality.html for more information
" => this really needs to be updated (although link does still work), in a separate framework PR
- "
- bump minimum required Tmod (4.x) to 4.3.0 (PR #4425)
- blocked by PR #4415 to fix running of test suite with Tmod >= v4.3
- deprecate
run_cmd
andrun_cmd_qa
& co, move them toeasybuild._deprecated
module (WIP) (PR #4433)- WIP until
run_shell_cmd
implementation is complete (incl. Q&A support)
- WIP until
- create
lib
/lib64
symlink before runningpostinstallcmds
(PR #4435)- requires fixes in easyconfigs that will get broken because of this
- add support for running shell commands asynchronously with
run_shell_cmd
(PR #4444)- last place where framework itself still relies on
run_cmd
- implementation of
EasyBlock.install_extensions_parallel
can be improved further, but can be left for future PRs (even post-5.0 release) - ready for review/merge! => maybe Alex
- requires small change in easyblocks (see easyblocks PR #3163)
- last place where framework itself still relies on
- enable RPATH linking by default (PR #4448)
- drop load storm safe guard for Environment Modules v4.2.4+ (PR #4373)
- easyblocks
- 33 open PRs to port software-specific easyblocks to
run_shell_cmd
... - 9 open PRs to remove unused easyblocks
- update
run_async
methods inRPackage
,Rmpi
, andRserve
easyblocks to use submitrun_shell_cmd
call into thread pool (PR #3163)- required because of changes in framework PR #4444
- fix extension filter for Perl packages (PR #2699)
- 33 open PRs to port software-specific easyblocks to
- easyconfigs
- clean up easyconfigs that explicitly set
use_pip
,sanity_pip_check
anddownload_dep_fail
(PR #19265)
- clean up easyconfigs that explicitly set
- framework
- TODO
- directories that don't contain any library files shouldn't be added to
$LD_LIBRARY_PATH
(issue #3504)- makes sense for (bundles of) Python packages
- Clean up SLURM/Batchsystem environment before doing builds (issue #4434)
- should be done opt-in, via
--clean-up-slurm-env
configuration setting
- should be done opt-in, via
- change default backend for
--job
to Slurm (+ deprecate GC3Pie support) - document how to start playing with development pre-release version of EasyBuild 5.0
- create easyconfig to install
EasyBuild/dev-5.0.x-<datestamp>
- create easyconfig to install
- directories that don't contain any library files shouldn't be added to
attending: Simon, Jasper, Kenneth, Adam, Bart
- Alex reworked framework PR #4400
- companion easyblocks PR #3064 is ready for review
- Kenneth made progress on adopting
run_shell_cmd
inEasyblock.install_extensions_parallel
(PR #4444](https://github.com/easybuilders/easybuild-framework/pull/4444)) -
use_pip
is now enabled by default inPythonPackage
- easyconfigs PR #19265 needs a fix in the tests
- Simon has been migrating easyblocks
- one by one
- see overview at https://github.com/easybuilders/easybuild-easyblocks/issues/3089
- some easyblocks are being removed (ATLAS, ARB)
- removing BLACS easyblock causes trouble because
det_interface
function is also used in ScaLAPACK easyblock - if someone else wants to help porting easyblocks, communicate which ones you'll be tackling
- start in the middle
- Bart's overview table at https://docs.easybuild.io/easybuild-v5/run_shell_cmd is really useful
- Jasper will join the effort with Simon, starting at 'L'
- Bart can help migrate easyblocks, will focus on those in 'P' group (+ remove PGI easyblock)
- Jasper still needs to look into
parallel
/maxparallel
- Adam is up for helping with documentation
attending: Jasper, Alex, Simon, Sebastian, Kenneth (sort of)
- status of
5.0.x
branches- synced with
develop
on 20240119
- synced with
- merged PRs
- framework
- easyblocks
- easyconfigs
- archive EasyBuild 3.x easyconfigs (PR #19656)
- open PRs
- framework
- replace
parallel
easyconfig parameter bymaxparallel
(PR #4398) - rename unclear
*run*
methods to*install_extension*
+ renameinstall_extensions
toinstall_all_extensions
(PR #4400) - create
lib
/lib64
symlink before runningpostinstallcmds
(PR #4435) - deprecate support for
EnvironmentModulesC
andEnvironmentModulesTcl
module tools (PR #4439)- should just kick out these modules tools from testing configuration
- add support for running shell commands asynchronously with
run_shell_cmd
(WIP) (PR #4444)
- replace
- easyblocks
- fix extension filter for Perl packages (PR #2699)
- (still) awaiting more tests, need to compose list of relevant easyconfigs
- enable
download_dep_fail
,use_pip
,sanity_pip_check
by default inPythonPackage
easyblock (PR #3022)- good progress on dealing with easyconfigs that were not enabling these parameters yet, see checklist in PR comment
- open issues:
- PyTorch (see PR #3079)
- update
ConfigureMake
easyblock to error out on unknown configure args (PR #3025)- opt-out mechanism is implemented, some more requested changes => active work-in-progress
- rename
run
method toinstall_extension
, and likewise forprerun
topre_install_extension
,postrun
topost_install_extension
, andrun_async
toinstall_extension_async
(PR #3064)- blocked by framework PR #4400
- disable
use_pip
by default for PyTorch, except for recent versions (>= 2.0) (PR #3079)- blocker for PR #3022
- should be ready to merge (despite failed test report)
- fix extension filter for Perl packages (PR #2699)
- easyconfigs
- clean up easyconfigs that explicitly set
use_pip
,sanity_pip_check
anddownload_dep_fail
(PR #19265)- synced with
5.0.x
by@boegel
on 18 Jan'24 - we should also add a check in easyconfigs test suite to prevent that
use_pip = True
& co are re-introduced in easyconfigs...
- synced with
- replace
parallel
bymaxparallel
(PR #19375)
- clean up easyconfigs that explicitly set
- docs
- document how to transition from
run_cmd
torun_shell_cmd
(PR #238)
- document how to transition from
- framework
- TODO
- (Kenneth) finish run_shell_cmd async PR + review Bart's docs PR
- (Simon) auto-enable use_pip for PyTorch
- (Sebastian) auto-enable use_pip & co in PythonPackage
- (Alex) renaming
run
PR - (Jasper) look into PR for
parallel
->maxparallel
- porting easyblocks to
run_shell_cmd
- separate PRs: GCC, PyTorch, TensorFlow, ...
attending: Kenneth, Bart, Simon, Sebastian
- merged PRs (since last meeting)
-
easyblock #3046
- needs small follow-up for pythonpackage.py, for consistency: easyblock #3074
- easyblock #3067
- framework #4430
- framework #4431
- framework #4432
- easyconfigs #19494
- easyconfigs #19500
- easyconfigs #19501
-
easyblock #3046
- open PRs
-
easyblock PR #2699: fix extension filter for Perl packages
- waiting until other easyconfigs using
PerlModule
have been checked/fixed
- waiting until other easyconfigs using
-
easyblocks PR #3022: enable
download_dep_fail
,use_pip
,sanity_pip_check
by default inPythonPackage
easyblock- Waiting for fixing easyconfigs mentioned it the list
- once problem with
CMakePythonPackage
is fixed inPythonPackage
easyblock, half of the easyconfigs not enablinguse_pip
will be working fine
-
easyblock PR #3025: update
ConfigureMake
easyblock to error out on unknown configure args- opt-out support has been added
-
easyblock PR #3074: pythonpackage: Remove
hidden=True
fromrun_shell_cmd
for consistency - framework PR #3285: Deprecate failure to resolve a template value
-
framework PR #4248: Change tar command used in
get_source_tarball_from_git
to get reproducible tarballs - framework PR #4373: drop load storm safe guard for Environment Modules v4.2.4+
-
framework PR #4398: Replace
parallel
easyconfig parameter bymaxparallel
-
framework PR #4400: rename unclear
*run*
methods to*install_extension*
+ renameinstall_extensions
toinstall_all_extensions
- needs more work, current approach doesn't actually work to make sure that easyblocks that haven't migrated yet to new methods
-
easyblock PR #3064: rename
run
method to install_extension, and likewise for prerun topre_install_extension
, postrun topost_install_extension
, andrun_async
toinstall_extension_async
-
framework PR #4424: bump minimum required Lmod to 8.0.0
- should we required a more recent Lmod 8.x?
- harder to pick a particular 8.x than just using 8.0
- except if we require Lmod >= 8.2.8 which supports
extensions
in module files - => ready to merge!
-
framework PR #4425: bump minimum required Tmod (4.x) to 4.3.0
- requires framework PR ##4415: Run unit tests on an updated version of Modules 4
-
framwork PR #4433: deprecate
run_cmd
andrun_cmd_qa
& co, move them toeasybuild._deprecated
module (WIP)- should only be merged once implementation of
run_shell_cmd
- should only be merged once implementation of
-
framwork PR #4435: Create lib/lib64 symlink before running postinstallcmds
- will break some existing easyconfigs, so should only be done for EasyBuild 5.0
-
easyblock PR #2699: fix extension filter for Perl packages
- other
- we should also deprecate support for Tcl-based modules tools, like ancient pure Tcl + Tmod 3.2.x
- support for GC3Pie should be deprecated + use Slurm as default job backend
- TODO
- documentation on how to convert
run_cmd
torun_shell_cmd
(Bart) - support testing easyconfigs + easyblocks with 5.0.x branch (Sebastian)
- async option or thread pool for run_shell_cmd (Kenneth)
- fix issue with
use_pip = True
+CMakePythonPackage
(Kenneth) - Sebastian: review Bart's easyblock PR
- documentation on how to convert
attending: Kenneth, Bart, Simon, Mikael, Sebastian
- merged PRs (since last meeting)
- (none)
- status of
5.0.x
branches- synced with
develop
after release of EasyBuild v4.9.0 (on 2023-12-31 + 2024-01-01) - for now, let's keep merging changes for EasyBuild v5.0 to
5.0.x
branches, and keepdevelop
for a potential v4.9.x release (but hopefully there won't be a need for one) - re-evaluate during sync meeting of Feb'24
- synced with
- open PRs
- framework
- deprecate failure to resolve a template value (PR #3285)
- Kenneth should take a detailed look at this
- raising an error when a template could not be resolved is fine, since we don't really want to continue anyway if that's the case
- change
tar
command used inget_source_tarball_from_git
to get reproducible tarballs (PR #4248)- Jasper's testing shows that this won't really work as is
- doesn't work on macOS
- only works when
.git
folder is not retained - in the fridge for now, awaiting feedback from contributor + Jasper
- drop load storm safe guard for Environment Modules v4.2.4+ (PR #4373)
- need to think how to align this with Lmod
- do we change to using
depends_on
by default? (framework issue #4397)- helps with keeping default behaviour with Tmod & Lmod
- supported since July 2017 (cfr. this commit)
- => so yes
- should also bump required Tmod version to 4.3 in PR #4373
- better in a separate PR
- along with Lmod to 8.x, see issue #871
- detect Fortran
.mod
files in GCCcore installations (PR #4389)- only prints warning, unless EasyBuild is configured with
--fail-on-mod_files-gcccore
, so good to go as is? => yep - see also issue #4203 for list of easyconfigs where we need to whitelist (incl. Clang, AOCC, etc.)
- only prints warning, unless EasyBuild is configured with
- replace
parallel
easyconfig parameter bymaxparallel
(PR #4398)- see also easyconfigs PR #19375
- trivial change
parallel
->maxparallel
, but does change 721 easyconfigs (457 of which archived easyconfigs)
- trivial change
- do we need to "soften the blow" a bit w.r.t. easyconfigs still using
parallel
(deprecate it rather than hard remove it)?
- see also easyconfigs PR #19375
- rename unclear
run
methods to install extensions (PR #4400)- basically ready to merge, except that
log.deprecated
calls should use'6.0'
instead of'5.0'
- needs matching easyblocks PR
- basically ready to merge, except that
- use
run_shell_cmd
in scripts (PR #4422)- ready to review/merge => Simon
- implement support for '
stream_output
' option inrun_shell_cmd
(PR #4423)- ready to review/merge => Simon
- deprecate failure to resolve a template value (PR #3285)
- easyblocks
- fix extension filter for Perl packages (PR #2699)
- awaiting test of other easyconfigs that (indirectly) rely on
PerlModule
easyblock (Kenneth)
- awaiting test of other easyconfigs that (indirectly) rely on
- enable
download_dep_fail
,use_pip
,sanity_pip_check
by default in PythonPackage easyblock (PR #3022)- awaiting test report with relevant easyconfigs
- awaiting easyconfigs PR that sets
use_pip
& co toFalse
where needed => Kenneth - list of easyconfigs that need to be looked into @ https://github.com/easybuilders/easybuild-easyblocks/pull/3022#issuecomment-1875814148
- update
ConfigureMake
easyblock to error out on unknown configure args (PR #3025) - convert generic easyblocks to
run_shell_cmd
(PR #3046)- awaiting review/testing (Sebastian)
- fix extension filter for Perl packages (PR #2699)
- easyconfigs
- clean up easyconfigs that explicitly set
use_pip
,sanity_pip_check
anddownload_dep_fail
(PR #19265)
- clean up easyconfigs that explicitly set
- framework
- TODO
-
run_shell_cmd
- implement async option
- complete transition to
run_shell_cmd
in framework - complete docs (Bart)
-
attending: Jasper, Kenneth, Sebastian, Bart, Simon, Alex, Alexandre
- rename unclear run methods to install extensions (PR #4400)
- let's deprecate
run
& co rather than remove them -
run
should print deprecation warning + callinstall_extension
, etc.
- let's deprecate
- migrate generic easyblocks to
run_shell_command
(PR #3046)-
$GITHUB_BASE_REF
is sometimes empty?! - may need to implement a fallback to determine framework branch to use
-
- kim-api (PR #19399 through PR #19405, except
#19400
)- required because of check for Fortran
.mod
files when usingGCCcore
- there may be others...
- required because of check for Fortran
- change
tar
command used inget_source_tarball_from_git
to get reproducible tarballs (framework PR #4248)- didn't work on macOS, so introduces a regression
- got different checksums when retaining
.git
subdirectory- maybe because order of hidden files is not controlled?
attending: Simon, Jasper, Sebastian, Kenneth, Adam, Alex, Mikael, Bart
- merged PRs
- better structure in docs for changes in EasyBuild v5.0 docs #230
- note: only in
develop
branch for now, not in live documentation yet
- note: only in
- better structure in docs for changes in EasyBuild v5.0 docs #230
- open PRs
- [Simon] detect Fortran
.mod
files in GCCcore installations PR #4389- we should make some extra effort to filter out blatant false positives?
- actual Fortran
.mod
files will have this as output fromfile
command:gzip compressed data
- one step further would be to unzip and look for something like
GFORTRAN module version ....
, but that's maybe a bridge too far? - for now, let's merge as is, we can try to weed out false positives later if there's a real need for it
- need to update
boegelbot
to set$EASYBUILD_FAIL_ON_MOD_FILES_GCCCORE=1
when using EasyBuild v5.0
- [Jasper] change
tar
command used inget_source_tarball_from_git
to get reproducible tarballs (framework PR #4248)- Jasper will take a look soon
- [Kenneth, Sebastian review/merge] enable
download_dep_fail
,use_pip
,sanity_pip_check
by default in PythonPackage easyblock (easyblocks PR #3022)- [Kenneth] submit test reports
- [Sebastian] Clean up easyconfigs that set these
True
=> easyconfigs PR #19265
- Deprecate failure to resolve a template value (framework PR #3285)
- needs to be ported to
5.0.x
- needs to be ported to
- update
ConfigureMake
easyblock to error out on unknown configure args (easyblocks PR #3025)- see also easyblocks PR #3026 to start producing warnings for unknown configure options in EasyBuild 4.x
- we should first fix the easyconfigs that are affected by this...
- [Simon] detect Fortran
- ideas: yay or nay?
-
--read-only-installdir
by default? (framework issue #123)- impact:
- annoying to remove install dirs later
- potentially problematic for sites that have a group of users installing software with EasyBuild
- impact:
- change order of
extract
andprepare
steps (framework issue #1376)- load (only build?) dependencies before extracting sources
- don't run sanity check in install dir (framework issue #4044)
- Simon has some use cases where they're currently "abusing" sanity check commands to make changes in install, which require that environment is correctly set up
-
PythonPackage
easyblock:modulename
should be a first-class parameter, not under the options parameter (issue #2352) - fix inconsistent license variable naming used in easyblocks (easyblocks issue #3043)
- should always be
$EB_SOFTWARENAME_LICENSE_SERVER
- should always be
-
CMakeMake
could defaultCMAKE_BUILD_TYPE
toRelWithDebInfo
instead ofRelease
(issue #3032) - separate framework issue to open (Bart): enable
-g
by default (debug
toolchain option) - including module extensions info in generated module file should be enabled by default
- implies a sufficiently recent Lmod (>= 8.2.0)
- will work even with older Lmod versions, because there's a version check in generated module file itself
- should
depends_on
by enabled by default? => Mikael will open an issue
-
- TODOs
- [Kenneth,Sebastian] set up copy of boegelbot to test with EasyBuild
5.0.x
branches- Sebastian has looked into this a bit
- can add support for
BRANCH=5.0.x
- [Kenneth | Alex | Bart] Document
run_shell_cmd
changes- should be PR to
easybuild-v5/run_shell_cmd/
page in docs (develop
branch)
- should be PR to
- [Kenneth + Alex] finish implementation of
run_shell_cmd
- improve error output in case of long output produced by command
- detect long output, point to output file?
stream_output
asynchronous
-
qa_patterns
+qa_wait_patterns
- improve error output in case of long output produced by command
- [Bart,Alex,Adam,Jasper] start porting easyblocks to
run_shell_cmd
- start with commonly used ones like ConfigureMake, CMakeMake, PythonPackage, EB_GCC, etc.
- framework PR #4383 can be helpful for inspiration
- first steps for generic easyblocks done in https://github.com/easybuilders/easybuild-easyblocks/pull/3046
- [Sebastian] get easyblocks PR #3022 merged to auto-enable
use_pip
& co - [Kenneth] update easyconfigs that use an easyblock that derives from
PythonPackage
but do not enableuse_pip
& co yet to explicitly useFalse
- this should ideally be done before easyblocks PR #3022 is merged...
- should also check whether easyblocks that derive from
PythonPackage
will need to getuse_pip = False
... - check in easyconfigs test suite only checks easyconfigs that use
PythonPackage
orPythonBundle
, not stuff that derives from them => should be fixed
- [Alex] rename
Extension.run
method that is used for installing extensions (cfr. framework issue #4113)- deprecating use of
.run(...)
- better name:
-
Extension.install_as_extension
?
-
- definitely also affects
Extension.postrun
andExtension.prerun
- deprecating use of
- [WHO?] see if we can limit the damage done by archiving easyconfigs using a deprecated toolchain
- https://hackmd.io/1A9e6dTATbWDaDodoIGPrw
- could try and crowdsource easyconfigs with more recent toolchain for these together with call for testing for pre-release of EasyBuild v5.0
- [Kenneth,Sebastian] set up copy of boegelbot to test with EasyBuild
- other
- Bart's cheat sheet on
run_shell_cmd
run_cmd -> run_shell_cmd result: (out, code) = ... -> res = ...; res.output, res.exit_code parameter changes: log_ok, log_all, simple, regexp -> (remove!) inp -> stdin log_output=False -> output_file=True (reversed default) path -> work_dir force_in_dry_run -> in_dry_run verbose=True -> verbose_dry_run=False (reversed default) shell=None (->True) -> use_bash=True trace=True -> hidden=False (reversed meaning) stream_output, with_hooks (unchanged) asynchronous (NYI, don't touch for now!) new parameters: fail_on_error=True, split_error=False, env=None qa_patterns=None (NYI) qa_wait_patterns=None (NYI) Derived from detailed notes: run_cmd run_shell_cmd (out, code) .output, .exit_code, .stderr (if split_stderr=True) cmd cmd log_ok=True (removed: always True) log_all=False (removed: always True) simple=False (removed: always return named tuple) inp=None stdin=None regexp=True (removed: no automatic scanning for stuff that looks like errors) log_output=False output_file=True path=None work_dir=None force_in_dry_run=False in_dry_run=False verbose=True verbose_dry_run=False shell=None(->True) use_bash=True trace=True hidden=False stream_output=None stream_output=False asynchronous=False asynchronous=False (NYI) with_hooks=True with_hooks=True fail_on_error=True (NEW) split_error=False (NEW) env=None (NEW) qa_patterns=None (NEW,NYI) qa_wait_patterns=None (NEW,NYI) run_cmd :param cmd: command to run :param log_ok: only run output/exit code for failing commands (exit code non-zero) :param log_all: always log command output and exit code :param simple: if True, just return True/False to indicate success, else return a tuple: (output, exit_code) :param inp: the input given to the command via stdin :param regexp: regex used to check the output for errors; if True it will use the default (see parse_log_for_error) :param log_output: indicate whether all output of command should be logged to a separate temporary logfile :param path: path to execute the command in; current working directory is used if unspecified :param force_in_dry_run: force running the command during dry run :param verbose: include message on running the command in dry run output :param shell: allow commands to not run in a shell (especially useful for cmd lists), defaults to True :param trace: print command being executed as part of trace output :param stream_output: enable streaming command output to stdout :param asynchronous: run command asynchronously (old: returns subprocess.Popen instance if set to True) :param with_hooks: trigger pre/post run_shell_cmd hooks (if defined) run_shell_cmd :param fail_on_error: fail on non-zero exit code (enabled by default) :param split_stderr: split of stderr from stdout output :param stdin: input to be sent to stdin (nothing if set to None) :param env: environment to use to run command (if None, inherit current process environment) :param hidden: do not show command in terminal output (when using --trace, or with --extended-dry-run / -x) :param in_dry_run: also run command in dry run mode :param verbose_dry_run: show that command is run in dry run mode (overrules 'hidden') :param work_dir: working directory to run command in (current working directory if None) :param use_bash: execute command through bash shell (enabled by default) :param output_file: collect command output in temporary output file :param stream_output: stream command output to stdout :param asynchronous: run command asynchronously :param with_hooks: trigger pre/post run_shell_cmd hooks (if defined) :param qa_patterns: list of 2-tuples with patterns for questions + corresponding answers :param qa_wait_patterns: list of 2-tuples with patterns for non-questions and number of iterations to allow these patterns to match with end out command output :return: Named tuple with: - output: command output, stdout+stderr combined if split_stderr is disabled, only stdout otherwise - exit_code: exit code of command (integer) - stderr: stderr output if split_stderr is enabled, None otherwise
- Bart's cheat sheet on
attending: Mikael, Sebastian, Bart
- merged PRs
- start adopting
run_shell_cmd
in easyblock.py (+ use f-strings) (PR #4383)
- start adopting
- open PRs
- [Kenneth,Mikael] better structure in docs for changes in EasyBuild v5.0 docs #230
- [Kenneth] detect Fortran .mod files in GCCcore installations PR #4389
- [Jasper] change
tar
command used inget_source_tarball_from_git
to get reproducible tarballs (framework PR #4248) - [WHO? review/merge] enable
download_dep_fail
,use_pip
,sanity_pip_check
by default in PythonPackage easyblock (easyblocks PR #3022)- [Kenneth] submit test reports
- [Sebastian] Clean up easyconfigs that set these true PR #19265
- Deprecate failure to resolve a template value (framework PR #3285)
- needs to be ported to
5.0.x
- needs to be ported to
- update
ConfigureMake
easyblock to error out on unknown configure args (easyblocks PR #3025)- see also easyblocks PR #3026 to start producing warnings for unknown configure options in EasyBuild 4.x
- we should first fix the easyconfigs that are affected by this...
- TODOs
- [Kenneth] set up copy of boegelbot to test with EasyBuild
5.0.x
branches - [Kenneth | Alex] Document
run_shell_cmd
changes - [Kenneth + Alex] finish implementation of
run_shell_cmd
stream_output
asynchronous
-
qa_patterns
+qa_wait_patterns
- [Bart,Alex,Adam,Jasper] start porting easyblocks to
run_shell_cmd
- start with commonly used ones like ConfigureMake, CMakeMake, PythonPackage, EB_GCC, etc.
- framework PR #4383 can be helpful for inspiration
- [Sebastian] get easyblocks PR #3022 merged to auto-enable
use_pip
& co - [Kenneth] update easyconfigs that use an easyblock that derives from
PythonPackage
but do not enableuse_pip
& co yet to explicitly useFalse
- this should ideally be done before easyblocks PR #3022 is merged...
- should also check whether easyblocks that derive from
PythonPackage
will need to getuse_pip = False
... - check in easyconfigs test suite only checks easyconfigs that use
PythonPackage
orPythonBundle
, not stuff that derives from them => should be fixed
- [WHO?] rename
Extension.run
method that is used for installing extensions (cfr. framework issue #4113)- deprecating use of
.run(...)
- deprecating use of
- [WHO?] see if we can limit the damage done by archiving easyconfigs using a deprecated toolchain
- https://hackmd.io/1A9e6dTATbWDaDodoIGPrw
- could try and crowdsource easyconfigs with more recent toolchain for these together with call for testing for pre-release of EasyBuild v5.0
- [Kenneth] set up copy of boegelbot to test with EasyBuild
attending: Kenneth, Sebastian, Adam, Mikael
- merged PRs
- open PRs
- [Jasper] change
tar
command used inget_source_tarball_from_git
to get reproducible tarballs (framework PR #4248) - [WHO? review/merge] enable
download_dep_fail
,use_pip
,sanity_pip_check
by default in PythonPackage easyblock (easyblocks PR #3022)- [Kenneth] submit test reports
- Deprecate failure to resolve a template value (framework PR #3285)
- needs to be ported to
5.0.x
- needs to be ported to
- update
ConfigureMake
easyblock to error out on unknown configure args (easyblocks PR #3025)- see also easyblocks PR #3026 to start producing warnings for unknown configure options in EasyBuild 4.x
- we should first fix the easyconfigs that are affected by this...
- [Jasper] change
- TODOs
- [Kenneth + Alex] finish implementation of
run_shell_cmd
stream_output
asynchronous
-
qa_patterns
+qa_wait_patterns
- [Bart,Alex,Adam,Jasper] start porting easyblocks to
run_shell_cmd
- start with commonly used ones like ConfigureMake, CMakeMake, PythonPackage, EB_GCC, etc.
- framework PR #4383 can be helpful for inspiration
- [Kenneth,Adam] better structure in docs for changes in EasyBuild v5.0
- [Sebastian] get easyblocks PR #3022 merged to auto-enable
use_pip
& co - [Kenneth] update easyconfigs that use an easyblock that derives from
PythonPackage
but do not enableuse_pip
& co yet to explicitly useFalse
- this should ideally be done before easyblocks PR #3022 is merged...
- should also check whether easyblocks that derive from
PythonPackage
will need to getuse_pip = False
... - check in easyconfigs test suite only checks easyconfigs that use
PythonPackage
orPythonBundle
, not stuff that derives from them => should be fixed
- [Sebastian] clean up easyconfigs that explicitly set
use_pip
& co toTrue
- only after easyblocks PR #3022 is merged
-
use_pip = True
,'use_pip': True
=> remove -
sanity_pip_check = True
=> remove -
download_dep_fail = True
=> remove
- [WHO?] rename
Extension.run
method that is used for installing extensions (cfr. framework issue #4113)- deprecating use of
.run(...)
- deprecating use of
- [WHO?] see if we can limit the damage done by archiving easyconfigs using a deprecated toolchain
- https://hackmd.io/1A9e6dTATbWDaDodoIGPrw
- could try and crowdsource easyconfigs with more recent toolchain for these together with call for testing for pre-release of EasyBuild v5.0
- [Kenneth + Alex] finish implementation of
attending: Kenneth, Adam, (Mikael)
- merged PRs
- change
run_shell_cmd
to store command output in temporary file(s) by default + passRunShellCmdResult
instance toRunShellCmdError
(framework PR #4356)
- change
- open PRs
- [Jasper] change
tar
command used inget_source_tarball_from_git
to get reproducible tarballs (framework PR #4248) - [WHO? review/merge] enable
download_dep_fail
,use_pip
,sanity_pip_check
by default in PythonPackage easyblock (easyblocks PR #3022)- [Kenneth] submit test reports
- [Adam to review/merge] rename
shell
option inrun_shell_cmd
touse_bash
(framework PR #4378)
- [Jasper] change
- next steps
- [Alex,Kenneth] fix error reporting in
5.0.x
branch- failing to resolve dependencies doesn't produce an error message anymore (only non-zero exit code)
- [Kenneth + Alex] finish implementation of
run_shell_cmd
so framework can be updated to only userun_shell_cmd
(no morerun_cmd
)- implement support for
stream_output
option (required ineasybuild/tools/containers/*.py
) - implement support for
asynchronous
option (required for--parallel-extensions-install
support)
- implement support for
- [Kenneth?] implement support for Q&A commands in
run_shell_cmd
- implement support for
qa_patterns
andqa_wait_patterns
options
- implement support for
- [Bart,Alex,Adam,Jasper] start porting easyblocks to
run_shell_cmd
- start with commonly used ones like
ConfigureMake
,CMakeMake
,PythonPackage
,EB_GCC
, etc.
- start with commonly used ones like
- [WHO?] rename
Extension.run
method that is used for installing extensions (cfr. framework issue #4113) - get easyblocks PR #3022 merged to auto-enable
use_pip
& co- Kenneth can look into submitting a bunch of test reports for affected easyblocks
- [Kenneth] update easyconfigs that use an easyblock that derives from
PythonPackage
but do not enableuse_pip
& co yet to explicitly useFalse
- WIP script to identify the easyconfigs to update (which somehow triggers open file handle limit...)
- [WHO?] clean up easyconfigs that explicitly set
use_pip
& co toTrue
- only after easyblocks PR #3022 is merged
- [Alex(structure),Bart(run_shell_cmd transition table),Adam?] update documentation to have a more complete overview of changes in EasyBuild 5.0
- cfr. https://docs.easybuild.io/easybuild-v5/overview-of-changes
- should include an overview of how to transition from
run_cmd
torun_shell_cmd
, inspired by how easyblocks are updated to adoptrun_shell_cmd
- organise based on users vs contributors vs developers
- Changes relevant to end users =>
docs/roles/end-users/easybuild-v5
- trace output by default =>
docs/easybuild-v5/trace_output
- error reporting =>
docs/easybuild-v5/error_reporting
- Lmod version
- toolchain support policy
- Python 2 no longer supported
- RIP experimental .yeb
- RIP bootstrap script
- trace output by default =>
- contributors
- easyconfigs
- toolchain support policy
- enforce correct .patch(.*) extension for patch files
- easyblocks/framework
run_shell_cmd
py2vs3
- RIP Python 2
- removal of deprecated functionality
- changed defaults
-
change_dir
inextract_file
-
- easyconfigs
- developers/maintainers
- toolchain support policy
- (see easyblocks/framework contributors)
- Changes relevant to end users =>
- separate pages for:
run_shell_cmd
- [WHO?] see if we can limit the damage done by archiving easyconfigs using a deprecated toolchain
- [Alex,Kenneth] fix error reporting in
attending: Kenneth, Bart, Simon, Alexandre, Sebastian, Adam, Alex, Jasper
- merged PRs
- use 5.0.x branch for easyblocks + easyconfigs in CI workflows (for now) (framework PR #4358)
- take into account that
VERBOSE_VERSION
imported from easybuild.easyblocks is now a string value (framework PR #4357)
- open PRs
- [Kenneth,Alex] change
run_shell_cmd
to store command output in temporary file(s) by default + passRunShellCmdResult
instance toRunShellCmdError
(framework PR #4356)- status: reviewed + updated based on review, ready to merge?
- [Jasper] change
tar
command used inget_source_tarball_from_git
to get reproducible tarballs (framework PR #4248)- PR branch needs to be updated with current
5.0.x
to re-trigger CI - someone should play with this across different systems/OSs to verify whether this is indeed sufficient to obtain reproducible tarballs for easyconfigs using
git_config
- PR branch needs to be updated with current
- deprecate failure to resolve a template value (framework PR #3285)
- needs thorough review/testing
- needs to be updated with current
5.0.x
branch to re-trigger CI - Kenneth will ask Alexander to move to
5.0.x
- enable
download_dep_fail
,use_pip
,sanity_pip_check
by default in PythonPackage easyblock (easyblocks PR #3022)- needs review + testing with a handful of existing easyconfigs to ensure no bugs have crept in the refactoring, at least one test for each easyblock that was touched in the PR
- [Alexander?] update
ConfigureMake
easyblock to error out on unknown configure args (easyblocks PR #3025)- fix for easyblocks issue #157
- see also easyblocks PR #3026, and the list of easyconfigs that are known to be impacted by this change
- [Kenneth,Alex] change
- next steps
- [Alex]
get framework PR #4356 merged to fix storing of command output to file(s) - [Alex] fix error reporting in
5.0.x
branch- failing to resolve dependencies doesn't produce an error message anymore (only non-zero exit code)
- [Kenneth + Alex] finish implementation of
run_shell_cmd
so framework can be updated to only userun_shell_cmd
(no morerun_cmd
)- rename
shell
option touse_bash
- implement support for
stream_output
option (required ineasybuild/tools/containers/*.py
) - implement support for
asynchronous
option (required for--parallel-extensions-install
support)
- rename
- [Kenneth?] implement support for Q&A commands in
run_shell_cmd
- implement support for
qa_patterns
andqa_wait_patterns
options
- implement support for
- [Bart,Alex,Adam,Jasper] start porting easyblocks to
run_shell_cmd
- start with commonly used ones like
ConfigureMake
,CMakeMake
,PythonPackage
,EB_GCC
, etc.
- start with commonly used ones like
- [WHO?] rename
Extension.run
method that is used for installing extensions (cfr. framework issue #4113) - get easyblocks PR #3022 merged to auto-enable
use_pip
& co- Kenneth can look into submitting a bunch of test reports for affected easyblocks
- [Kenneth] update easyconfigs that use an easyblock that derives from
PythonPackage
but do not enableuse_pip
& co yet to explicitly useFalse
- WIP script to identify the easyconfigs to update (which somehow triggers open file handle limit...)
- [WHO?] clean up easyconfigs that explicitly set
use_pip
& co toTrue
- only after easyblocks PR #3022 is merged
- [Alex(structure),Bart(run_shell_cmd transition table)] update documentation to have a more complete overview of changes in EasyBuild 5.0
- cfr. https://docs.easybuild.io/easybuild-v5/overview-of-changes
- should include an overview of how to transition from
run_cmd
torun_shell_cmd
, inspired by how easyblocks are updated to adoptrun_shell_cmd
- [WHO?] see if we can limit the damage done by archiving easyconfigs using a deprecated toolchain
- supported software (excl. versions) in EasyBuild v4.8.2 vs current 5.0.x branch: 3,292 vs 2,365 => ~29% decrease :-/
- should compose a list of stuff that was lost, see what worth salvaging
- can be done in HackMD, then crowdsource which ones we should care about => https://hackmd.io/1A9e6dTATbWDaDodoIGPrw
- supported software (excl. versions) in EasyBuild v4.8.2 vs current 5.0.x branch: 3,292 vs 2,365 => ~29% decrease :-/
- [Alex]
attending: Kenneth, Mikael
- merged PRs
- document policy on supported toolchain generations (docs PRs #200 + #216)
- not strictly tied to EasyBuild 5.0 (except for archiving of easyconfigs)
- live in EasyBuild docs @ https://docs.easybuild.io/policies/toolchains
- improve error reporting for failing shell commands (and EasyBuild crashes) (PR #4351)
- use
LooseVersion
fromeasybuild.tools
in all easyblocks (easyblocks PR #3018)-
VERSION
andVERBOSE_VERSION
constants ineasybuild.easyblocks
are now string values (used to beLooseVersion
instance) - requires framework #4357: take into account that
VERBOSE_VERSION
imported fromeasybuild.easyblocks
is now a string value
-
- don't auto-enable use of
-DSCOTCH_PTHREAD
when using MPI library other than Intel MPI in SCOTCH easyblock (PR #3019) - improve error reporting for failing shell commands (and EasyBuild crashes) #4351
- document policy on supported toolchain generations (docs PRs #200 + #216)
- open PRs
- change
tar
command used inget_source_tarball_from_git
to get reproducible tarballs (framework PR #4248) - take into account that
VERBOSE_VERSION
imported from easybuild.easyblocks is now a string value (framwork PR #4357) - change
run_shell_cmd
to always store command output in temporary file(s) + passRunShellCmdResult
instance toRunShellCmdError
(WIP (framework PR #4356)- tests are failing, needs more work
- enable
download_dep_fail
,use_pip
,sanity_pip_check
by default inPythonPackage
easyblock (easyblocks PR #3022)- worth doing a couple of test build for this...
- change
- other
- framework issue #4354: Extract errors from shell commands
- next 5 goals
- start cleaning up easyconfigs w.r.t.
use_pip
& co- requires that easyblocks PR #3022 is merged first
- Kenneth is working on a script to figure out which easyconfigs need to get
use_pip = False
& co
- continue
run_cmd_shell
effort- get framework PR #4356 merged
- implement
stream_output
support
- start switching to
run_shell_cmd
in easyblocks - test impact of framework PR #4248: are source tarballs for easyconfigs using
git_config
really reproducable across systems/OSs? - update overview of changes in EasyBuild 5.0 in docs
- start cleaning up easyconfigs w.r.t.
- timeline
- EasyBuild 4.8.2 release soon
- may be last EasyBuild 4.x release
- 2023b common toolchain update could be reason for EasyBuild v4.9.0 release (~end of Nov'23)
- for now, stick to
5.0.x
branches, until we're sure that EasyBuild 5.0 can be released soon enough
- EasyBuild 4.8.2 release soon
attending: Kenneth, Alex, Simon, Mikael, Adam
- merged PRs
- stop importing from
easybuild.tools.py2vs3
(+ minor cleanup in init easyblocks test) (easyblocks PR #3015) - scripts to archive easyconfigs (easyconfigs PR #18934)
- script used to archive easyconfigs using SYSTEM toolchain needs a whitelist to avoid archiving things like GCC-system.eb, etc.
- archiving of old easyconfigs
- all done for all toolchain versions older than 2020a (across 14 PRs)
- remove old archived easyconfigs (EasyBuild 4.x archive) (PR #18982)
- use more recent easyconfigs in tests for --search (PR #18995)
- archive SYSTEM level easyconfigs from before 2018-10-11 (PR #19013)
- fallout
- support for 937 (out of ~3,300) software packages will be lost in EasyBuild 5.0
- ~28% of all software EasyBuild currently supports...
- with EasyBuild 4.0, is was way less dramatic (1840 -> 1669, ~9%)
- we can/should add easyconfigs back with more recent toolchains to partially mitigate this...
- a bunch of these are:
- toolchains we no longer use
- stuff like pandas that's still supported as extension
- complex ones like RELION, ...
- support for 937 (out of ~3,300) software packages will be lost in EasyBuild 5.0
- we should also do a cleanup sweep of patches
- overview of software in EasyBuild docs should also include extensions?
- stop importing from
- open PRs
- improve error reporting for failing shell commands (and EasyBuild crashes) (framework PR #4351)
- reviewed by Alex, suggested changes made by Kenneth, ready for re-review + merge...
- in some way, it would be easier to always have stdout and stderr command output split
- but then we lose "context" of errors
- can we collect both stdout+stderr mixed and stderr output only when running a command?
- Use
LooseVersion
fromeasybuild.tools
and sort imports (easyblocks PR #3018)- use of
LooseVersion
ineasybuild/easyblocks/__init__.py
is causing trouble
- use of
- don't auto-enable use of -DSCOTCH_PTHREAD when using MPI library other than Intel MPI in SCOTCH easyblock (easyblocks PR #3019)
- improve error reporting for failing shell commands (and EasyBuild crashes) (framework PR #4351)
- next 5 goals
- [Kenneth,Alex] get (framework PR #4351) merged (better error reporting)
-
[Kenneth] implement support for
stream_output
inrun_cmd_shell
function + switch torun_cmd_shell
ineasybuild/tools/containers/*.py
-
[Mikael,Kenneth] get (easyblocks PR #3018) merged (
LooseVersion
import)- need to stop using
LooseVersion
ineasybuild/easyblocks/__init__.py
- need to stop using
-
[Sebastian?] enable
download_dep_fail
+use_pip
+sanity_pip_check
by default inPythonPackage
+PythonBundle
easyblocks- easyconfigs cleanup should be less painful now
- Kenneth is working on script to identify eaysconfigs that do not already enable these parameters
-
[Alex] start switching to
run_shell_cmd
in easyblocks...
attending: Kenneth, Mikael, Sebastian, Adam, Alexandre
- merged PRs
- fix test suite: stop testing with Python 3.5 and Lmod 6.x, stop using
toolchain.DUMMY
(easyblocks PR #3014) - update version of
config.guess
used byConfigureMake
(easyblocks PR #3013)
- fix test suite: stop testing with Python 3.5 and Lmod 6.x, stop using
- open PRs
- improve error reporting for failing shell commands (and EasyBuild crashes) (framework PR #4351)
- => will be reviewed/tested/merged this week by ...
- stop importing from
easybuild.tools.py2vs3
(+ minor cleanup in init easyblocks test) (easyblocks PR #3015)- => will be reviewed/merged this week by ...
- scripts to archive easyconfigs (easyconfigs PR #18934)
- => will be reviewed/tested/merged this week by ...
- improve error reporting for failing shell commands (and EasyBuild crashes) (framework PR #4351)
- next 5 goals
- [Alex + Kenneth] get framework PR #4351 that implements better error reporting merged
-
[Kenneth] implement support for
stream_output
inrun_cmd_shell
function + switch torun_cmd_shell
ineasybuild/tools/containers/*.py
-
[Chia-jung Hsu] switch easyblocks to
LooseVersion
fromeasybuild.tools.*
(only change import statements) -
[Sebastian] enable
download_dep_fail
+use_pip
+sanity_pip_check
by default inPythonPackage
+PythonBundle
easyblocks- explicitely set these to
False
in easyconfigs not setting them toTrue
- easyconfigs using any easyblock that derives from
PythonPackage
orPythonBundle
- Kenneth can look into generating a list of easyconfigs that will need fixing (setting to False)
- easyconfigs using any easyblock that derives from
- clean up easyconfigs explicitly setting these to
True
- easyconfigs test suite should report explicit setting these to
True
- explicitely set these to
-
[Mikael] archive easyconfigs
- using a
2016a
/2016b
/2016.x
toolchain - using GCC 5.4.0 or older as toolchain
- using scripts implemented by Mikael (easyconfigs PR #18934)
- using a
Attendees: Kenneth, Sebastian, Mikael, Alexandre, Bart, Simon, Jasper, Adam
-
5.0.x
branch was synced withdevelop
on 2023-10-02 (commit d450a80) - merged PRs:
- ...
- open PRs:
- change
tar
command used inget_source_tarball_from_git
to get reproducible tarballs (PR #4248)
- change
- TODO
- for
run_shell_cmd
- improve error reporting
- raise
EasyBuildError
instead ofsubprocess.CalledProcessError
- implement better error reporting, using a new
report_error
function that uses return value produced byrun_shell_cmd
(which cmd used, includes output, exit code, working dir, ...) - WIP:
== installing... >> running command: [started at: 2023-10-04 13:59:58] [working dir: /private/tmp/kehoste/bzip2/1.0.6/system-system/bzip2-1.0.6] [output logged in /tmp/eb-leexxvrd/easybuild-run-rrpla98w.log] xxmake -f Makefile-libbz2_so CC=gcc CFLAGS='-Wall -Winline -O3 -fPIC -g $(BIGFILES)' - full command: xxmake -f Makefile-libbz2_so CC=gcc CFLAGS='-Wall -Winline -O3 -fPIC -g $(BIGFILES)' - exit code: 127 - working directory: /private/tmp/kehoste/bzip2/1.0.6/system-system/bzip2-1.0.6 - output: /tmp/eb-leexxvrd/shell-cmd-errorq2fsapve/xxmake.out - stderr: /tmp/eb-leexxvrd/shell-cmd-errorq2fsapve/xxmake.err ERROR: shell command 'xxmake' failed!
-
run_shell_cmd
could create script to source to start interactive debug shell, something like:export TEST=foo cd /tmp/test history -s "test 1 2 3" echo "Failing command was 'test 1 2 3'"
- raise
- implement missing options in
run_shell_cmd
stream_output
asynchronous
-
qa_patterns
+qa_wait_patterns
- complete transition to
run_shell_cmd
ineasybuild-framework
- TODO:
easybuild/framework/easyblock.py
easybuild/framework/extension.py
easybuild/toolchains/linalg/flexiblas.py
easybuild/tools/containers/*.py
easybuild/tools/job/slurm.py
easybuild/tools/options.py
easybuild/tools/package/utilities.py
- TODO:
- gradually switch easyblocks to
run_shell_cmd
(in5.0.x
branch) - add support for dropping into a interactive shell if command failed (cfr. issue #3950)
- global configuration option to opt-in to letting EasyBuild drop into an interactive shell if a shell command failed
- only when command is not expected to fail
- only when there's a tty
- opt-out option in
run_shell_cmd
for specific commands
- improve error reporting
- tackle other ideas, see https://github.com/easybuilders/easybuild-framework/labels/EasyBuild-5.0
- for
- how can we activate more people?
- half-day "sprint" to outline next things to do?
- better overview of easy things to do to make progress => open issues
- archiving of easyconfigs
- for oldest toolchains (older than 2020a)
- generation by generation
- step 1:
grep '^toolchain.*2019b' easybuild/easyconfigs
- step 2:
grep '^toolchain.*GCC.*8.3.0' easybuild/easyconfigs
- step 3: close easyocnfig PRs using these toolchains
- don't worry about conflicts that get introduced by PRs currently open to
develop
- by letter subdir
- doesn't really work due to dependencies
- oldest easyconfigs using
system
toolchain => archive software versions older than 5 years
- for oldest toolchains (older than 2020a)
-
5.0.x
branch was synced withdevelop
on 2023-10-04 (commit b2d86f5)- trivial conflicts fixed
- next steps
- switching from
run_cmd
torun_shell_cmd
- tricky for ones using
run_cmd_qa
- tricky for ones using
- switching to
LooseVersion
fromeasybuild.tools.*
(only change import statements) - enable
use_pip
+sanity_pip_check
inPythonPackage
- clean up easyconfigs after archiving
- remove dead easyblocks
- remove dead code in easyblocks (ancient software versions)
- update
config.guess
inConfigureMake
(issue #2826)
- switching from
-
5.0.x
branch was synced withdevelop
on 2023-10-04 (commit db2d79d)- trivial conflicts fixed
- [Kenneth]
run_shell_cmd
error reporting - [Mikael] archiving easyconfigs
- {foss,intel}/2016a + GCC(core) 4.9.3-2.25
- script in
scripts/
subdirectory in easybuild-easyconfigs repo
- [Mikael's colleague?] flip defaults for
download_dep_fail
+use_pip
+sanity_check_pip
inPythonPackage
easyblock - [Mikael's colleague?] fix
LooseVersion
imports in easyblocks - [Sebastian] update
config.guess
inConfigureMake
(issue #2826) - [Mikael] clean up SCOTCH easyblock (issue #2972)
- Mon 9 Oct 10:00 CEST
Attendees: Kenneth Hoste, Simon Branford, Alex Domingo, Jasper Grimm, Mikael Öhman, Bart Oldeman, Alexandre Strube
-
5.0.x
branch was synced withdevelop
on 2023-09-06 (commit 02ed943)- conflicts fixed, mostly due to support for
run_shell_cmd
hook that was added indevelop
via PR #4323
- conflicts fixed, mostly due to support for
- merged PRs:
- Simon's PR to remove deprecated functionality:
-
PR #4273 remove deprecated
descr
option forsimple_option
-
PR #4274 remove deprecated
Toolchain.add_dependencies
-
PR #4275 remove deprecated functionality from
filetools
-
PR #4276 remove deprecated log_error option from
which
function -
PR #4277 remove deprecated
skip_lower
option fromtemplate_constant_dict
-
PR #4278 remove deprecated options from
easyconfig.py
-
PR #4279 removed deprecated
mod_exists_regex_template
inModulesTool.exist
-
PR #4273 remove deprecated
- progress on
run_shell_cmd
:- initial implementation of
run
function to replacerun_cmd
+run_cmd_qa
(PR #4284) - copy
load_source
function fromeasybuild.tools.py2vs3.py3
toeasybuild.tools.filetools
so it can be used ineasybuild.tools.hooks
(PR #4306) - disable trace output for commands run in
get_source_tarball_from_git
(PR #4310) - fix broken github tests in options
test.framework.options
by disabling trace output indownload_repo
andfetch_files_from_pr
functions (PR #4311) - fix for
test_get_source_tarball_from_git
broken by trace output (PR #4310) - fix broken github tests in options
test.framework.options
by disabling trace output indownload_repo
andfetch_files_from_pr functions
(PR #4311) - implement
fail_on_error
/in_dry_run
/output_file
options + enable caching for run function, and switch fromrun_cmd
torun
function in systemtools (PR #4314) - implement support in
run
function for splitting stdout and stderr output (split_stderr
) + passing down environment to use, and switch torun
function for running module commands (PR #4321) - also include command used + working directory in return value of
run
function (PR #4322) - implement support in '
run
' function for running command in different working directory + switch torun
function in filetools (PR #4327) - trigger
run_shell_cmd
hook inrun
function (PR #4334)-
run_shell_cmd
hook will also be supported in EasyBuild v4.8.1
-
- rename
run
function torun_shell_cmd
(PR #4335 + PR #4336)
- initial implementation of
- Simon's PR to remove deprecated functionality:
- open PRs:
- change
tar
command used inget_source_tarball_from_git
to get reproducible tarballs (PR #4248)
- change
- TODO
- for
run_shell_cmd
- improve error reporting
- raise
EasyBuildError
instead ofsubprocess.CalledProcessError
- implement better error reporting, using a new
report_error
function that uses return value produced byrun_shell_cmd
(which cmd used, includes output, exit code, working dir, ...)
- raise
- implement missing options in
run_shell_cmd
stream_output
asynchronous
-
qa_patterns
+qa_wait_patterns
- complete transition to
run_shell_cmd
ineasybuild-framework
- TODO:
easybuild/framework/easyblock.py
easybuild/framework/extension.py
easybuild/toolchains/linalg/flexiblas.py
easybuild/tools/containers/*.py
easybuild/tools/job/slurm.py
easybuild/tools/options.py
easybuild/tools/package/utilities.py
- TODO:
- gradually switch easyblocks to
run_shell_cmd
(in5.0.x
branch) - add support for dropping into a interactive shell if command failed (cfr. issue #3950)
- global configuration option to opt-in to letting EasyBuild drop into an interactive shell if a shell command failed
- only when command is not expected to fail
- only when there's a tty
- opt-out option in
run_shell_cmd
for specific commands
- improve error reporting
- tackle other ideas, see https://github.com/easybuilders/easybuild-framework/labels/EasyBuild-5.0
- for
-
5.0.x
branch was synced withdevelop
on 2023-09-06 (commit d7b8b45)- trivial conflicts fixed
-
5.0.x
branch was synced withdevelop
on 2023-09-06 (commit a82280d)- trivial conflicts fixed
Attendees: Kenneth, Kurt, Alexandre, Sebastian, ...
- open PRs:
-
PR #178
--trace
enabled by default -
PR #200 Supported Toolchain Generations Policy
- From the discussion in https://github.com/easybuilders/easybuild/issues/872
-
PR #178
- toolchain support policy (issue #872)
- supported Lmod versions (issue #871)
- definitely drop support for Lmod 6
- dropping support for Lmod 7 probably has low impact
- should we require a minimal Lmod 8.x version (8.2 or 8.3)
- for extensions, depends_on, etc.
- bump to
REQ_VERSION
to 8.0 (or 8.3),DEPR_VERSION
to 8.5
-
5.0.x
branch was synced withdevelop
on 2023-06-07 - minor conflicts fixed (commit f378bac) - merged PRs:
- PR #4272 remove support for 32-bit targets
- open PRs:
-
PR #4284: initial progress by Kenneth, following discussion with Alex, on new
run
function (issue #4252)
-
PR #4284: initial progress by Kenneth, following discussion with Alex, on new
- several PRs for code cleanup in
5.0.x
branch, by removing deprecated stuff-
PR #4273 remove deprecated
descr
option forsimple_option
-
PR #4274 remove deprecated
Toolchain.add_dependencies
-
PR #4275 remove deprecated functionality from
filetools
-
PR #4276 remove deprecated log_error option from
which
function -
PR #4277 remove deprecated
skip_lower
option fromtemplate_constant_dict
-
PR #4278 remove deprecated options from
easyconfig.py
-
PR #4279 removed deprecated
mod_exists_regex_template
inModulesTool.exist
-
PR #4273 remove deprecated
- proposals for EasyBuild 5.0:
-
5.0.x
branch was synced withdevelop
on 2023-06-07 - trivial conflicts fixed (commit f93e6cd) - no merged or WIP PRs for now
- TODO
- stop using deprecated
py2vs3
module in easyblocks - start switching to new
run
function - consistently import
LooseVersion
fromeasybuild.tools
instead ofdistutils.version
in all easyblocks - enable
download_dep_fail
,use_pip
,sanity_pip_check
by default inPythonPackage
- and then remove
use_pip = True
& co in all easyconfigs
- and then remove
- update version of
config.guess
used byConfigureMake
(issue #2826)- important to test across a bunch of OSs & CPU architectures
- Kenneth: aarch64 (Graviton* in AWS + Ampere Altra in Azure + A64FX in Isambard)
- Kenneth: power9le (emulated)
- Sebastian: riscv64
- important to test across a bunch of OSs & CPU architectures
- stop using deprecated
-
5.0.x
branch was synced withdevelop
on 2023-06-07 - trivial conflicts fixed (commit c0fd7db) - no merged or WIP PRs for now
- TODO
- archive easyconfigs using a deprecated toolchains + toolchain policy
- archive ancient easyconfigs using
system
toolchain - archive directories that only have patches in them + cleaned up unused patches
- remove
use_pip = True
& co in all easyconfigs
Attendees: Kenneth, Simon, Jasper, Kurt, Mikael, Alex, Adam, Sebastian, Bart
- merged PRs:
- open PRs:
-
PR #178
--trace
enabled by default -
PR #200 Supported Toolchain Generations Policy
- From the discussion in https://github.com/easybuilders/easybuild/issues/872
-
PR #178
- toolchain support policy (issue #872)
- supported Lmod versions (issue #871)
- definitely drop support for Lmod 6
- dropping support for Lmod 7 probably has low impact
- should we require a minimal Lmod 8.x version (8.2 or 8.3)
- for extensions, depends_on, etc.
- bump to
REQ_VERSION
to 8.0 (or 8.3),DEPR_VERSION
to 8.5
-
5.0.x
branch was synced withdevelop
on 2023-06-07 - minor conflicts fixed (commit f378bac) - merged PRs:
-
PR #4250: enabling
--trace
by default (by Simon) -
PR #4270 update
check_python_version
to reflect that only Python >= 3.6 is supported - stop relying on
imp
(will no longer be available in Python 3.12) (issue #4264)- fixed in PR #4280 in
develop
- fixed in PR #4280 in
-
PR #4250: enabling
- open PRs:
-
PR #4284: initial progress by Kenneth, following discussion with Alex, on new
run
function (issue #4252)- feedback from Simon in PR
- next steps:
- expand tests run with new
run
function (in same PR?) - start using new
run
function in framework where possible (no unsupported options used) - follow-up PR? - start using new
run
in easyblocks- probably split across multiple PRs
- with reasonabe effort regarding testing, not testing all easyconfigs affected...
- implement missing features by expanding basic
run
function - support for setting environment variables in the scope of the command being run
- implement support for dropping into a shell when a command fails (issue #3950)
- should be configurable (globally + per
run
invocation)-
shell_on_error=True
?
-
- only do this when exit on error is enabled (
fail_on_error=True
) - only do this when
eb
is run in an interactive shell - Mikael has looked into this a bit
- use
pty.spawn
+ something likecmd || bash -l
?
- should be configurable (globally + per
- expand tests run with new
-
PR #4284: initial progress by Kenneth, following discussion with Alex, on new
- several PRs for code cleanup in
5.0.x
branch, by removing deprecated stuff- PR #4272 remove support for 32-bit targets
-
PR #4273 remove deprecated
desc
option forsimple_option
-
PR #4274 remove deprecated
Toolchain.add_dependencies
-
PR #4275 remove deprecated functionality from
filetools
-
PR #4276 remove deprecated log_error option from
which
function -
PR #4277 remove deprecated
skip_lower
option fromtemplate_constant_dict
-
PR #4278 remove deprecated options from
easyconfig.py
-
PR #4279 removed deprecated
mod_exists_regex_template
inModulesTool.exist
- proposals for EasyBuild 5.0:
- rename unclear
ExtensionEasyblock.run()
method (issue #4113) - include entire flag in optarch (instead of excluding the initial dash) and maybe make it only per-compiler (issue #4269)
-
--optarch='march=x86-64 -mtune=generic'
vs--optarch='-march=x86-64 -mtune=generic'
-
- stop relying on
distutils
(https://github.com/easybuilders/easybuild-framework/issues/3963)- can already start testing with Python 3.12 pre-release, see https://github.com/actions/setup-python/releases/tag/v4.6.0
- require Lmod >= 7.0 ?
- Community feedback in https://github.com/easybuilders/easybuild/issues/871
- No objections to dropping support for Lmod 6
-
eb
options simplification- John: "Using eb to build software is the last step. eb has a large number of arguments that continue to grow."
- separate
ec
command doesn't seem like a good idea
- separate
- Simon: It might be possible to make a split using
subparser
, but I have no firm idea or suggestion here and I'm unlikely to spend time on this.-
eb build
,eb github
, ... - unclear where all options would end up
- significant effort
- some options would apply to multiple subcommands, so would be "top-level" (like
--debug
) - opportunity to review current options and see if they're still needed and make sense
- re-design of CLI may result in significant delay for EasyBuild 5.0
- so maybe something for a "quick" EasyBuild 6.0 release?
- to some extent this "complaint" can be tackled by defining
eb*
aliases - main issue is that output of
eb --help
is massive - maybe this is more about shortening of
help
output-
eb --help=github
, ...
-
-
- John: "Using eb to build software is the last step. eb has a large number of arguments that continue to grow."
- rename unclear
-
5.0.x
branch was synced withdevelop
on 2023-06-07 - trivial conflicts fixed (commit f93e6cd) - no merged or WIP PRs for now
- TODO
- stop using deprecated
py2vs3
module in easyblocks - start switching to new
run
function - consistently import
LooseVersion
fromeasybuild.tools
instead ofdistutils.version
in all easyblocks - enable
download_dep_fail
,use_pip
,sanity_pip_check
by default inPythonPackage
- and then remove
use_pip = True
& co in all easyconfigs
- and then remove
- update version of
config.guess
used byConfigureMake
(issue #2826)- important to test across a bunch of OSs & CPU architectures
- Kenneth: aarch64 (Graviton* in AWS + Ampere Altra in Azure + A64FX in Isambard)
- Kenneth: power9le (emulated)
- Sebastian: riscv64
- important to test across a bunch of OSs & CPU architectures
- stop using deprecated
-
5.0.x
branch was synced withdevelop
on 2023-06-07 - trivial conflicts fixed (commit c0fd7db) - no merged or WIP PRs for now
- TODO
- archive easyconfigs using a deprecated toolchains + toolchain policy
- archive ancient easyconfigs using
system
toolchain - archive directories that only have patches in them + cleaned up unused patches
- remove
use_pip = True
& co in all easyconfigs
Attendees: Bart, Sebastian, Kenneth, Jasper, Simon, Mikael, Alexandre
- We should check the ideas in https://github.com/easybuilders/easybuild/wiki/Breaking-changes-being-considered-for-EasyBuild-v5.0
-
GitHub Actions no longer support testing on top of Python 2.7 (cfr. framework PR #4267)
- see https://github.com/actions/runner-images/issues/7401 + https://github.com/actions/setup-python/issues/672
- Python 3.6 will follow quickly - we really want to keep testing on top of that
- Python 3.6 EOL is 21 Dec 2021
- we need to explore running the tests in a container that provides Python 3.6
- could use work done in PR #3968 as a base for that
-
proposal on splitting up extensions for Python/Perl/R
- prepped by Alex + Mikael
- see https://hackmd.io/K1QhWGfdQWa2ZtlXlWVCCA
- progress in context of
2023a
common toolchains:
- WIP PR #137 to include overview of changes in EasyBuild 5.0
-
5.0.x
branch was synced withdevelop
on 2023-06-07 - minor conflicts fixed (commit f378bac) - some progress on enabling
--trace
by default by Simon (PR #4250)- Simon: fixing the tests is painful, but we're very close, only 1 test is failing (unexpected output being generated)
- could consider setting
$EASYBUILD_DISABLE_TRACE
in test setup?
- very little progress by Kenneth on new
run
function (issue #4252)- may be useful to pair up with someone on this in the coming weeks?
- proposals for EasyBuild 5.0:
- rename unclear
ExtensionEasyblock.run()
method (issue #4113) - include entire flag in optarch (instead of excluding the initial dash) and maybe make it only per-compiler (issue #4269)
-
--optarch='march=x86-64 -mtune=generic'
vs--optarch='-march=x86-64 -mtune=generic'
-
- stop relying on
distutils
(https://github.com/easybuilders/easybuild-framework/issues/3963)- can already start testing with Python 3.12 pre-release, see https://github.com/actions/setup-python/releases/tag/v4.6.0
- stop relying on
imp
(will no longer be available in Python 3.12) (issue #4264) - require Lmod >= 7.0 ?
- Simon will write up a proposal for this soon to get community feedback
- Simon will also write a proposal for toolchain support policy (going back N common toolchain versions)
- rename unclear
-
5.0.x
branch was synced withdevelop
on 2023-06-07 - trivial conflicts fixed (commit f93e6cd) - no merged or WIP PRs for now
- TODO
- consistently import
LooseVersion
fromeasybuild.tools
instead ofdistutils.version
in all easyblocks - enable
download_dep_fail
,use_pip
,sanity_pip_check
by default inPythonPackage
- and then remove
use_pip = True
& co in all easyconfigs
- and then remove
- update version of
config.guess
used byConfigureMake
(issue #2826)- important to test across a bunch of OSs & CPU architectures
- Kenneth: aarch64 (Graviton* in AWS + Ampere Altra in Azure + A64FX in Isambard)
- Kenneth: power9le (emulated)
- Sebastian: riscv64
- important to test across a bunch of OSs & CPU architectures
- consistently import
-
5.0.x
branch was synced withdevelop
on 2023-06-07 - trivial conflicts fixed (commit c0fd7db) - no merged or WIP PRs for now
- TODO
- archive easyconfigs using a deprecated toolchains + toolchain policy
- archive ancient easyconfigs using
system
toolchain - archive directories that only have patches in them + cleaned up unused patches
- remove
use_pip = True
& co in all easyconfigs