From 90c601a086aee68d482499f058656918828f080a Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Mon, 25 Nov 2024 21:46:19 +0100 Subject: [PATCH 01/25] Try wheel build. --- .github/workflows/build-wheels.yml | 46 ++++-------------------------- 1 file changed, 6 insertions(+), 40 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 8dd638008ec..c0a617e3292 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -64,12 +64,10 @@ jobs: runs-on: ubuntu-latest env: - MPI4PY_VERSION: 3.1.2 - PETSC4PY_VERSION: 3.16.1 - CIBW_MANYLINUX_X86_64_IMAGE: docker.io/fenicsproject/wheelbuilder_x86_64:latest - CIBW_BUILD: cp37-manylinux_x86_64 cp38-manylinux_x86_64 cp39-manylinux_x86_64 + CIBW_BUILD: cp39-manylinux_x86_64 CIBW_BUILD_VERBOSITY: 1 - CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple PETSC_DIR=/usr/local MAKEFLAGS=-j2 + CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 + CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_aarch64:2024-09-16-ab73a4b steps: - uses: actions/setup-python@v5 @@ -115,32 +113,12 @@ jobs: if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} run: python -m pip wheel --no-deps -w wheelhouse ./ffcx - - name: Download mpi4py - run: | - curl -L -O https://github.com/mpi4py/mpi4py/releases/download/${MPI4PY_VERSION}/mpi4py-${MPI4PY_VERSION}.tar.gz - mkdir -p mpi4py - tar -xf mpi4py-${MPI4PY_VERSION}.tar.gz -C mpi4py --strip-components 1 - - - name: Build mpi4py wheels - run: python -m cibuildwheel --output-dir wheelhouse mpi4py - - name: Make temporary simple503 repository run: | mkdir -p simple cp wheelhouse/* simple/ python -m simple503 --base-url file:///project/simple simple - - name: Download petsc4py - run: | - curl -L -O https://pypi.io/packages/source/p/petsc4py/petsc4py-${PETSC4PY_VERSION}.tar.gz - mkdir -p petsc4py - tar -xf petsc4py-${PETSC4PY_VERSION}.tar.gz -C petsc4py --strip-components 1 - - - name: Build petsc4py wheels - run: python -m cibuildwheel --output-dir wheelhouse petsc4py - env: - CIBW_BEFORE_BUILD: python -m pip install numpy # Not specified correctly in petsc4py - - name: Update temporary simple503 repository run: | cp wheelhouse/* simple/ @@ -157,8 +135,9 @@ jobs: - name: Build DOLFINx wheel run: python -m cibuildwheel --output-dir wheelhouse dolfinx/python env: - CIBW_BEFORE_BUILD: python -m pip -v install --prefer-binary fenics-ffcx fenics-basix && python -m pip -v install --prefer-binary petsc4py mpi4py && cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && cmake --build build-dir && cmake --install build-dir - CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')") && auditwheel repair -w {dest_dir} {wheel} + CIBW_BEFORE_BUILD: yum -y update && yum -y install mpich && python -m pip -v install --prefer-binary fenics-ffcx fenics-basix fenics-ufl && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && cmake --build build-dir && cmake --install build-dir + CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} + CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 LD_LIBRARY_PATH=/usr/lib64/mpich/lib - name: Update temporary simple503 repository run: | @@ -189,16 +168,3 @@ jobs: with: name: "simple503" path: simple/* - - # Extract mpiexec from docker image - - name: Extract mpiexec.hydra from Docker image - run: | - export CONTAINER_ID=$(docker create ${CIBW_MANYLINUX_X86_64_IMAGE}) - docker cp ${CONTAINER_ID}:/usr/local/bin/mpiexec.hydra mpiexec.hydra - docker rm ${CONTAINER_ID} - - - name: Upload mpiexec artifact - uses: actions/upload-artifact@v4 - with: - name: "mpiexec.hydra" - path: mpiexec.hydra From c9676f6e781230cfe1df74c303eac2740c2c33d3 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Mon, 25 Nov 2024 21:50:41 +0100 Subject: [PATCH 02/25] Fix. --- .github/workflows/build-wheels.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index c0a617e3292..534c414b9bd 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -67,10 +67,12 @@ jobs: CIBW_BUILD: cp39-manylinux_x86_64 CIBW_BUILD_VERBOSITY: 1 CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 - CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_aarch64:2024-09-16-ab73a4b + CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86-64:2024-09-16-ab73a4b steps: - uses: actions/setup-python@v5 + with: + version: 3.12 - name: Install Python dependencies run: python -m pip install cibuildwheel simple503 wheel From e24dad111cddd4e44c6890438f833f874857fea5 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Mon, 25 Nov 2024 21:54:30 +0100 Subject: [PATCH 03/25] Fix. --- .github/workflows/build-wheels.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 534c414b9bd..69f63198c8f 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -8,7 +8,7 @@ on: inputs: dolfinx_ref: description: "dolfinx git ref to checkout" - default: "" + default: "main" type: string build_fenicsx_stack: @@ -18,24 +18,24 @@ on: basix_ref: description: "basix git ref to checkout" - default: "" + default: "main" type: string ufl_ref: description: "ufl git ref to checkout" - default: "" + default: "main" type: string ffcx_ref: description: "ffcx git ref to checkout" - default: "" + default: "main" type: string workflow_call: inputs: dolfinx_ref: description: "dolfinx git ref to checkout" - default: "" + default: "main" type: string build_fenicsx_stack: @@ -45,17 +45,17 @@ on: basix_ref: description: "basix git ref to checkout" - default: "" + default: "main" type: string ufl_ref: description: "ufl git ref to checkout" - default: "" + default: "main" type: string ffcx_ref: description: "ffcx git ref to checkout" - default: "" + default: "main" type: string jobs: @@ -67,7 +67,7 @@ jobs: CIBW_BUILD: cp39-manylinux_x86_64 CIBW_BUILD_VERBOSITY: 1 CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 - CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86-64:2024-09-16-ab73a4b + CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64:2024-09-16-ab73a4b steps: - uses: actions/setup-python@v5 From 8db14b9869326446d6dbdf7817f73d0af16f30d5 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Mon, 25 Nov 2024 22:09:11 +0100 Subject: [PATCH 04/25] Fix. --- .github/workflows/build-wheels.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 69f63198c8f..0038748980e 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -72,10 +72,10 @@ jobs: steps: - uses: actions/setup-python@v5 with: - version: 3.12 + python-version: 3.12 - name: Install Python dependencies - run: python -m pip install cibuildwheel simple503 wheel + run: python -m pip install cibuildwheel simple503 build - name: Checkout Basix if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} @@ -87,8 +87,8 @@ jobs: - name: Build Basix wheel if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} + working-directory: basix run: | - cd basix python -m cibuildwheel --output-dir ../wheelhouse . - name: Checkout UFL @@ -101,7 +101,8 @@ jobs: - name: Build UFL wheel if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} - run: python -m pip wheel --no-deps -w wheelhouse ./ufl + working-directory: ufl + run: python -m build --outdir wheelhouse/ . - name: Checkout FFCx if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} @@ -113,7 +114,7 @@ jobs: - name: Build FFCx wheel if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} - run: python -m pip wheel --no-deps -w wheelhouse ./ffcx + run: python -m build --outdir wheelhouse/ . - name: Make temporary simple503 repository run: | @@ -137,7 +138,7 @@ jobs: - name: Build DOLFINx wheel run: python -m cibuildwheel --output-dir wheelhouse dolfinx/python env: - CIBW_BEFORE_BUILD: yum -y update && yum -y install mpich && python -m pip -v install --prefer-binary fenics-ffcx fenics-basix fenics-ufl && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && cmake --build build-dir && cmake --install build-dir + CIBW_BEFORE_BUILD: yum -y update && yum -y install mpich-devel && python -m pip -v install --prefer-binary fenics-ffcx fenics-basix fenics-ufl && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && cmake --build build-dir && cmake --install build-dir CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 LD_LIBRARY_PATH=/usr/lib64/mpich/lib From ed5ee5bed58524baea7e9fddfd2dc62af9ff8118 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Mon, 25 Nov 2024 22:31:19 +0100 Subject: [PATCH 05/25] Fix. --- .github/workflows/build-wheels.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 0038748980e..a2465d0f54c 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -114,6 +114,7 @@ jobs: - name: Build FFCx wheel if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} + working-directory: ffcx run: python -m build --outdir wheelhouse/ . - name: Make temporary simple503 repository @@ -138,7 +139,7 @@ jobs: - name: Build DOLFINx wheel run: python -m cibuildwheel --output-dir wheelhouse dolfinx/python env: - CIBW_BEFORE_BUILD: yum -y update && yum -y install mpich-devel && python -m pip -v install --prefer-binary fenics-ffcx fenics-basix fenics-ufl && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && cmake --build build-dir && cmake --install build-dir + CIBW_BEFORE_BUILD: yum -y update && yum -y install boost-devel boost-program-options hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && python -m pip -v install --prefer-binary fenics-ffcx fenics-basix fenics-ufl && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && cmake --build build-dir && cmake --install build-dir CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 LD_LIBRARY_PATH=/usr/lib64/mpich/lib From c1d06532970fa924848a791b5ae71ebd1abea67e Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Mon, 25 Nov 2024 22:48:02 +0100 Subject: [PATCH 06/25] Extra repos. --- .github/workflows/build-wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index a2465d0f54c..a8fe53e499a 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -139,7 +139,7 @@ jobs: - name: Build DOLFINx wheel run: python -m cibuildwheel --output-dir wheelhouse dolfinx/python env: - CIBW_BEFORE_BUILD: yum -y update && yum -y install boost-devel boost-program-options hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && python -m pip -v install --prefer-binary fenics-ffcx fenics-basix fenics-ufl && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && cmake --build build-dir && cmake --install build-dir + CIBW_BEFORE_BUILD: dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && python -m pip -v install --prefer-binary fenics-ffcx fenics-basix fenics-ufl && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && cmake --build build-dir && cmake --install build-dir CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 LD_LIBRARY_PATH=/usr/lib64/mpich/lib From 57f485fb40cb8ff47a7a3375d5b34ca78018389e Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Tue, 26 Nov 2024 08:07:19 +0100 Subject: [PATCH 07/25] Load mpich module --- .github/workflows/build-wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index a8fe53e499a..c40c198fd56 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -139,7 +139,7 @@ jobs: - name: Build DOLFINx wheel run: python -m cibuildwheel --output-dir wheelhouse dolfinx/python env: - CIBW_BEFORE_BUILD: dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && python -m pip -v install --prefer-binary fenics-ffcx fenics-basix fenics-ufl && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && cmake --build build-dir && cmake --install build-dir + CIBW_BEFORE_BUILD: dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary fenics-ffcx fenics-basix fenics-ufl && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && cmake --build build-dir && cmake --install build-dir CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 LD_LIBRARY_PATH=/usr/lib64/mpich/lib From 6659f3b2456d44eb2f1142f43df99818f9bcc6a7 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Tue, 26 Nov 2024 15:08:15 +0100 Subject: [PATCH 08/25] Source profile to get module --- .github/workflows/build-wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index c40c198fd56..d61dc4d0840 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -139,7 +139,7 @@ jobs: - name: Build DOLFINx wheel run: python -m cibuildwheel --output-dir wheelhouse dolfinx/python env: - CIBW_BEFORE_BUILD: dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary fenics-ffcx fenics-basix fenics-ufl && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && cmake --build build-dir && cmake --install build-dir + CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary fenics-ffcx fenics-basix fenics-ufl && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && cmake --build build-dir && cmake --install build-dir CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 LD_LIBRARY_PATH=/usr/lib64/mpich/lib From b3a8229be4ce99d1d7575f93680c8007e91001a6 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Tue, 26 Nov 2024 16:25:20 +0100 Subject: [PATCH 09/25] Update image to get newer boost. --- .github/workflows/build-wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index d61dc4d0840..9a539f5951c 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -67,7 +67,7 @@ jobs: CIBW_BUILD: cp39-manylinux_x86_64 CIBW_BUILD_VERBOSITY: 1 CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 - CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64:2024-09-16-ab73a4b + CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_34_x86_64:2024-11-24-a3012f3 steps: - uses: actions/setup-python@v5 From b1b1b1643885f6d66c3ced36266f0580b46c809e Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Tue, 26 Nov 2024 19:06:53 +0100 Subject: [PATCH 10/25] Use distro cmake for initial build --- .github/workflows/build-wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 9a539f5951c..b77bc8974bd 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -139,7 +139,7 @@ jobs: - name: Build DOLFINx wheel run: python -m cibuildwheel --output-dir wheelhouse dolfinx/python env: - CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary fenics-ffcx fenics-basix fenics-ufl && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && cmake --build build-dir && cmake --install build-dir + CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary fenics-ffcx fenics-basix fenics-ufl && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 LD_LIBRARY_PATH=/usr/lib64/mpich/lib From 4722330da48818a873c1b86904eefd63c25336d3 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Tue, 26 Nov 2024 19:22:53 +0100 Subject: [PATCH 11/25] No messing with Boost. --- cpp/CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 20003555877..27067fd9f8a 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -297,11 +297,11 @@ endif() find_package(pugixml REQUIRED) # Note: When updating Boost version, also update DOLFINXConfig.cmake.in -if(DEFINED ENV{BOOST_ROOT} OR DEFINED BOOST_ROOT) - set(Boost_NO_SYSTEM_PATHS on) -endif() +#if(DEFINED ENV{BOOST_ROOT} OR DEFINED BOOST_ROOT) +# set(Boost_NO_SYSTEM_PATHS on) +#endif() -set(Boost_USE_MULTITHREADED $ENV{BOOST_USE_MULTITHREADED}) +#set(Boost_USE_MULTITHREADED $ENV{BOOST_USE_MULTITHREADED}) set(Boost_VERBOSE TRUE) find_package(Boost 1.70 REQUIRED) set_package_properties( From feb326f8a69736dd126eead8654c4548053070bb Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Tue, 26 Nov 2024 19:26:17 +0100 Subject: [PATCH 12/25] Use system cmake (missed one) --- .github/workflows/build-wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index b77bc8974bd..c8c12879350 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -139,7 +139,7 @@ jobs: - name: Build DOLFINx wheel run: python -m cibuildwheel --output-dir wheelhouse dolfinx/python env: - CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary fenics-ffcx fenics-basix fenics-ufl && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir + CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary fenics-ffcx fenics-basix fenics-ufl && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 LD_LIBRARY_PATH=/usr/lib64/mpich/lib From ed9b9499d0cdad9806a3e81046c082c53a477656 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Tue, 26 Nov 2024 20:23:19 +0100 Subject: [PATCH 13/25] Pin versions. --- .github/workflows/build-wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index c8c12879350..b5087768001 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -139,7 +139,7 @@ jobs: - name: Build DOLFINx wheel run: python -m cibuildwheel --output-dir wheelhouse dolfinx/python env: - CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary fenics-ffcx fenics-basix fenics-ufl && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir + CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary fenics-ffcx>=0.10.0.dev0 fenics-basix>=0.10.0.dev0 fenics-ufl>=0.10.0.dev0 && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 LD_LIBRARY_PATH=/usr/lib64/mpich/lib From 4ad875d22fc63c02717a035632c6dc07fabdb8f2 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Tue, 26 Nov 2024 20:33:49 +0100 Subject: [PATCH 14/25] Fix directories --- .github/workflows/build-wheels.yml | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index b5087768001..cb90263f3af 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -75,7 +75,7 @@ jobs: python-version: 3.12 - name: Install Python dependencies - run: python -m pip install cibuildwheel simple503 build + run: python -m pip install cibuildwheel simple503 - name: Checkout Basix if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} @@ -87,9 +87,8 @@ jobs: - name: Build Basix wheel if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} - working-directory: basix run: | - python -m cibuildwheel --output-dir ../wheelhouse . + python -m cibuildwheel --output-dir wheelhouse/ basix/ - name: Checkout UFL if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} @@ -101,8 +100,7 @@ jobs: - name: Build UFL wheel if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} - working-directory: ufl - run: python -m build --outdir wheelhouse/ . + run: python -m cibuildwheel --output-dir wheelhouse/ ufl/ - name: Checkout FFCx if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} @@ -114,8 +112,7 @@ jobs: - name: Build FFCx wheel if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} - working-directory: ffcx - run: python -m build --outdir wheelhouse/ . + run: python -m cibuildwheel --output-dir wheelhouse/ ffcx/ - name: Make temporary simple503 repository run: | @@ -137,7 +134,7 @@ jobs: # fenics-ffcx and fenics-basix are required by DOLFINx C++ build # mpi4py and petsc4py are build_requirements of DOLFINx Python - name: Build DOLFINx wheel - run: python -m cibuildwheel --output-dir wheelhouse dolfinx/python + run: python -m cibuildwheel --output-dir wheelhouse/ dolfinx/python env: CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary fenics-ffcx>=0.10.0.dev0 fenics-basix>=0.10.0.dev0 fenics-ufl>=0.10.0.dev0 && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} From 12e596ec301a176a604e2ab10ff2995549995c58 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Tue, 26 Nov 2024 20:43:47 +0100 Subject: [PATCH 15/25] Fix. --- .github/workflows/build-wheels.yml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index cb90263f3af..dad0c181333 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -88,7 +88,8 @@ jobs: - name: Build Basix wheel if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} run: | - python -m cibuildwheel --output-dir wheelhouse/ basix/ + cd basix/ + python -m cibuildwheel --output-dir ../wheelhouse/ . - name: Checkout UFL if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} @@ -100,7 +101,9 @@ jobs: - name: Build UFL wheel if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} - run: python -m cibuildwheel --output-dir wheelhouse/ ufl/ + run: | + cd ufl/ + python -m cibuildwheel --output-dir ../wheelhouse/ . - name: Checkout FFCx if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} @@ -112,7 +115,9 @@ jobs: - name: Build FFCx wheel if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} - run: python -m cibuildwheel --output-dir wheelhouse/ ffcx/ + run: | + cd ffcx/ + python -m cibuildwheel --output-dir ../wheelhouse/ . - name: Make temporary simple503 repository run: | @@ -134,7 +139,9 @@ jobs: # fenics-ffcx and fenics-basix are required by DOLFINx C++ build # mpi4py and petsc4py are build_requirements of DOLFINx Python - name: Build DOLFINx wheel - run: python -m cibuildwheel --output-dir wheelhouse/ dolfinx/python + run: | + cd dolfinx/python + python -m cibuildwheel --output-dir wheelhouse/ dolfinx/python env: CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary fenics-ffcx>=0.10.0.dev0 fenics-basix>=0.10.0.dev0 fenics-ufl>=0.10.0.dev0 && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} From 8f2e36f5ba2a617c10fee10ee1db4f307c64ab58 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Tue, 26 Nov 2024 21:08:23 +0100 Subject: [PATCH 16/25] Back to build --- .github/workflows/build-wheels.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index dad0c181333..8e6c67cd32c 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -75,7 +75,7 @@ jobs: python-version: 3.12 - name: Install Python dependencies - run: python -m pip install cibuildwheel simple503 + run: python -m pip install cibuildwheel simple503 build - name: Checkout Basix if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} @@ -102,8 +102,7 @@ jobs: - name: Build UFL wheel if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} run: | - cd ufl/ - python -m cibuildwheel --output-dir ../wheelhouse/ . + python -m build -o wheelhouse/ ufl/ - name: Checkout FFCx if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} @@ -116,8 +115,7 @@ jobs: - name: Build FFCx wheel if: ${{ github.event.inputs.build_fenicsx_stack == 'true' }} run: | - cd ffcx/ - python -m cibuildwheel --output-dir ../wheelhouse/ . + python -m build -o wheelhouse/ ffcx/ - name: Make temporary simple503 repository run: | @@ -140,7 +138,6 @@ jobs: # mpi4py and petsc4py are build_requirements of DOLFINx Python - name: Build DOLFINx wheel run: | - cd dolfinx/python python -m cibuildwheel --output-dir wheelhouse/ dolfinx/python env: CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary fenics-ffcx>=0.10.0.dev0 fenics-basix>=0.10.0.dev0 fenics-ufl>=0.10.0.dev0 && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir From 54004e2fb85c1f36a2249c4865010b1ed4fffa9a Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Tue, 26 Nov 2024 21:14:02 +0100 Subject: [PATCH 17/25] Disable build isolation and install build deps. --- .github/workflows/build-wheels.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 8e6c67cd32c..b3c0ba4b007 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -140,9 +140,10 @@ jobs: run: | python -m cibuildwheel --output-dir wheelhouse/ dolfinx/python env: - CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary fenics-ffcx>=0.10.0.dev0 fenics-basix>=0.10.0.dev0 fenics-ufl>=0.10.0.dev0 && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir + CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary fenics-ffcx>=0.10.0.dev0 fenics-basix>=0.10.0.dev0 fenics-ufl>=0.10.0.dev0 && python -m pip -v install --prefer-binary mpi4py scikit-build-core[pyproject] nanobind -i https://pypi.anaconda.org/mpi4py/simple && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 LD_LIBRARY_PATH=/usr/lib64/mpich/lib + CIBW_BUILD_FRONTEND: "pip; args: --no-build-isolation" - name: Update temporary simple503 repository run: | From e1f9211b8be0f432baa57889b75ec961f1e40587 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Tue, 26 Nov 2024 21:33:32 +0100 Subject: [PATCH 18/25] Small tweaks. --- .github/workflows/build-wheels.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index b3c0ba4b007..0895d72135d 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -123,11 +123,6 @@ jobs: cp wheelhouse/* simple/ python -m simple503 --base-url file:///project/simple simple - - name: Update temporary simple503 repository - run: | - cp wheelhouse/* simple/ - python -m simple503 --base-url file:///project/simple simple - - name: Checkout DOLFINx uses: actions/checkout@v4 with: @@ -140,9 +135,9 @@ jobs: run: | python -m cibuildwheel --output-dir wheelhouse/ dolfinx/python env: - CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary fenics-ffcx>=0.10.0.dev0 fenics-basix>=0.10.0.dev0 fenics-ufl>=0.10.0.dev0 && python -m pip -v install --prefer-binary mpi4py scikit-build-core[pyproject] nanobind -i https://pypi.anaconda.org/mpi4py/simple && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir + CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary 'fenics-basix>=0.10.0.dev0' && python -m pip -v install --prefer-binary mpi4py scikit-build-core[pyproject] nanobind -i https://pypi.anaconda.org/mpi4py/simple && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} - CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 LD_LIBRARY_PATH=/usr/lib64/mpich/lib + CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 CIBW_BUILD_FRONTEND: "pip; args: --no-build-isolation" - name: Update temporary simple503 repository From b01d92bde5ec20e22d7e6cc2f680d2f6f723e799 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Tue, 26 Nov 2024 21:53:47 +0100 Subject: [PATCH 19/25] Install build deps from normal pypa. --- .github/workflows/build-wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 0895d72135d..941be01747b 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -135,7 +135,7 @@ jobs: run: | python -m cibuildwheel --output-dir wheelhouse/ dolfinx/python env: - CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary 'fenics-basix>=0.10.0.dev0' && python -m pip -v install --prefer-binary mpi4py scikit-build-core[pyproject] nanobind -i https://pypi.anaconda.org/mpi4py/simple && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir + CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary 'fenics-basix>=0.10.0.dev0' && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && pip -v install scikit-build-core[pyproject] nanobind && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 CIBW_BUILD_FRONTEND: "pip; args: --no-build-isolation" From fdac6c40b8571068f8b4c046b62afaba1b334cb8 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Thu, 28 Nov 2024 17:13:09 +0100 Subject: [PATCH 20/25] The way RedHat sets up HDF5 is a bit tricky. --- .github/workflows/build-wheels.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 941be01747b..8cb1609afd0 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -135,7 +135,20 @@ jobs: run: | python -m cibuildwheel --output-dir wheelhouse/ dolfinx/python env: - CIBW_BEFORE_BUILD: . /etc/profile && dnf -y update && dnf install -y dnf-plugins-core && dnf install -y epel-release && /usr/bin/crb enable && dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-mpich-devel mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && python -m pip -v install --prefer-binary 'fenics-basix>=0.10.0.dev0' && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && pip -v install scikit-build-core[pyproject] nanobind && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) && /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir + CIBW_BEFORE_BUILD: | + . /etc/profile && + dnf -y update && + dnf install -y dnf-plugins-core && + dnf install -y epel-release && + /usr/bin/crb enable && + dnf -y update && + dnf -y install boost-devel boost-program-options cmake hdf5-devel hdf5-mpich-devel make mpich-devel openblas-devel pugixml-devel spdlog-devel && + module load mpi/mpich-$(arch) && + python -m pip -v install --prefer-binary 'fenics-basix>=0.10.0.dev0' && + python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && + pip -v install scikit-build-core[pyproject] nanobind && + /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) -DHDF5_INCLUDE_DIRS=/usr/include/mpich-aarch64 -DHDF5_LIBRARIES=/usr/lib64/mpich/lib && + /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 CIBW_BUILD_FRONTEND: "pip; args: --no-build-isolation" From 0c64c8fd467cac0e373faedec82ebc4044f2a087 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Thu, 28 Nov 2024 17:38:21 +0100 Subject: [PATCH 21/25] Works locally. --- .github/workflows/build-wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 8cb1609afd0..a64e73d6ac7 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -147,7 +147,7 @@ jobs: python -m pip -v install --prefer-binary 'fenics-basix>=0.10.0.dev0' && python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && pip -v install scikit-build-core[pyproject] nanobind && - /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) -DHDF5_INCLUDE_DIRS=/usr/include/mpich-aarch64 -DHDF5_LIBRARIES=/usr/lib64/mpich/lib && + /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) -DHDF5_C_INCLUDE_DIR=/usr/include/mpich-$(arch) -DHDF5_C_LIBRARIES=/usr/lib64/mpich/lib && /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 From ecf0c33275dda23edba95c0652877947de6d9fa9 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Fri, 29 Nov 2024 09:27:33 +0100 Subject: [PATCH 22/25] Add FFCx and UFL back. --- .github/workflows/build-wheels.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index a64e73d6ac7..8c7c521140f 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -144,11 +144,12 @@ jobs: dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-devel hdf5-mpich-devel make mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && - python -m pip -v install --prefer-binary 'fenics-basix>=0.10.0.dev0' && - python -m pip -v install --prefer-binary mpi4py -i https://pypi.anaconda.org/mpi4py/simple && + python -m pip -v install fenics-basix>=0.10.0.dev0 fenics-ffcx fenics-ufl && + python -m pip -v install mpi4py -i https://pypi.anaconda.org/mpi4py/simple && pip -v install scikit-build-core[pyproject] nanobind && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) -DHDF5_C_INCLUDE_DIR=/usr/include/mpich-$(arch) -DHDF5_C_LIBRARIES=/usr/lib64/mpich/lib && - /usr/bin/cmake --build build-dir && /usr/bin/cmake --install build-dir + /usr/bin/cmake --build build-dir && + /usr/bin/cmake --install build-dir CIBW_REPAIR_WHEEL_COMMAND_LINUX: export LD_LIBRARY_PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/fenics_basix.libs')"):${LD_LIBRARY_PATH} && auditwheel repair -w {dest_dir} {wheel} CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=file:///project/simple MAKEFLAGS=-j3 CIBW_BUILD_FRONTEND: "pip; args: --no-build-isolation" From 88acadd43f511b1aa7bd002d1b7911f3995cb6ab Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Fri, 29 Nov 2024 13:31:40 +0100 Subject: [PATCH 23/25] Pin versions. --- .github/workflows/build-wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 8c7c521140f..e05035f23e8 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -144,7 +144,7 @@ jobs: dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-devel hdf5-mpich-devel make mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && - python -m pip -v install fenics-basix>=0.10.0.dev0 fenics-ffcx fenics-ufl && + python -m pip -v install fenics-basix>=0.10.0.dev0 fenics-ffcx>=0.10.0.dev0 fenics-ufl>=2024.3.0.dev0 && python -m pip -v install mpi4py -i https://pypi.anaconda.org/mpi4py/simple && pip -v install scikit-build-core[pyproject] nanobind && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) -DHDF5_C_INCLUDE_DIR=/usr/include/mpich-$(arch) -DHDF5_C_LIBRARIES=/usr/lib64/mpich/lib && From 07b4861a1463160097e4474c9ea32584f472d837 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Fri, 29 Nov 2024 14:03:31 +0100 Subject: [PATCH 24/25] Fix? --- .github/workflows/build-wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index e05035f23e8..b3ed735cd9b 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -144,8 +144,8 @@ jobs: dnf -y update && dnf -y install boost-devel boost-program-options cmake hdf5-devel hdf5-mpich-devel make mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && - python -m pip -v install fenics-basix>=0.10.0.dev0 fenics-ffcx>=0.10.0.dev0 fenics-ufl>=2024.3.0.dev0 && - python -m pip -v install mpi4py -i https://pypi.anaconda.org/mpi4py/simple && + pip -v install mpi4py -i https://pypi.anaconda.org/mpi4py/simple && + pip -v install 'fenics-basix==0.10.0.dev0 fenics-ffcx==0.10.0.dev0 fenics-ufl==2024.3.0.dev0' && pip -v install scikit-build-core[pyproject] nanobind && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) -DHDF5_C_INCLUDE_DIR=/usr/include/mpich-$(arch) -DHDF5_C_LIBRARIES=/usr/lib64/mpich/lib && /usr/bin/cmake --build build-dir && From c1dad160722542f5b34c36f7c049d601b60bec31 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Fri, 29 Nov 2024 18:20:15 +0100 Subject: [PATCH 25/25] Fix. --- .github/workflows/build-wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index b3ed735cd9b..c054efe49bf 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -145,7 +145,7 @@ jobs: dnf -y install boost-devel boost-program-options cmake hdf5-devel hdf5-mpich-devel make mpich-devel openblas-devel pugixml-devel spdlog-devel && module load mpi/mpich-$(arch) && pip -v install mpi4py -i https://pypi.anaconda.org/mpi4py/simple && - pip -v install 'fenics-basix==0.10.0.dev0 fenics-ffcx==0.10.0.dev0 fenics-ufl==2024.3.0.dev0' && + pip -v install 'fenics-basix==0.10.0.dev0' 'fenics-ffcx==0.10.0.dev0' 'fenics-ufl==2024.3.0.dev0' && pip -v install scikit-build-core[pyproject] nanobind && /usr/bin/cmake -S dolfinx/cpp -B build-dir -DPython3_EXECUTABLE=$(which python) -DHDF5_C_INCLUDE_DIR=/usr/include/mpich-$(arch) -DHDF5_C_LIBRARIES=/usr/lib64/mpich/lib && /usr/bin/cmake --build build-dir &&