Skip to content

Commit a42e25b

Browse files
authored
Merge pull request #4823 from easybuilders/5.0.x
release EasyBuild v5.0.0
2 parents 71cbb00 + ff57270 commit a42e25b

File tree

379 files changed

+14818
-8732
lines changed

Some content is hidden

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

379 files changed

+14818
-8732
lines changed

.github/workflows/container_tests.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,18 @@ jobs:
1717
python: [3.7]
1818
fail-fast: false
1919
steps:
20-
- uses: actions/checkout@v3
20+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2
2121

2222
- name: set up Python
23-
uses: actions/setup-python@v4
23+
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
2424
with:
2525
python-version: ${{matrix.python}}
2626
architecture: x64
2727

2828
- name: install OS & Python packages
2929
run: |
3030
# for modules tool
31-
APT_PKGS="lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev"
31+
APT_PKGS="lua5.3 liblua5.3-dev lua-filesystem lua-posix tcl tcl-dev"
3232
# for building Singularity images
3333
APT_PKGS+=" rpm dnf"
3434
@@ -74,7 +74,7 @@ jobs:
7474
ls dist
7575
export PREFIX=/tmp/$USER/$GITHUB_SHA
7676
pip install --prefix $PREFIX dist/easybuild[-_]framework*tar.gz
77-
pip install --prefix $PREFIX https://github.com/easybuilders/easybuild-easyblocks/archive/develop.tar.gz
77+
pip install --prefix $PREFIX https://github.com/easybuilders/easybuild-easyblocks/archive/5.0.x.tar.gz
7878
7979
- name: run test
8080
run: |
@@ -95,7 +95,7 @@ jobs:
9595
echo '%_dbpath %{_var}/lib/rpm' >> $HOME/.rpmmacros
9696
# build CentOS 7 container image for bzip2 1.0.8 using EasyBuild;
9797
# see https://docs.easybuild.io/en/latest/Containers.html
98-
curl -OL https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/develop/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb
98+
curl -OL https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/5.0.x/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb
9999
export EASYBUILD_CONTAINERPATH=$PWD
100100
export EASYBUILD_CONTAINER_CONFIG='bootstrap=docker,from=ghcr.io/easybuilders/centos-7.9-python3-amd64'
101101
eb bzip2-1.0.8.eb --containerize --experimental --container-build-image

.github/workflows/container_tests_apptainer.yml

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ jobs:
1515
strategy:
1616
matrix:
1717
python: [3.7]
18-
apptainer: [1.0.0, 1.1.7]
18+
apptainer: [1.0.0, 1.1.7, 1.3.6]
1919
fail-fast: false
2020
steps:
21-
- uses: actions/checkout@v3
21+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2
2222

2323
- name: set up Python
24-
uses: actions/setup-python@v3
24+
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
2525
with:
2626
python-version: ${{matrix.python}}
2727
architecture: x64
@@ -31,7 +31,7 @@ jobs:
3131
# for building CentOS 7 container images
3232
APT_PKGS="rpm dnf"
3333
# for modules tool
34-
APT_PKGS+=" lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev"
34+
APT_PKGS+=" lua5.3 liblua5.3-dev lua-filesystem lua-posix tcl tcl-dev"
3535
3636
# Avoid apt-get update, as we don't really need it,
3737
# and it does more harm than good (it's fairly expensive, and it results in flaky test runs)
@@ -41,12 +41,6 @@ jobs:
4141
sudo apt-get install $APT_PKGS
4242
fi
4343
44-
# fix for lua-posix packaging issue, see https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082
45-
# needed for Ubuntu 18.04, but not for Ubuntu 20.04, so skipping symlinking if posix.so already exists
46-
if [ ! -e /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so ] ; then
47-
sudo ln -s /usr/lib/x86_64-linux-gnu/lua/5.2/posix_c.so /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so
48-
fi
49-
5044
- name: install Lmod
5145
run: |
5246
# avoid downloading modules tool sources into easybuild-framework dir
@@ -74,7 +68,7 @@ jobs:
7468
ls dist
7569
export PREFIX=/tmp/$USER/$GITHUB_SHA
7670
pip install --prefix $PREFIX dist/easybuild[-_]framework*tar.gz
77-
pip install --prefix $PREFIX https://github.com/easybuilders/easybuild-easyblocks/archive/develop.tar.gz
71+
pip install --prefix $PREFIX https://github.com/easybuilders/easybuild-easyblocks/archive/5.0.x.tar.gz
7872
7973
- name: run test
8074
run: |
@@ -95,7 +89,7 @@ jobs:
9589
echo '%_dbpath %{_var}/lib/rpm' >> $HOME/.rpmmacros
9690
# build CentOS 7 container image for bzip2 1.0.8 using EasyBuild;
9791
# see https://docs.easybuild.io/en/latest/Containers.html
98-
curl -OL https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/develop/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb
92+
curl -OL https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/5.0.x/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb
9993
export EASYBUILD_CONTAINERPATH=$PWD
10094
export EASYBUILD_CONTAINER_CONFIG='bootstrap=docker,from=ghcr.io/easybuilders/centos-7.9-python3-amd64'
10195
export EASYBUILD_CONTAINER_TYPE='apptainer'

.github/workflows/eb_command.yml

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,19 @@ concurrency:
1111

1212
jobs:
1313
test-eb:
14-
runs-on: ubuntu-20.04
1514
strategy:
1615
matrix:
17-
python: [3.6, 3.7, 3.8, 3.9, '3.10', '3.11']
16+
python: [3.8, 3.9, '3.10', '3.11', '3.12', '3.13']
17+
include:
18+
- python: 3.7
19+
os: ubuntu-22.04
1820
fail-fast: false
21+
runs-on: ${{matrix.os || 'ubuntu-24.04'}}
1922
steps:
20-
- uses: actions/checkout@v3
23+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2
2124

2225
- name: set up Python
23-
uses: actions/setup-python@v4
26+
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
2427
with:
2528
python-version: ${{matrix.python}}
2629
architecture: x64
@@ -32,9 +35,13 @@ jobs:
3235
# update to latest pip, check version
3336
pip install --upgrade pip
3437
pip --version
38+
if ! python -c "import distutils" 2> /dev/null; then
39+
# we need setuptools for distutils in Python 3.12+, needed for python setup.py sdist
40+
pip install --upgrade setuptools
41+
fi
3542
3643
# for modules tool
37-
APT_PKGS="lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev"
44+
APT_PKGS="lua5.3 liblua5.3-dev lua-filesystem lua-posix tcl tcl-dev"
3845
3946
# Avoid apt-get update, as we don't really need it,
4047
# and it does more harm than good (it's fairly expensive, and it results in flaky test runs)
@@ -44,12 +51,6 @@ jobs:
4451
sudo apt-get install $APT_PKGS
4552
fi
4653
47-
# fix for lua-posix packaging issue, see https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082
48-
# needed for Ubuntu 18.04, but not for Ubuntu 20.04, so skipping symlinking if posix.so already exists
49-
if [ ! -e /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so ] ; then
50-
sudo ln -s /usr/lib/x86_64-linux-gnu/lua/5.2/posix_c.so /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so
51-
fi
52-
5354
- name: install modules tool
5455
run: |
5556
# avoid downloading modules tool sources into easybuild-framework dir
@@ -91,7 +92,7 @@ jobs:
9192
pymajver=$(python -c 'import sys; print(sys.version_info[0])')
9293
pymajminver=$(python -c 'import sys; print(".".join(str(x) for x in sys.version_info[:2]))')
9394
# check patterns in verbose output
94-
for pattern in "^>> Considering .python.\.\.\." "^>> .python. version: ${pymajminver}\.[0-9]\+, which matches Python ${pymajver} version requirement" "^>> 'python' is able to import 'easybuild.framework', so retaining it" "^>> Selected Python command: python \(.*/bin/python\)" "^This is EasyBuild 4\.[0-9.]\+"; do
95+
for pattern in "^>> Considering .python3.\.\.\." "^>> .python3. version: ${pymajminver}\.[0-9]\+, which matches Python ${pymajver} version requirement" "^>> 'python3' is able to import 'easybuild.framework', so retaining it" "^>> Selected Python command: python3 \(.*/bin/python3\)" "^This is EasyBuild 5\.[0-9.]\+"; do
9596
echo "Looking for pattern \"${pattern}\" in eb_version.out..."
9697
grep "$pattern" eb_version.out
9798
done
@@ -103,7 +104,7 @@ jobs:
103104
for eb_python in "python${pymajver}" "python${pymajminver}"; do
104105
export EB_PYTHON="${eb_python}"
105106
eb --version | tee eb_version.out 2>&1
106-
for pattern in "^>> Considering .${eb_python}.\.\.\." "^>> .${eb_python}. version: ${pymajminver}\.[0-9]\+, which matches Python ${pymajver} version requirement" "^>> '${eb_python}' is able to import 'easybuild.framework', so retaining it" "^>> Selected Python command: ${eb_python} \(.*/bin/${eb_python}\)" "^This is EasyBuild 4\.[0-9.]\+"; do
107+
for pattern in "^>> Considering .${eb_python}.\.\.\." "^>> .${eb_python}. version: ${pymajminver}\.[0-9]\+, which matches Python ${pymajver} version requirement" "^>> '${eb_python}' is able to import 'easybuild.framework', so retaining it" "^>> Selected Python command: ${eb_python} \(.*/bin/${eb_python}\)" "^This is EasyBuild 5\.[0-9.]\+"; do
107108
echo "Looking for pattern \"${pattern}\" in eb_version.out..."
108109
grep "$pattern" eb_version.out
109110
done

.github/workflows/end2end.yml

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,37 +7,36 @@ jobs:
77
strategy:
88
matrix:
99
container:
10-
- centos-7.9
1110
- centos-8.5
12-
- fedora-36
11+
- fedora-41
1312
- opensuse-15.4
14-
- rockylinux-8.8
15-
- rockylinux-9.2
13+
- rockylinux-8.10
14+
- rockylinux-9.5
1615
- ubuntu-20.04
1716
- ubuntu-22.04
17+
- ubuntu-24.04
1818
fail-fast: false
1919
container:
2020
image: ghcr.io/easybuilders/${{ matrix.container }}-amd64
21-
env: {ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true} # Allow using Node16 actions
2221
steps:
2322
- name: Check out the repo
24-
uses: actions/checkout@v3
23+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2
2524

2625
- name: download and unpack easyblocks and easyconfigs repositories
2726
run: |
2827
cd $HOME
2928
for pkg in easyblocks easyconfigs; do
30-
curl -OL https://github.com/easybuilders/easybuild-${pkg}/archive/develop.tar.gz
31-
tar xfz develop.tar.gz
32-
rm -f develop.tar.gz
29+
curl -OL https://github.com/easybuilders/easybuild-${pkg}/archive/5.0.x.tar.gz
30+
tar xfz 5.0.x.tar.gz
31+
rm -f 5.0.x.tar.gz
3332
done
3433
3534
- name: Set up environment
3635
shell: bash
3736
run: |
3837
# collect environment variables to be set in subsequent steps in script that can be sourced
3938
echo "export PATH=$PWD:$PATH" > /tmp/eb_env
40-
echo "export PYTHONPATH=$PWD:$HOME/easybuild-easyblocks-develop:$HOME/easybuild-easyconfigs-develop" >> /tmp/eb_env
39+
echo "export PYTHONPATH=$PWD:$HOME/easybuild-easyblocks-5.0.x:$HOME/easybuild-easyconfigs-5.0.x" >> /tmp/eb_env
4140
4241
- name: Run commands to check test environment
4342
shell: bash
@@ -50,6 +49,7 @@ jobs:
5049
"eb --show-system-info"
5150
"eb --check-eb-deps"
5251
"eb --show-config"
52+
"eb -x bzip2-1.0.8.eb"
5353
)
5454
for cmd in "${cmds[@]}"; do
5555
echo ">>> $cmd"
@@ -59,4 +59,8 @@ jobs:
5959
- name: End-to-end test of installing bzip2 with EasyBuild
6060
shell: bash
6161
run: |
62-
sudo -u easybuild bash -l -c "source /tmp/eb_env; eb bzip2-1.0.8.eb --trace --robot"
62+
EB_ARGS=''
63+
if [[ "${{ matrix.container }}" == "fedora-41" ]] || [[ "${{ matrix.container }}" == "ubuntu-24.04" ]]; then
64+
EB_ARGS='--filter-deps=binutils'
65+
fi
66+
sudo -u easybuild bash -l -c "source /tmp/eb_env; eb bzip2-1.0.8.eb --trace --robot ${EB_ARGS}"

.github/workflows/linting.yml

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,19 @@ concurrency:
1010

1111
jobs:
1212
python-linting:
13-
runs-on: ubuntu-20.04
1413
strategy:
1514
matrix:
16-
python-version: [3.6, 3.7, 3.8, 3.9, '3.10', '3.11']
17-
15+
python: [3.8, 3.9, '3.10', '3.11', '3.12', '3.13']
16+
include:
17+
- python: 3.7
18+
os: ubuntu-22.04
19+
fail-fast: false
20+
runs-on: ${{matrix.os || 'ubuntu-24.04'}}
1821
steps:
19-
- uses: actions/checkout@v3
22+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2
2023

2124
- name: set up Python
22-
uses: actions/setup-python@v4
25+
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
2326
with:
2427
python-version: ${{ matrix.python-version }}
2528

@@ -30,10 +33,4 @@ jobs:
3033
3134
- name: Run flake8 to verify PEP8-compliance of Python code
3235
run: |
33-
# don't check py2vs3/py3.py when testing with Python 2, and vice versa
34-
if [[ "${{ matrix.python-version }}" =~ "2." ]]; then
35-
py_excl=py3
36-
else
37-
py_excl=py2
38-
fi
39-
flake8 --exclude ./easybuild/tools/py2vs3/${py_excl}.py
36+
flake8

0 commit comments

Comments
 (0)