-
Notifications
You must be signed in to change notification settings - Fork 148
EasyBuild 5.0 sync meetings
- attending: Kenneth, Bart, Jasper, Alex, Mikael
- porting of eayblocks to
module_load_environmentis 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
ccachein test step
- problem is due to using
- Mikael will open PR to have
--keep-debug-symbolsdisabled 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_stringmethod (PR #4756) - add
BOTH_TO_DIRstate toLibSymlink(framework PR #4761)
easyblocks
- adopt
module_load_environmentin 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-headersconfiguration 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
CUDAcompateasyblock 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_guessmethod inEasyBlockclass (framework PR #4653)- use
enumeratewhere 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_environmentinBundleeasyblock (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_guessmethod inEasyBlockclass (framework PR #4653) - fix error reporting for unknown value of
unrecognized_configure_optionsinConfigureMake(easyblocks PR #3563)
- RPATH wrappers break SystemCompiler easyblock (easyblocks issue #3558)
- installation of
Qt6-6.6.3-GCCcore-13.2.0.ebfails with EB 5.0dev, works with EB v4.9.4- see issue framework #4746
- reported by Mikael/Leonard,
confirmed by Simon
-
$CMAKE_PREFIX_PATHis 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_PATHis 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
Bundleneeds work, and should be merged ASAP
-
easyblocks PR #3513 for
- docs update
attending: Kenneth, Alex, Mikael, Bart, Simon, Alex
- Fix
to_checksumswithNonevalues in dicts and recursion (framework PR #4579) - Allow nesting values in checksum dicts (framework PR #4711)
- faster
nubfunction (framework PR #4737)
- (Alex,Kenneth) refactor generation of required environment variables in module files + deprecate
make_module_req_guessmethod inEasyBlockclass (framework PR #4653) - (Mikael) Deprecate use of parallel easyconfig parameter and fix updating the template value #4580
- some concerns w.r.t. always adding
-jtobuild_cmd -
parallel = Falseuse case was broken (cfr. Corsika), no equivalent to it viamaxparallel-
- (NO) should we auto-remove
-j 1in<build_cmd> -j 1?
- (NO) should we auto-remove
-
- (YES) only add
-jifself.cfg.parallel > 1inConfigureMake
-
maxparallel = 1would still work for easyconfigs that customizebuild_cmd -
make -j 1is equivalent tomake(see Make docs)
- (YES) only add
-
- (not needed if 2 is done) add support
build_j_option = FalsetoConfigureMake(as equivalent toparallel = False)?
- to avoid
maxparallel = 1workaround?
- (not needed if 2 is done) add support
-
- (NO, see Rust) only add
-jifbuild_cmdhasmake?
- (NO, see Rust) only add
-
- (YES) help text for
build_cmdshould mention that-jis 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
EasyBlockusable 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_guessmethod- see framework PR #4653
- open easyblock PRs:
- [Mikael] deprecate
paralleleasyconfig 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.xbranches, 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
ConfigureMakeeasyblock to error out on unknown configure options (easyblocks PR #3025) [Kenneth] - Rename
post_install_steptopost_processing_step(framework PR #4715 + easyblocks PR #3525) - checksum PRs #4578 + #4579 [Mikael]
- update Python easyblock to move
sitecustomize.pyintosite-packages(easyblocks #3514) [Kenneth] - sync with
developfor 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_onin 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_guessmethod - deprecating of
paralleleasyconfig parameter
- highlighted changes
- dedicated issue to give feedback (in
easybuildrepo)- positive/negative
- include output of
eb --versionandeb --show-configandeb --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.pyto fall back to importing setup fromsetuptoolsifdistutilsis not available (framework PR #4478) - Rename '
source' step to 'extract' (affectsskipstepseasyconfig parameter +--stopoption) (framework PR #4629) - add
--search-path-cpp-headersconfiguration 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-linkerto control linker options at build time (framework PR #4697) - enhance
get_software_libdirto return full paths if requested (framework PR #4699) - sync with develop (20241207) (framework PR #4718)
- retain custom easyconfig parameters supported by
MesonNinjaeasyblock in custom easyblock for scipy (easyblocks PR #3526)
-
-xis broken: framework issue #4713 installingscipyis broken: easyblocks issue #3524
- refactor generation of required environment variables in module files + deprecate
make_module_req_guessmethod inEasyBlockclass (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_steptopost_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
-
#eb5channel in Slack - dedicated meta-issue in GitHub to report problems with this RC?
-
- bugs introduced in
5.0.xbranches:-
-xis broken: framework issue #4713 - installing
scipyis 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.xbranches 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]
-
$CPATHrelated PRs - Rename SOURCE_STEP to EXTRACT_STEP (PR #4629)
- Let jobs retweak easyconfigs themselves (PR #4669) [Kenneth]
- Deprecate use of
paralleleasyconfig 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
parallelin easyconfig files by checking for it in easyconfigs test suite - support for
paralleleasyconfig 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.xbranches withdevelop- framework PR #4654
- easyblocks PR #3459
- easyconfigs PR #21497
- collapse of
5.0.xintodevelopis 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 whendevelopis 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
$PYTHONPATHor$EBPYTHONPREFIXES+ makePythonBundleandPythonPackageaware of--prefer-python-search-pathEasyBuild configuration option (PR #3343) - Make
CMakeMakerespect thetoolchainoptswhen selecting build type (easyblocks #3452)
- update easyblock to let EasyBuild framework take care of prepend to
framework
- [Kenneth] Enable
module-depends-onby default (PR #4500) - [Alex] Rename
SOURCE_STEPtoEXTRACT_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 -
ModuleLoadEnvironmentshould not be a singleton? - deprecates
make_module_req_guessmethod - easyblocks will have to be updated accordingly
- Alex is working on this already
-
self.module_load_environmentshould still be accessed inmake_module_step(taking into account--module-only)
- merge conflict on
- [Kenneth] add option
module-search-path-headersto 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
--dateargument fortouchcommand used in reproducible tarballs (PR #4660) - Add flushing and possible closing of stdin on
run_shell_cmd(PR #4664) - Proposed changest to add a
timeouttorun_shell_cmd(PR #4665)
easyblocks
- enhance
CMakeMakeeasyblock to check whether correct Python installation was picked up by CMake (PR #3399) - [Jasper] Make
MesonNinjarespect thetoolchainoptswith buildtype as well as--debugand--optimizationflags (PR #3454)
easyconfigs
- stop using
modextrapathsto update$PYTHONPATHwith 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.xbranches will soon be collapsed intodevelop- probably on Wed 25 Sept'24
- after sync of
5.0.xwith currentdevelop - increases the pressure to make next EasyBuild release 5.0...
- will break
--from-prwith EasyBuild 4.x- should use
--from-commitinstead, 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-prbeforeeb --merge
- first call
- framework:
- Enable
module-depends-onby default (PR #4500)- deprecate
modules_depends_oneasyconfig parameter - => set it to
Noneas default, print warning frommodule_generator.load_module+ honor it when set toFalse/True - => also accept use of
modules_depends_on = Falsein tests (will trigger deprecated warning) -
modules_depends_oneasyconfig 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_unloadwhich was already there;
- was originally introduced to mirror
- deprecate
- prepend to
$PYTHONPATHor$EBPYTHONPREFIXESin 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.xis collapsed intodevelop - see also easyconfigs issue #21456 for easyconfigs that explictly update
$PYTHONPATH
- add option
cpp-headers-search-pathsto control how EasyBuild sets paths to headers at build time (PR #4645)- this PR is about
$CPATHset in build environment that EasyBuild uses - tests fixed, extra test added
- other (independent) PR to not update
$CPATHin 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_guessis 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
EasyBuildErroris 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
paralleleasyconfig parameter bymaxparallel(PR #4398) - Enable
module-depends-onby default (PR #4500) - prepend to
$PYTHONPATHor$EBPYTHONPREFIXESin 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_STEPtoEXTRACT_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_groupsupport 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
getenvmodulefile command withEnvironmentModules>= 4.2.0 (PR #4614) - Add module cache build support on
EnvironmentModules(PR #4615) - derive
EnvironmentModulesclass directly fromModulesToolrather 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_DIRSfrom XDG basedir spec:/etc/xdg(instead of/etc) (PR #4591 )- including warn about finding
/etc/easybuild.d/*.cfginstead 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-onby default (framework PR #4500)-
--module-depends-onshould only mean usedepends_onwhen using Lmod as modules tool
-
- prepend to
$PYTHONPATHor$EBPYTHONPREFIXESin generated module files by automatically scanning for python site package directories (framework PR #4539)- companion PRs:
- Use
prefer_ebpythonprefixesflag 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 checkonly 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_DIRSfrom 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_intervaloption torun_shell_cmd(PR #4613)- seemed necessary for WIEN2k easyblock, but looks like there's actually a bug to fix...
-
EBPYTHONPREFIXESvsPYTHONPATH(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.pydoes
- 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_cmdeffort
- focus on breaking changes, put other efforts in the fridge for now
(hosted by Mikael)
- Work on
EBPYTHONPREFIXESproceeding (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_cmdand try to return to original working directory if non-existent (framework PR #4390) - remove
CMAKE_INSTALL_LIBDIRsettings 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_cmdsin PR #4531 is run in separate subshell, which limits usefulness- also only picked up when
configure_cmdis 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
namelowertemplates. Not a priority. -
Mikael: will ping other maintainers when
PYTHONPATHPR 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-mismatchso you can still consume (only) easyconfig PRs intended for EasyBuild 5.x using EasyBuild 4.9.2+-
--from-pron a merged PR => pull easyconfig fromdevelopbranch - using EB 4.9.2
--from-pr+ when5.0.xin 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_cmdas early as possible so dry-run + trace output is correct #4544
- check presence of CWD at the end of
run_shell_cmdand 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_DEPENDENCYvsMISSING_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.shandcmd.shhelper scripts inrun_shell_cmd(framework PR #4486) - fix
test_update_branch_githubwhich got broken becausetoy-0.0.ebeasyconfig 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:
-
configurein easyconfig parameters (to be consistent withconfigurestep) -
cfgin EasyBuild configuration options
-
- examples:
- confusion with commonly used terms (like 'module') is avoided by being more descriptive
- example: don't use
modfor module, butpy_modfor Python module,env_modfor environment module,fortran_modfor 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
CMakeMakebeing 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.shto 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 genericEasyBlockclass
- 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
$EBPYTHONPREFIXESover$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
-
PythonPackageshould take into accountself.prefer_ebpythonprefixesself.prefer_ebpythonprefixes = build_option('prefer_ebpythonprefixes') and self.cfg['prefer_ebpythonprefixes']
- let framework prepend to
$EBPYTHONPREFIXESor$PYTHONPATH(similar to$LD_LIBRARY_PATH) forlib/python*/site-packages, if the easyconfig/easyblock is not prepending to either$EBPYTHONPREFIXESor$PYTHONPATHalready, and only ifPythonis a dependency - clean up easyconfigs to not update
$PYTHONPATHviamodextrapaths+ 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_cmdtorun_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
$EBPYTHONPREFIXESover$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.getcwdto fail (storage in zombie state). Proposal to standarize behaviour ofrun_shell_cmdto 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.getcwdoutside 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
$EBPYTHONPREFIXESover$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 + makePythonPackagebehave) +ModuleGenerator(to deal withPYTHONPATHused inmodextrapaths) - EB should produce a warning if it detects that
PYTHONPATHis 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
ruffon 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.xbranches indevelop- will (often) break use of
--from-prwith 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-pron merged PR currently pulls fromdevelop - only use
5.0.xstyle branches going forward? - how does
--new-prknow 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_cmdandrun_cmd_qa& co, move them toeasybuild._deprecatedmodule (PR #4433)
easyblocks
- various PRs to migrate from
run_cmd_qatorun_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_cmdwithrun_shell_cmdin 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.8not 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
developbranch
- hide
readelfoutput in trace output in RPATH sanity check PR #4491 - switch from
lstobashin tests that are expecting this to be a binary PR #4492
- use
sysconfig.get_config_varsfrom Python standard library inPythonPackageeasyblock (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_cmdandrun_cmd_qa& co, move them toeasybuild._deprecatedmodule (WIP) (PR #4433)- blocked by open
run_shell_cmdPR #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
-
lddcheck should always be run to check for missing libraries, regardless of using RPATH or not - we could/should only care of
NEEDEDlibraries (direct dependencies, viareadelf -d) iflddreports 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
LIBDIRto lib by default inCMakeMakeeasyblock (PR #3227) - update
ConfigureMakeeasyblock to error out on unknown configure args (PR #3025) - use
run_shell_cmdin custom easyblock for WRF PR #3270
attending: Mikael, Jasper, Kenneth, Simon
- blocked by framework PR #4468 to add support for
--from-commitand--include-easyblocks-from-commit
- change
tarcommand used inget_source_tarball_from_gitto get reproducible tarballs (PR #4248) - Eliminate use of
distutils.version.StrictVersion, useLooseVersioninstead (PR #4476) - also run unit tests with Python 3.12 + add it to classifiers in
setup.py(PR #4484)
(none)
(none)
- deprecate
run_cmdandrun_cmd_qa& co, move them toeasybuild._deprecatedmodule (WIP) (PR #4433)- blocked by open
run_shell_cmdPR #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
LIBDIRto lib by default inCMakeMakeeasyblock (PR #3227) - update
ConfigureMakeeasyblock 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
developbranch, 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_extensionstoinstall_all_extensions(PR #4400) - replace
log.warnwithlog.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
runmethod toinstall_extension, and likewise forpreruntopre_install_extension,postruntopost_install_extension, andrun_asynctoinstall_extension_async(PR #3064)
- migrate archive of easyconfigs to
easybuild-easyconfigs-archive(PR #20006)- see also (easybuild-easyconfigs-archive PR #2)
-
setup.pyof easybuild-easyconfigs will be enhanced to easily install archive (but it won't be by default)
- change
tarcommand used inget_source_tarball_from_gitto 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
distutilsuse fromsetup.py(PR #4478) - Rename easyconfig parameters (WIP PR #4483)
- fix extension filter for Perl packages (PR #2699)
- update
ConfigureMakeeasyblock to error out on unknown configure args (PR #3025) - set CMake installation
LIBDIRtolibby default inCMakeMakeeasyblock (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
developin next couple of days...
-
5.0.xbranches recently synced withdevelop(framework PR #4469, easyblocks PR #3238, easyconfigs PR #20004)
- framework
- easyblocks
- easyconfigs
- none
- framework
- change
tarcommand used inget_source_tarball_from_gitto get reproducible tarballs (PR #4248) [Alex] - rename unclear
*run*methods to*install_extension*+ renameinstall_extensionstoinstall_all_extensions(PR #4400) [Kenneth] - implement support for running interactive commands with
run_shell_cmd(WIP) (PR #4453) [Kenneth] - deprecate
run_cmdandrun_cmd_qa& co, move them toeasybuild._deprecatedmodule (WIP) (PR #4433) [Kenneth]
- change
- easyblocks
- rename
runmethod toinstall_extension, and likewise forpreruntopre_install_extension,postruntopost_install_extension, andrun_asynctoinstall_extension_async(PR #3064) [Alex] - set CMake installation
LIBDIRtolibby default inCMakeMakeeasyblock (PR #3227) [Simon] - replace
run_cmdwithrun_shell_cmdin 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.xintodevelop(and keep4.9.xas backup branch)- this will affect people using
--from-prand--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_parallelin 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
READMEPR #1 - support installation of archive via
pip install easybuild-easyconfigs[archive](orpip install easybuild-easyconfigs-archive)
- add
-
docs
-
framework
- change
tarcommand used inget_source_tarball_from_gitto get reproducible tarballs (PR #4248) - rename unclear
*run*methods to*install_extension*+ renameinstall_extensionstoinstall_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_qatests should also be implemented forrun_shell_cmd - to be tested with real easyblock
- deprecate
run_cmdandrun_cmd_qa& co, move them toeasybuild._deprecatedmodule (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?
-
dependenciesvsdeps - 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/modis 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
eboption to "modernize" easyconfigs (rename parameters/templates/constants)
- separate words with underscores (
- Always set
$EBPYTHONPREFIXESinstead of$PYTHONPATH(issue #2887)- counter argument:
$PYTHONPATHis ubiquitous - problem with setting
$PYTHONPATHis 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+PythonPackageto be aware of it
- global EasyBuild configuration option:
- what about corner cases like
PLUMED/2.7.2-foss-2021a.luawhich hasprepend_path("PYTHONPATH", pathJoin(root, "lib/plumed/python"))in env. module- rename
lib/plumed/pythontolib/pythonX.Y/site-packagesto 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
parallelbymaxparallel(PR #19375)
- Replace
attending: Kenneth, Alex, Simon, Bart, Sebastian, Lara
- status of
5.0.xbranches- framework: synced with
developon 8 Feb'24 (CI OK) - easyblocks: synced with
developon 12 Feb'24 (CI OK) - easyconfigs: synced with
developon 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.xwithdevelopvia PRs to avoid breaking CI
- framework: synced with
- merged PRs (
5.0.xbranches)- 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_cmdtorun_shell_cmdin software-specific easyblocks - fail on non-zero exit code in command to run Perl test suite (PR #3170)
- enable
use_pipfor extensions that are installed along with Python (PR #3221)- may need to revisit this and come up with a way to inherit defaults from
PythonPackageeasyblock?
- 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_extensionstoinstall_all_extensions(PR #4400)- what happens if a
PythonPackagethat 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
RunShellCmdErrorinstead ofEasyBuildError
- OpenBLAS easyblock still uses
- rename
runmethod toinstall_extension, and likewise forpreruntopre_install_extension,postruntopost_install_extension, andrun_asynctoinstall_extension_async(PR #3064) - update
run_asyncmethods inRPackage,Rmpi, andRserveeasyblocks to use submitrun_shell_cmdcall into thread pool (PR #3163)
- easyconfigs
- add check to make sure that
download_dep_fail,sanity_pip_check,use_pipare not explicitly set toTruein 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
touchto reset timestamp to0rather than relying on--mtimeoption 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.xbranches- synced with
developon 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_onwith Lmod as default?
- should also switch to
- replace
paralleleasyconfig parameter bymaxparallel(PR #4398) - rename unclear
*run*methods to*install_extension*+ renameinstall_extensionstoinstall_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_cmdandrun_cmd_qa& co, move them toeasybuild._deprecatedmodule (WIP) (PR #4433)- WIP until
run_shell_cmdimplementation is complete (incl. Q&A support)
- WIP until
- create
lib/lib64symlink 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_parallelcan 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_asyncmethods inRPackage,Rmpi, andRserveeasyblocks to use submitrun_shell_cmdcall 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_checkanddownload_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-envconfiguration setting
- should be done opt-in, via
- change default backend for
--jobto 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_cmdinEasyblock.install_extensions_parallel(PR #4444](https://github.com/easybuilders/easybuild-framework/pull/4444)) -
use_pipis 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_interfacefunction 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.xbranches- synced with
developon 20240119
- synced with
- merged PRs
- framework
- easyblocks
- easyconfigs
- archive EasyBuild 3.x easyconfigs (PR #19656)
- open PRs
- framework
- replace
paralleleasyconfig parameter bymaxparallel(PR #4398) - rename unclear
*run*methods to*install_extension*+ renameinstall_extensionstoinstall_all_extensions(PR #4400) - create
lib/lib64symlink before runningpostinstallcmds(PR #4435) - deprecate support for
EnvironmentModulesCandEnvironmentModulesTclmodule 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_checkby default inPythonPackageeasyblock (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
ConfigureMakeeasyblock to error out on unknown configure args (PR #3025)- opt-out mechanism is implemented, some more requested changes => active work-in-progress
- rename
runmethod toinstall_extension, and likewise forpreruntopre_install_extension,postruntopost_install_extension, andrun_asynctoinstall_extension_async(PR #3064)- blocked by framework PR #4400
- disable
use_pipby 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_checkanddownload_dep_fail(PR #19265)- synced with
5.0.xby@boegelon 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
parallelbymaxparallel(PR #19375)
- clean up easyconfigs that explicitly set
- docs
- document how to transition from
run_cmdtorun_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
runPR - (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
PerlModulehave been checked/fixed
- waiting until other easyconfigs using
-
easyblocks PR #3022: enable
download_dep_fail,use_pip,sanity_pip_checkby default inPythonPackageeasyblock- Waiting for fixing easyconfigs mentioned it the list
- once problem with
CMakePythonPackageis fixed inPythonPackageeasyblock, half of the easyconfigs not enablinguse_pipwill be working fine
-
easyblock PR #3025: update
ConfigureMakeeasyblock to error out on unknown configure args- opt-out support has been added
-
easyblock PR #3074: pythonpackage: Remove
hidden=Truefromrun_shell_cmdfor consistency - framework PR #3285: Deprecate failure to resolve a template value
-
framework PR #4248: Change tar command used in
get_source_tarball_from_gitto get reproducible tarballs - framework PR #4373: drop load storm safe guard for Environment Modules v4.2.4+
-
framework PR #4398: Replace
paralleleasyconfig parameter bymaxparallel -
framework PR #4400: rename unclear
*run*methods to*install_extension*+ renameinstall_extensionstoinstall_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
runmethod to install_extension, and likewise for prerun topre_install_extension, postrun topost_install_extension, andrun_asynctoinstall_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
extensionsin 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_cmdandrun_cmd_qa& co, move them toeasybuild._deprecatedmodule (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_cmdtorun_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.xbranches- synced with
developafter 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.xbranches, and keepdevelopfor 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
tarcommand used inget_source_tarball_from_gitto 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
.gitfolder 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_onby 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
.modfiles 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
paralleleasyconfig 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
runmethods to install extensions (PR #4400)- basically ready to merge, except that
log.deprecatedcalls should use'6.0'instead of'5.0' - needs matching easyblocks PR
- basically ready to merge, except that
- use
run_shell_cmdin 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
PerlModuleeasyblock (Kenneth)
- awaiting test of other easyconfigs that (indirectly) rely on
- enable
download_dep_fail,use_pip,sanity_pip_checkby default in PythonPackage easyblock (PR #3022)- awaiting test report with relevant easyconfigs
- awaiting easyconfigs PR that sets
use_pip& co toFalsewhere needed => Kenneth - list of easyconfigs that need to be looked into @ https://github.com/easybuilders/easybuild-easyblocks/pull/3022#issuecomment-1875814148
- update
ConfigureMakeeasyblock 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_checkanddownload_dep_fail(PR #19265)
- clean up easyconfigs that explicitly set
- framework
- TODO
-
run_shell_cmd- implement async option
- complete transition to
run_shell_cmdin 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 -
runshould print deprecation warning + callinstall_extension, etc.
- let's deprecate
- migrate generic easyblocks to
run_shell_command(PR #3046)-
$GITHUB_BASE_REFis 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
.modfiles when usingGCCcore - there may be others...
- required because of check for Fortran
- change
tarcommand used inget_source_tarball_from_gitto get reproducible tarballs (framework PR #4248)- didn't work on macOS, so introduces a regression
- got different checksums when retaining
.gitsubdirectory- 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
developbranch 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
.modfiles in GCCcore installations PR #4389- we should make some extra effort to filter out blatant false positives?
- actual Fortran
.modfiles will have this as output fromfilecommand: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
boegelbotto set$EASYBUILD_FAIL_ON_MOD_FILES_GCCCORE=1when using EasyBuild v5.0
- [Jasper] change
tarcommand used inget_source_tarball_from_gitto get reproducible tarballs (framework PR #4248)- Jasper will take a look soon
- [Kenneth, Sebastian review/merge] enable
download_dep_fail,use_pip,sanity_pip_checkby 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
ConfigureMakeeasyblock 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-installdirby 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
extractandpreparesteps (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
-
PythonPackageeasyblock:modulenameshould 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
-
CMakeMakecould defaultCMAKE_BUILD_TYPEtoRelWithDebInfoinstead ofRelease(issue #3032) - separate framework issue to open (Bart): enable
-gby default (debugtoolchain 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_onby enabled by default? => Mikael will open an issue
-
- TODOs
- [Kenneth,Sebastian] set up copy of boegelbot to test with EasyBuild
5.0.xbranches- Sebastian has looked into this a bit
- can add support for
BRANCH=5.0.x
- [Kenneth | Alex | Bart] Document
run_shell_cmdchanges- should be PR to
easybuild-v5/run_shell_cmd/page in docs (developbranch)
- 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_outputasynchronous-
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
PythonPackagebut 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
PythonPackagewill need to getuse_pip = False... - check in easyconfigs test suite only checks easyconfigs that use
PythonPackageorPythonBundle, not stuff that derives from them => should be fixed
- [Alex] rename
Extension.runmethod that is used for installing extensions (cfr. framework issue #4113)- deprecating use of
.run(...) - better name:
-
Extension.install_as_extension?
-
- definitely also affects
Extension.postrunandExtension.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_cmdrun_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_cmdin 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
tarcommand used inget_source_tarball_from_gitto get reproducible tarballs (framework PR #4248) - [WHO? review/merge] enable
download_dep_fail,use_pip,sanity_pip_checkby 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
ConfigureMakeeasyblock 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.xbranches - [Kenneth | Alex] Document
run_shell_cmdchanges - [Kenneth + Alex] finish implementation of
run_shell_cmdstream_outputasynchronous-
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
PythonPackagebut 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
PythonPackagewill need to getuse_pip = False... - check in easyconfigs test suite only checks easyconfigs that use
PythonPackageorPythonBundle, not stuff that derives from them => should be fixed
- [WHO?] rename
Extension.runmethod 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
tarcommand used inget_source_tarball_from_gitto get reproducible tarballs (framework PR #4248) - [WHO? review/merge] enable
download_dep_fail,use_pip,sanity_pip_checkby 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
ConfigureMakeeasyblock 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_cmdstream_outputasynchronous-
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
PythonPackagebut 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
PythonPackagewill need to getuse_pip = False... - check in easyconfigs test suite only checks easyconfigs that use
PythonPackageorPythonBundle, 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.runmethod 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_cmdto store command output in temporary file(s) by default + passRunShellCmdResultinstance toRunShellCmdError(framework PR #4356)
- change
- open PRs
- [Jasper] change
tarcommand used inget_source_tarball_from_gitto get reproducible tarballs (framework PR #4248) - [WHO? review/merge] enable
download_dep_fail,use_pip,sanity_pip_checkby default in PythonPackage easyblock (easyblocks PR #3022)- [Kenneth] submit test reports
- [Adam to review/merge] rename
shelloption inrun_shell_cmdtouse_bash(framework PR #4378)
- [Jasper] change
- next steps
- [Alex,Kenneth] fix error reporting in
5.0.xbranch- failing to resolve dependencies doesn't produce an error message anymore (only non-zero exit code)
- [Kenneth + Alex] finish implementation of
run_shell_cmdso framework can be updated to only userun_shell_cmd(no morerun_cmd)- implement support for
stream_outputoption (required ineasybuild/tools/containers/*.py) - implement support for
asynchronousoption (required for--parallel-extensions-installsupport)
- implement support for
- [Kenneth?] implement support for Q&A commands in
run_shell_cmd- implement support for
qa_patternsandqa_wait_patternsoptions
- 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.runmethod 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
PythonPackagebut 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_cmdtorun_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_cmdpy2vs3- RIP Python 2
- removal of deprecated functionality
- changed defaults
-
change_dirinextract_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_VERSIONimported from easybuild.easyblocks is now a string value (framework PR #4357)
- open PRs
- [Kenneth,Alex] change
run_shell_cmdto store command output in temporary file(s) by default + passRunShellCmdResultinstance toRunShellCmdError(framework PR #4356)- status: reviewed + updated based on review, ready to merge?
- [Jasper] change
tarcommand used inget_source_tarball_from_gitto get reproducible tarballs (framework PR #4248)- PR branch needs to be updated with current
5.0.xto 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.xbranch to re-trigger CI - Kenneth will ask Alexander to move to
5.0.x
- enable
download_dep_fail,use_pip,sanity_pip_checkby 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
ConfigureMakeeasyblock 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.xbranch- failing to resolve dependencies doesn't produce an error message anymore (only non-zero exit code)
- [Kenneth + Alex] finish implementation of
run_shell_cmdso framework can be updated to only userun_shell_cmd(no morerun_cmd)- rename
shelloption touse_bash - implement support for
stream_outputoption (required ineasybuild/tools/containers/*.py) - implement support for
asynchronousoption (required for--parallel-extensions-installsupport)
- rename
- [Kenneth?] implement support for Q&A commands in
run_shell_cmd- implement support for
qa_patternsandqa_wait_patternsoptions
- 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.runmethod 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
PythonPackagebut 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_cmdtorun_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
LooseVersionfromeasybuild.toolsin all easyblocks (easyblocks PR #3018)-
VERSIONandVERBOSE_VERSIONconstants ineasybuild.easyblocksare now string values (used to beLooseVersioninstance) - requires framework #4357: take into account that
VERBOSE_VERSIONimported fromeasybuild.easyblocksis now a string value
-
- don't auto-enable use of
-DSCOTCH_PTHREADwhen 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
tarcommand used inget_source_tarball_from_gitto get reproducible tarballs (framework PR #4248) - take into account that
VERBOSE_VERSIONimported from easybuild.easyblocks is now a string value (framwork PR #4357) - change
run_shell_cmdto always store command output in temporary file(s) + passRunShellCmdResultinstance toRunShellCmdError(WIP (framework PR #4356)- tests are failing, needs more work
- enable
download_dep_fail,use_pip,sanity_pip_checkby default inPythonPackageeasyblock (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_shelleffort- get framework PR #4356 merged
- implement
stream_outputsupport
- start switching to
run_shell_cmdin easyblocks - test impact of framework PR #4248: are source tarballs for easyconfigs using
git_configreally 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.xbranches, 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
LooseVersionfromeasybuild.toolsand sort imports (easyblocks PR #3018)- use of
LooseVersionineasybuild/easyblocks/__init__.pyis 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_outputinrun_cmd_shellfunction + switch torun_cmd_shellineasybuild/tools/containers/*.py -
[Mikael,Kenneth] get (easyblocks PR #3018) merged (
LooseVersionimport)- need to stop using
LooseVersionineasybuild/easyblocks/__init__.py
- need to stop using
-
[Sebastian?] enable
download_dep_fail+use_pip+sanity_pip_checkby default inPythonPackage+PythonBundleeasyblocks- 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_cmdin 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.guessused 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_outputinrun_cmd_shellfunction + switch torun_cmd_shellineasybuild/tools/containers/*.py -
[Chia-jung Hsu] switch easyblocks to
LooseVersionfromeasybuild.tools.*(only change import statements) -
[Sebastian] enable
download_dep_fail+use_pip+sanity_pip_checkby default inPythonPackage+PythonBundleeasyblocks- explicitely set these to
Falsein easyconfigs not setting them toTrue- easyconfigs using any easyblock that derives from
PythonPackageorPythonBundle - 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.xtoolchain - 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.xbranch was synced withdevelopon 2023-10-02 (commit d450a80) - merged PRs:
- ...
- open PRs:
- change
tarcommand used inget_source_tarball_from_gitto get reproducible tarballs (PR #4248)
- change
- TODO
- for
run_shell_cmd- improve error reporting
- raise
EasyBuildErrorinstead ofsubprocess.CalledProcessError - implement better error reporting, using a new
report_errorfunction 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_cmdcould 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_cmdstream_outputasynchronous-
qa_patterns+qa_wait_patterns
- complete transition to
run_shell_cmdineasybuild-framework- TODO:
easybuild/framework/easyblock.pyeasybuild/framework/extension.pyeasybuild/toolchains/linalg/flexiblas.pyeasybuild/tools/containers/*.pyeasybuild/tools/job/slurm.pyeasybuild/tools/options.pyeasybuild/tools/package/utilities.py
- TODO:
- gradually switch easyblocks to
run_shell_cmd(in5.0.xbranch) - 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_cmdfor 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
systemtoolchain => archive software versions older than 5 years
- for oldest toolchains (older than 2020a)
-
5.0.xbranch was synced withdevelopon 2023-10-04 (commit b2d86f5)- trivial conflicts fixed
- next steps
- switching from
run_cmdtorun_shell_cmd- tricky for ones using
run_cmd_qa
- tricky for ones using
- switching to
LooseVersionfromeasybuild.tools.*(only change import statements) - enable
use_pip+sanity_pip_checkinPythonPackage- clean up easyconfigs after archiving
- remove dead easyblocks
- remove dead code in easyblocks (ancient software versions)
- update
config.guessinConfigureMake(issue #2826)
- switching from
-
5.0.xbranch was synced withdevelopon 2023-10-04 (commit db2d79d)- trivial conflicts fixed
- [Kenneth]
run_shell_cmderror 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_pipinPythonPackageeasyblock - [Mikael's colleague?] fix
LooseVersionimports in easyblocks - [Sebastian] update
config.guessinConfigureMake(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.xbranch was synced withdevelopon 2023-09-06 (commit 02ed943)- conflicts fixed, mostly due to support for
run_shell_cmdhook that was added indevelopvia PR #4323
- conflicts fixed, mostly due to support for
- merged PRs:
- Simon's PR to remove deprecated functionality:
-
PR #4273 remove deprecated
descroption forsimple_option -
PR #4274 remove deprecated
Toolchain.add_dependencies -
PR #4275 remove deprecated functionality from
filetools -
PR #4276 remove deprecated log_error option from
whichfunction -
PR #4277 remove deprecated
skip_loweroption fromtemplate_constant_dict -
PR #4278 remove deprecated options from
easyconfig.py -
PR #4279 removed deprecated
mod_exists_regex_templateinModulesTool.exist
-
PR #4273 remove deprecated
- progress on
run_shell_cmd:- initial implementation of
runfunction to replacerun_cmd+run_cmd_qa(PR #4284) - copy
load_sourcefunction fromeasybuild.tools.py2vs3.py3toeasybuild.tools.filetoolsso 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.optionsby disabling trace output indownload_repoandfetch_files_from_prfunctions (PR #4311) - fix for
test_get_source_tarball_from_gitbroken by trace output (PR #4310) - fix broken github tests in options
test.framework.optionsby disabling trace output indownload_repoandfetch_files_from_pr functions(PR #4311) - implement
fail_on_error/in_dry_run/output_fileoptions + enable caching for run function, and switch fromrun_cmdtorunfunction in systemtools (PR #4314) - implement support in
runfunction for splitting stdout and stderr output (split_stderr) + passing down environment to use, and switch torunfunction for running module commands (PR #4321) - also include command used + working directory in return value of
runfunction (PR #4322) - implement support in '
run' function for running command in different working directory + switch torunfunction in filetools (PR #4327) - trigger
run_shell_cmdhook inrunfunction (PR #4334)-
run_shell_cmdhook will also be supported in EasyBuild v4.8.1
-
- rename
runfunction torun_shell_cmd(PR #4335 + PR #4336)
- initial implementation of
- Simon's PR to remove deprecated functionality:
- open PRs:
- change
tarcommand used inget_source_tarball_from_gitto get reproducible tarballs (PR #4248)
- change
- TODO
- for
run_shell_cmd- improve error reporting
- raise
EasyBuildErrorinstead ofsubprocess.CalledProcessError - implement better error reporting, using a new
report_errorfunction that uses return value produced byrun_shell_cmd(which cmd used, includes output, exit code, working dir, ...)
- raise
- implement missing options in
run_shell_cmdstream_outputasynchronous-
qa_patterns+qa_wait_patterns
- complete transition to
run_shell_cmdineasybuild-framework- TODO:
easybuild/framework/easyblock.pyeasybuild/framework/extension.pyeasybuild/toolchains/linalg/flexiblas.pyeasybuild/tools/containers/*.pyeasybuild/tools/job/slurm.pyeasybuild/tools/options.pyeasybuild/tools/package/utilities.py
- TODO:
- gradually switch easyblocks to
run_shell_cmd(in5.0.xbranch) - 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_cmdfor specific commands
- improve error reporting
- tackle other ideas, see https://github.com/easybuilders/easybuild-framework/labels/EasyBuild-5.0
- for
-
5.0.xbranch was synced withdevelopon 2023-09-06 (commit d7b8b45)- trivial conflicts fixed
-
5.0.xbranch was synced withdevelopon 2023-09-06 (commit a82280d)- trivial conflicts fixed
Attendees: Kenneth, Kurt, Alexandre, Sebastian, ...
- open PRs:
-
PR #178
--traceenabled 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_VERSIONto 8.0 (or 8.3),DEPR_VERSIONto 8.5
-
5.0.xbranch was synced withdevelopon 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
runfunction (issue #4252)
-
PR #4284: initial progress by Kenneth, following discussion with Alex, on new
- several PRs for code cleanup in
5.0.xbranch, by removing deprecated stuff-
PR #4273 remove deprecated
descroption forsimple_option -
PR #4274 remove deprecated
Toolchain.add_dependencies -
PR #4275 remove deprecated functionality from
filetools -
PR #4276 remove deprecated log_error option from
whichfunction -
PR #4277 remove deprecated
skip_loweroption fromtemplate_constant_dict -
PR #4278 remove deprecated options from
easyconfig.py -
PR #4279 removed deprecated
mod_exists_regex_templateinModulesTool.exist
-
PR #4273 remove deprecated
- proposals for EasyBuild 5.0:
-
5.0.xbranch was synced withdevelopon 2023-06-07 - trivial conflicts fixed (commit f93e6cd) - no merged or WIP PRs for now
- TODO
- stop using deprecated
py2vs3module in easyblocks - start switching to new
runfunction - consistently import
LooseVersionfromeasybuild.toolsinstead ofdistutils.versionin all easyblocks - enable
download_dep_fail,use_pip,sanity_pip_checkby default inPythonPackage- and then remove
use_pip = True& co in all easyconfigs
- and then remove
- update version of
config.guessused 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.xbranch was synced withdevelopon 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
systemtoolchain - 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
--traceenabled 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_VERSIONto 8.0 (or 8.3),DEPR_VERSIONto 8.5
-
5.0.xbranch was synced withdevelopon 2023-06-07 - minor conflicts fixed (commit f378bac) - merged PRs:
-
PR #4250: enabling
--traceby default (by Simon) -
PR #4270 update
check_python_versionto 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
runfunction (issue #4252)- feedback from Simon in PR
- next steps:
- expand tests run with new
runfunction (in same PR?) - start using new
runfunction in framework where possible (no unsupported options used) - follow-up PR? - start using new
runin easyblocks- probably split across multiple PRs
- with reasonabe effort regarding testing, not testing all easyconfigs affected...
- implement missing features by expanding basic
runfunction - 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
runinvocation)-
shell_on_error=True?
-
- only do this when exit on error is enabled (
fail_on_error=True) - only do this when
ebis 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.xbranch, by removing deprecated stuff- PR #4272 remove support for 32-bit targets
-
PR #4273 remove deprecated
descoption forsimple_option -
PR #4274 remove deprecated
Toolchain.add_dependencies -
PR #4275 remove deprecated functionality from
filetools -
PR #4276 remove deprecated log_error option from
whichfunction -
PR #4277 remove deprecated
skip_loweroption fromtemplate_constant_dict -
PR #4278 remove deprecated options from
easyconfig.py -
PR #4279 removed deprecated
mod_exists_regex_templateinModulesTool.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
-
eboptions simplification- John: "Using eb to build software is the last step. eb has a large number of arguments that continue to grow."
- separate
eccommand 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 --helpis massive - maybe this is more about shortening of
helpoutput-
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.xbranch was synced withdevelopon 2023-06-07 - trivial conflicts fixed (commit f93e6cd) - no merged or WIP PRs for now
- TODO
- stop using deprecated
py2vs3module in easyblocks - start switching to new
runfunction - consistently import
LooseVersionfromeasybuild.toolsinstead ofdistutils.versionin all easyblocks - enable
download_dep_fail,use_pip,sanity_pip_checkby default inPythonPackage- and then remove
use_pip = True& co in all easyconfigs
- and then remove
- update version of
config.guessused 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.xbranch was synced withdevelopon 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
systemtoolchain - 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
2023acommon toolchains:
- WIP PR #137 to include overview of changes in EasyBuild 5.0
-
5.0.xbranch was synced withdevelopon 2023-06-07 - minor conflicts fixed (commit f378bac) - some progress on enabling
--traceby 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_TRACEin test setup?
- very little progress by Kenneth on new
runfunction (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.xbranch was synced withdevelopon 2023-06-07 - trivial conflicts fixed (commit f93e6cd) - no merged or WIP PRs for now
- TODO
- consistently import
LooseVersionfromeasybuild.toolsinstead ofdistutils.versionin all easyblocks - enable
download_dep_fail,use_pip,sanity_pip_checkby default inPythonPackage- and then remove
use_pip = True& co in all easyconfigs
- and then remove
- update version of
config.guessused 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.xbranch was synced withdevelopon 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
systemtoolchain - archive directories that only have patches in them + cleaned up unused patches
- remove
use_pip = True& co in all easyconfigs