From 7755e6d59ce4763ea70b300dc4a17a4910bc550a Mon Sep 17 00:00:00 2001 From: Vincent Rouvreau Date: Wed, 9 Oct 2024 22:15:07 +0200 Subject: [PATCH 1/3] Build with 2024.10.01 images and test 3.13 for pip linux --- .circleci/config.yml | 30 +++++++++++------------ .github/workflows/pip-build-linux.yml | 28 ++++++++++----------- .github/workflows/pip-packaging-linux.yml | 21 +++++++++++++++- 3 files changed, 49 insertions(+), 30 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1dbd459a57..9bd2f4fc72 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,7 +5,7 @@ jobs: examples: docker: # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_circleci_image - - image: gudhi/ci_for_gudhi:2024.09.01 + - image: gudhi/ci_for_gudhi:2024.10.01 steps: - checkout - run: @@ -24,7 +24,7 @@ jobs: tests: docker: - - image: gudhi/ci_for_gudhi:2024.09.01 + - image: gudhi/ci_for_gudhi:2024.10.01 steps: - checkout - run: @@ -43,7 +43,7 @@ jobs: debug_tests: docker: - - image: gudhi/ci_for_gudhi:2024.09.01 + - image: gudhi/ci_for_gudhi:2024.10.01 steps: - checkout - run: @@ -62,7 +62,7 @@ jobs: utils: docker: - - image: gudhi/ci_for_gudhi:2024.09.01 + - image: gudhi/ci_for_gudhi:2024.10.01 steps: - checkout - run: @@ -81,7 +81,7 @@ jobs: python: docker: - - image: gudhi/ci_for_gudhi:2024.09.01 + - image: gudhi/ci_for_gudhi:2024.10.01 resource_class: large # Delaunay complex requires about 5 Gb of RAM to compile steps: - checkout @@ -117,7 +117,7 @@ jobs: doxygen: docker: - - image: gudhi/doxygen_for_gudhi:2024.06.01 + - image: gudhi/doxygen_for_gudhi:2024.10.01 steps: - checkout - run: @@ -147,7 +147,7 @@ jobs: bibliography: docker: - - image: gudhi/doxygen_for_gudhi:2024.06.01 + - image: gudhi/doxygen_for_gudhi:2024.10.01 steps: - checkout - run: @@ -170,7 +170,7 @@ jobs: examples_without_cgal_eigen: docker: # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_circleci_image_without_cgal - - image: gudhi/ci_for_gudhi_wo_cgal:2024.06.01 + - image: gudhi/ci_for_gudhi_wo_cgal:2024.10.01 steps: - checkout - run: @@ -189,7 +189,7 @@ jobs: tests_without_cgal_eigen: docker: - - image: gudhi/ci_for_gudhi_wo_cgal:2024.06.01 + - image: gudhi/ci_for_gudhi_wo_cgal:2024.10.01 steps: - checkout - run: @@ -208,7 +208,7 @@ jobs: utils_without_cgal_eigen: docker: - - image: gudhi/ci_for_gudhi_wo_cgal:2024.06.01 + - image: gudhi/ci_for_gudhi_wo_cgal:2024.10.01 steps: - checkout - run: @@ -227,7 +227,7 @@ jobs: python_without_cgal_eigen: docker: - - image: gudhi/ci_for_gudhi_wo_cgal:2024.06.01 + - image: gudhi/ci_for_gudhi_wo_cgal:2024.10.01 steps: - checkout - run: @@ -249,7 +249,7 @@ jobs: examples_without_cgal: docker: - - image: gudhi/ci_for_gudhi_wo_cgal:2024.06.01 + - image: gudhi/ci_for_gudhi_wo_cgal:2024.10.01 steps: - checkout - run: @@ -268,7 +268,7 @@ jobs: tests_without_cgal: docker: - - image: gudhi/ci_for_gudhi_wo_cgal:2024.06.01 + - image: gudhi/ci_for_gudhi_wo_cgal:2024.10.01 steps: - checkout - run: @@ -287,7 +287,7 @@ jobs: utils_without_cgal: docker: - - image: gudhi/ci_for_gudhi_wo_cgal:2024.06.01 + - image: gudhi/ci_for_gudhi_wo_cgal:2024.10.01 steps: - checkout - run: @@ -306,7 +306,7 @@ jobs: python_without_cgal: docker: - - image: gudhi/ci_for_gudhi_wo_cgal:2024.06.01 + - image: gudhi/ci_for_gudhi_wo_cgal:2024.10.01 steps: - checkout - run: diff --git a/.github/workflows/pip-build-linux.yml b/.github/workflows/pip-build-linux.yml index 628dd4b6b1..742bd660f0 100644 --- a/.github/workflows/pip-build-linux.yml +++ b/.github/workflows/pip-build-linux.yml @@ -11,31 +11,31 @@ jobs: name: build pip wheel runs-on: ubuntu-latest # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_pip - container: gudhi/pip_for_gudhi:2024.06.02 + container: gudhi/pip_for_gudhi:2024.10.01 steps: # Should use actions/checkout@v4, but requires node20, not available for quay.io/pypa/manylinux2014_x86_64 - uses: actions/checkout@v3 with: submodules: true - - name: Build wheel for Python 3.9 + - name: Build wheel for Python 3.13 run: | - mkdir build_39 - cd build_39 + mkdir build_313 + cd build_313 cmake -DCMAKE_BUILD_TYPE=Release -DPython_EXECUTABLE=$PYTHON39/bin/python .. cd src/python - $PYTHON39/bin/python -m build -n -w + $PYTHON313/bin/python -m build -n -w auditwheel repair dist/*.whl # NumPy 2.X is installed and guarantees ABI compatibility, test it with the minimal numpy version for python version - - name: Install and test wheel for Python 3.9 + - name: Install and test wheel for Python 3.13 run: | - $PYTHON39/bin/python -m pip install --user pytest build_39/src/python/dist/*.whl - $PYTHON39/bin/python -m pip install numpy~=1.19.3 - $PYTHON39/bin/python -c "import gudhi; print(gudhi.__version__)" - $PYTHON39/bin/python -m pytest -v src/python/test/test_alpha_complex.py - $PYTHON39/bin/python -m pytest -v src/python/test/test_delaunay_complex.py - $PYTHON39/bin/python -m pytest -v src/python/test/test_bottleneck_distance.py - $PYTHON39/bin/python -m pytest -v src/python/test/test_cubical_complex.py - $PYTHON39/bin/python -m pytest -v src/python/test/test_rips_complex.py + $PYTHON313/bin/python -m pip install --user pytest build_313/src/python/dist/*.whl + $PYTHON313/bin/python -m pip install numpy~=2.1.2 + $PYTHON313/bin/python -c "import gudhi; print(gudhi.__version__)" + $PYTHON313/bin/python -m pytest -v src/python/test/test_alpha_complex.py + $PYTHON313/bin/python -m pytest -v src/python/test/test_delaunay_complex.py + $PYTHON313/bin/python -m pytest -v src/python/test/test_bottleneck_distance.py + $PYTHON313/bin/python -m pytest -v src/python/test/test_cubical_complex.py + $PYTHON313/bin/python -m pytest -v src/python/test/test_rips_complex.py - name: Upload linux python wheel # Should use actions/upload-artifact@v4, but requires node20, not available for quay.io/pypa/manylinux2014_x86_64 uses: actions/upload-artifact@v3 diff --git a/.github/workflows/pip-packaging-linux.yml b/.github/workflows/pip-packaging-linux.yml index f93d4fbf85..51c20d31a0 100644 --- a/.github/workflows/pip-packaging-linux.yml +++ b/.github/workflows/pip-packaging-linux.yml @@ -9,7 +9,7 @@ jobs: name: build pip wheel runs-on: ubuntu-latest # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_pip - container: gudhi/pip_for_gudhi:2024.06.02 + container: gudhi/pip_for_gudhi:2024.10.01 steps: # Should use actions/checkout@v4, but requires node20, not available for quay.io/pypa/manylinux2014_x86_64 - uses: actions/checkout@v3 @@ -111,6 +111,24 @@ jobs: $PYTHON312/bin/python -m pytest -v src/python/test/test_bottleneck_distance.py $PYTHON312/bin/python -m pytest -v src/python/test/test_cubical_complex.py $PYTHON312/bin/python -m pytest -v src/python/test/test_rips_complex.py + - name: Build wheel for Python 3.13 + run: | + mkdir build_313 + cd build_313 + cmake -DCMAKE_BUILD_TYPE=Release -DPython_EXECUTABLE=$PYTHON313/bin/python .. + cd src/python + $PYTHON313/bin/python -m build -n -w + auditwheel repair dist/*.whl + - name: Install and test wheel for Python 3.13 + run: | + $PYTHON313/bin/python -m pip install --user pytest build_313/src/python/dist/*.whl + $PYTHON313/bin/python -m pip install numpy~=1.26.0 + $PYTHON313/bin/python -c "import gudhi; print(gudhi.__version__)" + $PYTHON313/bin/python -m pytest -v src/python/test/test_alpha_complex.py + $PYTHON313/bin/python -m pytest -v src/python/test/test_delaunay_complex.py + $PYTHON313/bin/python -m pytest -v src/python/test/test_bottleneck_distance.py + $PYTHON313/bin/python -m pytest -v src/python/test/test_cubical_complex.py + $PYTHON313/bin/python -m pytest -v src/python/test/test_rips_complex.py - name: Publish on PyPi env: TWINE_USERNAME: __token__ @@ -121,3 +139,4 @@ jobs: $PYTHON38/bin/python -m twine upload build_310/src/python/wheelhouse/*.whl $PYTHON38/bin/python -m twine upload build_311/src/python/wheelhouse/*.whl $PYTHON38/bin/python -m twine upload build_312/src/python/wheelhouse/*.whl + $PYTHON38/bin/python -m twine upload build_313/src/python/wheelhouse/*.whl From d23a1052c7dd138b2efaf0946ab2f0132a067e31 Mon Sep 17 00:00:00 2001 From: Vincent Rouvreau Date: Thu, 10 Oct 2024 08:41:01 +0200 Subject: [PATCH 2/3] requires docker to be updated with python 3.13 and its requirements --- .github/workflows/pip-build-linux.yml | 6 +++--- .github/workflows/pip-packaging-linux.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pip-build-linux.yml b/.github/workflows/pip-build-linux.yml index 742bd660f0..7026bbdcb0 100644 --- a/.github/workflows/pip-build-linux.yml +++ b/.github/workflows/pip-build-linux.yml @@ -11,7 +11,7 @@ jobs: name: build pip wheel runs-on: ubuntu-latest # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_pip - container: gudhi/pip_for_gudhi:2024.10.01 + container: gudhi/pip_for_gudhi:2024.10.02 steps: # Should use actions/checkout@v4, but requires node20, not available for quay.io/pypa/manylinux2014_x86_64 - uses: actions/checkout@v3 @@ -21,7 +21,7 @@ jobs: run: | mkdir build_313 cd build_313 - cmake -DCMAKE_BUILD_TYPE=Release -DPython_EXECUTABLE=$PYTHON39/bin/python .. + cmake -DCMAKE_BUILD_TYPE=Release -DPython_EXECUTABLE=$PYTHON313/bin/python .. cd src/python $PYTHON313/bin/python -m build -n -w auditwheel repair dist/*.whl @@ -41,4 +41,4 @@ jobs: uses: actions/upload-artifact@v3 with: name: linux python wheel - path: build_39/src/python/wheelhouse/*.whl + path: build_313/src/python/wheelhouse/*.whl diff --git a/.github/workflows/pip-packaging-linux.yml b/.github/workflows/pip-packaging-linux.yml index 51c20d31a0..a649baa038 100644 --- a/.github/workflows/pip-packaging-linux.yml +++ b/.github/workflows/pip-packaging-linux.yml @@ -9,7 +9,7 @@ jobs: name: build pip wheel runs-on: ubuntu-latest # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_pip - container: gudhi/pip_for_gudhi:2024.10.01 + container: gudhi/pip_for_gudhi:2024.10.02 steps: # Should use actions/checkout@v4, but requires node20, not available for quay.io/pypa/manylinux2014_x86_64 - uses: actions/checkout@v3 From e78aecfad61cf8884accde09106fcfb3977b0fd1 Mon Sep 17 00:00:00 2001 From: Vincent Rouvreau Date: Tue, 19 Nov 2024 10:36:03 +0100 Subject: [PATCH 3/3] Rollback pip build linux with python 3.9 --- .github/workflows/pip-build-linux.yml | 30 +++++++++++++-------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/pip-build-linux.yml b/.github/workflows/pip-build-linux.yml index 7026bbdcb0..f7c88d34de 100644 --- a/.github/workflows/pip-build-linux.yml +++ b/.github/workflows/pip-build-linux.yml @@ -17,28 +17,28 @@ jobs: - uses: actions/checkout@v3 with: submodules: true - - name: Build wheel for Python 3.13 + - name: Build wheel for Python 3.9 run: | - mkdir build_313 - cd build_313 - cmake -DCMAKE_BUILD_TYPE=Release -DPython_EXECUTABLE=$PYTHON313/bin/python .. + mkdir build_39 + cd build_39 + cmake -DCMAKE_BUILD_TYPE=Release -DPython_EXECUTABLE=$PYTHON39/bin/python .. cd src/python - $PYTHON313/bin/python -m build -n -w + $PYTHON39/bin/python -m build -n -w auditwheel repair dist/*.whl # NumPy 2.X is installed and guarantees ABI compatibility, test it with the minimal numpy version for python version - - name: Install and test wheel for Python 3.13 + - name: Install and test wheel for Python 3.9 run: | - $PYTHON313/bin/python -m pip install --user pytest build_313/src/python/dist/*.whl - $PYTHON313/bin/python -m pip install numpy~=2.1.2 - $PYTHON313/bin/python -c "import gudhi; print(gudhi.__version__)" - $PYTHON313/bin/python -m pytest -v src/python/test/test_alpha_complex.py - $PYTHON313/bin/python -m pytest -v src/python/test/test_delaunay_complex.py - $PYTHON313/bin/python -m pytest -v src/python/test/test_bottleneck_distance.py - $PYTHON313/bin/python -m pytest -v src/python/test/test_cubical_complex.py - $PYTHON313/bin/python -m pytest -v src/python/test/test_rips_complex.py + $PYTHON39/bin/python -m pip install --user pytest build_39/src/python/dist/*.whl + $PYTHON39/bin/python -m pip install numpy~=1.19.3 + $PYTHON39/bin/python -c "import gudhi; print(gudhi.__version__)" + $PYTHON39/bin/python -m pytest -v src/python/test/test_alpha_complex.py + $PYTHON39/bin/python -m pytest -v src/python/test/test_delaunay_complex.py + $PYTHON39/bin/python -m pytest -v src/python/test/test_bottleneck_distance.py + $PYTHON39/bin/python -m pytest -v src/python/test/test_cubical_complex.py + $PYTHON39/bin/python -m pytest -v src/python/test/test_rips_complex.py - name: Upload linux python wheel # Should use actions/upload-artifact@v4, but requires node20, not available for quay.io/pypa/manylinux2014_x86_64 uses: actions/upload-artifact@v3 with: name: linux python wheel - path: build_313/src/python/wheelhouse/*.whl + path: build_39/src/python/wheelhouse/*.whl