owned this note
owned this note
Published
Linked with GitHub
# EasyBuild 5.0
Useful links:
* EUM'23 talk: https://easybuild.io/eum23/#easybuild5
* EUM'24 talk: https://users.ugent.be/~kehoste/eum24/003_eum24_easybuild5.pdf
* GitHub Project: https://github.com/orgs/easybuilders/projects/18
* Sync meeting notes: https://github.com/easybuilders/easybuild/wiki/EasyBuild-5.0-working-group
## Meetings
Every 1st Wed of the month at 14:00 CE(S)T, via Zoom
### Next monthly sync meetings
- ...
### Next sprint meetings (max. 30 min)
- ...
---
## Meeting notes
### 2025-03-12
- release is imminent: "days, not weeks" -> "hours, not days"
- see issues found by Alex during regtesting in https://hackmd.io/@3QLwmjO3ToOJFmKFqbREjA/Hk-CXnTjyg
- problem with XML-LibXML points to problem in framework to be fixed
- docs: most important is PR that adds structure for EB5 landing page ([PR #297](https://github.com/easybuilders/easybuild-docs/pull/297))
### 2025-03-10
- final release of EasyBuild 5.0.0 on Wed 12 March, or release candidate?
- is there enough time for quick bugfix releases after EasyBuild v5.0.0?
- set up "known issues" section on EasyBuild 5.0 landing page
- broad regression test in coming days
- close to default configuration
- Kenneth on RHEL9, Alex on Rocky Linux 8
- also some more limited testing on Ubuntu 22.04? => Kenneth
- Alex & Mikael have been using `5.0.x` branch in production
- for some known issues, `--from-pr` or `--include-easyblocks-from-pr` will be very helpful
- blockers:
- complete overview of changes in docs landing page is "good enough"
- known issues
- Fix cargo build when git branch is referenced, affects `polars` easyconfigs ([easyblocks #3654](https://github.com/easybuilders/easybuild-easyblocks/pull/3654))
- installation of NCCL with `system` toolchain failing in RPATH sanity check
- next sync meeting
- Wed 12 March 14:00 CET (OK for Simon, Alex, Bart, Kenneth)
- discuss regression test results
- progress on docs
- prep what we'll communicate during EasyBuild conf call
- call a vote on releasing EasyBuild v5.0.0 vs release candidate in #maintainers
### 2025-03-03
- attending: Kenneth
- [EasyBuild v5.0.0beta2](https://docs.easybuild.io/easybuild-v5/release-candidates/#beta2)
- target release date for EasyBuild v5.0.0: Wed 12 March 2025
#### Merged PRs
**framework**
- copy build directory and/or log file(s) if installation failed to path specified via `--failed-install-build-dirs-path` or `--failed-install-logs-path` ([PR #4601](https://github.com/easybuilders/easybuild-framework/pull/4601))
- Add context manager for allowing unresolved templates and make the state members private + remove support for directly setting `enable_templating` and `expect_resolved_template_values` ([PR #4735](https://github.com/easybuilders/easybuild-framework/pull/4735))
- enable keeping of symbolic links by default when copying (set `keepsymlinks` easyconfig parameter to `True`) ([PR #4773](https://github.com/easybuilders/easybuild-framework/pull/4773))
- add support for `ModuleLoadEnvironment` aliases in `modextrapaths` easyconfig parameter + deprecate `allow_append_abs_path`, `allow_prepend_abs_path`, `modextrapaths_append` easyconfig parameters ([PR #4774](https://github.com/easybuilders/easybuild-framework/pull/4774))
- set maximum level of parallellism via `parallel` configuration option rather than fixed value for `max_parallel` easyconfig parameter ([PR #4777](https://github.com/easybuilders/easybuild-framework/pull/4777))
- limit output included in sanity check failure message for missing RPATH section in output of '`readelf -d`' + fix regex used to look for `'(RPATH)'` ([PR #4779](https://github.com/easybuilders/easybuild-framework/pull/4779))
**easyblocks**
- #3547
- #3605
**easyconfigs**
- avoid using buildcmd in PySide2 easyconfig ([PR #22380](https://github.com/easybuilders/easybuild-easyconfigs/pull/22380))
- remove deprecated `allow_prepend_abs_path` from libglvnd and SpaceRanger ([PR #22416](https://github.com/easybuilders/easybuild-easyconfigs/pull/22416))
- replace hardcoded `'CPATH'` in `modextravars` with `MODULE_LOAD_ENV_HEADERS` constant ([PR #22417](https://github.com/easybuilders/easybuild-easyconfigs/pull/22417))
#### TODO
- try and get [#4776](https://github.com/easybuilders/easybuild-framework/pull/4776) merged to fix problems with GitHub-related tests
- fix problem with recent `polars` easyconfigs
- docs update
- see HackMD documents to get things organised
- https://hackmd.io/PE6i513JTli_FX524gc33Q
- https://hackmd.io/m1LvJyH4RC-tQjbP-4ZbGQ
- https://hackmd.io/kQKJrTq_RrqHU8hNzMekuA
- add support flat dictionary for checksums
- this not a blocker for EaysBui.d 5.0, can be done without breaking changes
- start requiring this for new easyconfig PRs
- we should not allow templates in keys in `checksums` while we look into this
#### Timeline
- next couple of days: merge last PRs + update docs + compose release notes
- release 5.0.0 Wed 12 March + release talk during conf call slot 17:00 CET
- release from `5.0.x` branches
- collapse `5.0.x` into `develop` right after `5.0.0` release
- to avoid breaking `--from-pr` before EasyBuild 5.0.0 is available
- to make sure that `--new-pr`, `--from-pr` & co work with EasyBuild 5.0.0 when released
- sync (all?) open PRs with `develop` after collapsing `5.0.x` (with `eb --sync-pr`)
- most recent 100 PRs right after collapsing `5.0.x` to `develop`
- rest over the weekend?
- swap open PRs targeting `5.0.x` to `develop` branch
---
### 2025-02-24
- attending: Kenneth, Bart, Simon, Alex, Mikael, Jasper, Jörg
#### Merged PRs
**framework**
- Let jobs retweak easyconfigs themselves by passing down `--try-*` options ([PR #4669](https://github.com/easybuilders/easybuild-framework/pull/4669))
- don't enable keeping of debug symbols by default ([PR #4764](https://github.com/easybuilders/easybuild-framework/pull/4764))
- Deprecate use of `parallel` easyconfig parameter and fix updating the template value ([PR #4580](https://github.com/easybuilders/easybuild-framework/pull/4580))
**easyblocks**
- finish adopting `module_load_environment` in easyblocks (~24 easyblock PRs)
- remove custom easyblocks for MTL4 ([PR #3617](https://github.com/easybuilders/easybuild-easyblocks/pull/3617)) + Primer3 ([PR #3621](https://github.com/easybuilders/easybuild-easyblocks/pull/3621))
- Update easyblocks to use `EasyConfig.parallel` property ([PR #3557](https://github.com/easybuilders/easybuild-easyblocks/pull/3557))
- Fix `$PYTHONPATH` for hermetic python in TensorFlow builds [(PR #3568](https://github.com/easybuilders/easybuild-easyblocks/pull/3568))
- Fix building PyTorch when using `setup.py` as the build command ([PR #3574](https://github.com/easybuilders/easybuild-easyblocks/pull/3574))
#### TODO
- (WIP Kenneth) review/merge [framework PR #4735](https://github.com/easybuilders/easybuild-framework/pull/4735): add context manager for allowing unresolved templates and make the state members private + remove support for directly setting `enable_templating` and `expect_resolved_template_values`
- and accompanying [easyblocks PR #3547](https://github.com/easybuilders/easybuild-easyblocks/pull/3547): Use context managers for templating changes in `Bundle` easyblock
- how to deal with `$CPATH` being updated via `modextrapaths` in easyconfigs?
- last hurdle to close [framework issue #3331](https://github.com/easybuilders/easybuild-framework/issues/3331)
- close to 100 easyconfigs set `$CPATH` via `modextrapaths`
- auto-translate to `C_INCLUDE_PATH` & co in framework based on `module-search-path-headers` configuration setting?
- downside: can't set `$CPATH` if really needed
- `modextrapaths` should be handled via `module_load_environment`?
- replace use of `modextrapaths` to control `CPATH` with:
```python
modextrapaths = {SEARCH_PATH_HEADERS: 'include/libelf'}
```
- (Kenneth) review/merge of huge PR that revamps LLVM easyblock ([easyblocks PR #3373](https://github.com/easybuilders/easybuild-easyblocks/pull/3373))
- Add `build_target` parameter to `PythonPackage` ([easyblocks PR #3575](https://github.com/easybuilders/easybuild-easyblocks/pull/3575))
- only enhancement, shouldn't block EasyBuild 5.0 PR?
- `buildcmd` is set in some PyTorch easyblocks, but not actually used at all
- `buildcmd` used in `PySide2` => can use `buildopts` instead?
- fix [framework issue #4706](https://github.com/easybuilders/easybuild-framework/issues/4706): Extensions can should not be allowed to impact global environment during builds
- not trivial to this correctly when extensions are being installed in parallel
- long-standing bug, should not block EasyBuild 5.0 release
- easyblocks used for extensions shouldn't change any global state (environment, working directory)
- but we can't really enforce that?
- should be easy to fix for sequential installation of extensions...
- review/merge [framework PR #4601](https://github.com/easybuilders/easybuild-framework/pull/4601): Copy build log and artifacts to a permanent location after failures
- would be nice to have this included for EasyBuild 5.0
- wouldn't help with `eb --job --from-pr`, then you still need to set tmpdir to shared storage location
### Timeline for next few weeks
- release 5.0.0beta2 ASAP with what's in `5.0.x` right now
- Get all PRs to `5.0.x` branch merged by Sun 2 March
- 3-7 March: extensive regression testing on `5.0.x` branch + prepare docs
- Wed 12 March: release of EasyBuild 5.0.0...
---
**Older notes copied to https://github.com/easybuilders/easybuild/wiki/EasyBuild-5.0-sync-meetings**
---
#### TODO
* framework: https://github.com/easybuilders/easybuild-framework/milestone/71
* easyblocks: https://github.com/easybuilders/easybuild-easyblocks/milestone/73
* easyconfigs: https://github.com/easybuilders/easybuild-easyconfigs/milestone/72