diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/for_maintainers/new_gudhi_version_creation.md | 30 | ||||
-rw-r--r-- | .github/for_maintainers/tests_strategy.md | 10 | ||||
-rw-r--r-- | .github/next_release.md | 22 | ||||
-rw-r--r-- | .github/workflows/pip-build-linux.yml | 17 | ||||
-rw-r--r-- | .github/workflows/pip-build-osx.yml | 3 | ||||
-rw-r--r-- | .github/workflows/pip-build-windows.yml | 44 | ||||
-rw-r--r-- | .github/workflows/pip-packaging-linux.yml | 39 | ||||
-rw-r--r-- | .github/workflows/pip-packaging-osx.yml | 3 | ||||
-rw-r--r-- | .github/workflows/pip-packaging-windows.yml | 42 |
9 files changed, 108 insertions, 102 deletions
diff --git a/.github/for_maintainers/new_gudhi_version_creation.md b/.github/for_maintainers/new_gudhi_version_creation.md index d6c4cdd3..19ef168e 100644 --- a/.github/for_maintainers/new_gudhi_version_creation.md +++ b/.github/for_maintainers/new_gudhi_version_creation.md @@ -26,7 +26,7 @@ md5sum gudhi.@GUDHI_VERSION@.tar.gz > md5sum.txt sha256sum gudhi.@GUDHI_VERSION@.tar.gz > sha256sum.txt sha512sum gudhi.@GUDHI_VERSION@.tar.gz > sha512sum.txt -make -j 4 all && ctest -j 4 --output-on-failure +make && ctest --output-on-failure ``` ***[Check there are no error]*** @@ -61,27 +61,25 @@ cd ../.. tar -czvf gudhi.doc.@GUDHI_VERSION@.tar.gz gudhi.doc.@GUDHI_VERSION@ cd gudhi.@GUDHI_VERSION@/build -make -j 4 all && ctest -j 4 --output-on-failure +make && ctest --output-on-failure ``` ***[Check there are no error]*** ## Upload the documentation -Upload by ftp the content of the directory gudhi.doc.@GUDHI_VERSION@/cpp in a new directory on ForgeLogin@scm.gforge.inria.fr:/home/groups/gudhi/htdocs/doc/@GUDHI_VERSION@ +[GUDHI GitHub pages](https://gudhi.github.io/) is only used as a _"qualification"_ web hosting service. +The _"production"_ web hosting service is https://files.inria.fr (cf. [this doc](https://doc-si.inria.fr/display/SU/Espace+web) +or [this one](https://www.nextinpact.com/article/30325/109058-se-connecter-a-serveur-webdav-sous-linux-macos-ou-windows)). -Upload by ftp the content of the directory gudhi.doc.@GUDHI_VERSION@/python in a new directory on ForgeLogin@scm.gforge.inria.fr:/home/groups/gudhi/htdocs/python/@GUDHI_VERSION@ +Upload the content of the directory gudhi.doc.@GUDHI_VERSION@/cpp in a new directory on gudhi WebDAV in doc/@GUDHI_VERSION@ +Delete the directory doc/latest on gudhi WebDAV. +Copy gudhi WebDAV doc/@GUDHI_VERSION@ as doc/latest (no symbolic link with WebDAV). + +Upload the content of the directory gudhi.doc.@GUDHI_VERSION@/python in a new directory on gudhi WebDAV in python/@GUDHI_VERSION@ +Delete the directory python/latest on gudhi WebDAV. +Copy gudhi WebDAV python/@GUDHI_VERSION@ as python/latest (no symbolic link with WebDAV). -Through ssh, make the **latest** link to your new version of the documentation: -```bash -ssh ForgeLogin@scm.gforge.inria.fr -cd /home/groups/gudhi/htdocs/doc -rm latest -ln -s @GUDHI_VERSION@ latest -cd /home/groups/gudhi/htdocs/python -rm latest -ln -s @GUDHI_VERSION@ latest -``` ## Put a version label on files @@ -128,5 +126,5 @@ docker image on docker hub. ## Mail sending Send version mail to the following lists : -* gudhi-devel@lists.gforge.inria.fr -* gudhi-users@lists.gforge.inria.fr (not for release candidate) +* gudhi-devel@inria.fr +* gudhi-users@inria.fr (not for release candidate) diff --git a/.github/for_maintainers/tests_strategy.md b/.github/for_maintainers/tests_strategy.md index 9c181740..c25acf9b 100644 --- a/.github/for_maintainers/tests_strategy.md +++ b/.github/for_maintainers/tests_strategy.md @@ -39,22 +39,24 @@ docker push gudhi/ci_for_gudhi_wo_cgal:latest ### Windows -The compilations has been seperated by categories to be parallelized, but I don't know why builds are not run in parallel: +The compilations are not parallelized, as installation time (about 30 minutes) is too much compare to +build and tests timings (about 30 minutes). Builds and tests include: * examples (C++) * tests (C++) * utils (C++) * python -Doxygen (C++) is not tested. -(cf. `.appveyor.yml`) +Doxygen (C++) is not generated. +(cf. `azure-pipelines.yml`) C++ third parties installation are done thanks to [vcpkg](https://github.com/microsoft/vcpkg/). In case of installation issue, check in [vcpkg issues](https://github.com/microsoft/vcpkg/issues). ### OSx -The compilations has been seperated by categories to be parallelized: +The compilations are not parallelized, but they should, as installation time (about 4 minutes) is +negligeable compare to build and tests timings (about 30 minutes). Builds and tests include: * examples (C++) * tests (C++) diff --git a/.github/next_release.md b/.github/next_release.md index 26143b0e..f8085513 100644 --- a/.github/next_release.md +++ b/.github/next_release.md @@ -1,19 +1,30 @@ -We are pleased to announce the release 3.5.0 of the GUDHI library. +We are pleased to announce the release 3.X.X of the GUDHI library. As a major new feature, the GUDHI library now offers ... We are now using GitHub to develop the GUDHI library, do not hesitate to [fork the GUDHI project on GitHub](https://github.com/GUDHI/gudhi-devel). From a user point of view, we recommend to download GUDHI user version (gudhi.3.X.X.tar.gz). -Below is a list of changes made since GUDHI 3.4.0: +Below is a list of changes made since GUDHI 3.5.0: -- [Module](link) - - ... +- [Alpha complex](https://gudhi.inria.fr/python/latest/alpha_complex_user.html) + - the python weighted version for alpha complex is now available in any dimension D. + - `alpha_complex = gudhi.AlphaComplex(off_file='/data/points/tore3D_300.off')` is deprecated, please use [read_points_from_off_file](https://gudhi.inria.fr/python/latest/point_cloud.html#gudhi.read_points_from_off_file) instead. + +- [Representations](https://gudhi.inria.fr/python/latest/representations.html#gudhi.representations.vector_methods.BettiCurve) + - A more flexible Betti curve class capable of computing exact curves + +- [Simplex tree](https://gudhi.inria.fr/python/latest/simplex_tree_ref.html) + - `__deepcopy__`, `copy` and copy constructors + +- Installation + - Boost ≥ 1.66.0 is now required (was ≥ 1.56.0). + - Python >= 3.5 and cython >= 0.27 are now required. - [Module](link) - ... - Miscellaneous - - The [list of bugs that were solved since GUDHI-3.4.0](https://github.com/GUDHI/gudhi-devel/issues?q=label%3A3.5.0+is%3Aclosed) is available on GitHub. + - The [list of bugs that were solved since GUDHI-3.5.0](https://github.com/GUDHI/gudhi-devel/issues?q=label%3A3.6.0+is%3Aclosed) is available on GitHub. All modules are distributed under the terms of the MIT license. However, there are still GPL dependencies for many modules. We invite you to check our [license dedicated web page](https://gudhi.inria.fr/licensing/) for further details. @@ -25,3 +36,4 @@ We provide [bibtex entries](https://gudhi.inria.fr/doc/latest/_citation.html) fo Feel free to [contact us](https://gudhi.inria.fr/contact/) in case you have any questions or remarks. For further information about downloading and installing the library ([C++](https://gudhi.inria.fr/doc/latest/installation.html) or [Python](https://gudhi.inria.fr/python/latest/installation.html)), please visit the [GUDHI web site](https://gudhi.inria.fr/). + diff --git a/.github/workflows/pip-build-linux.yml b/.github/workflows/pip-build-linux.yml index 12979a86..a2b4f085 100644 --- a/.github/workflows/pip-build-linux.yml +++ b/.github/workflows/pip-build-linux.yml @@ -12,15 +12,16 @@ jobs: - uses: actions/checkout@v1 with: submodules: true - - name: Build wheel for Python 3.9 + - name: Build wheel for Python 3.10 run: | - mkdir build_39 - cd build_39 - cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=$PYTHON39/bin/python .. + mkdir build_310 + cd build_310 + cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=$PYTHON310/bin/python .. cd src/python - $PYTHON39/bin/python setup.py bdist_wheel + $PYTHON310/bin/python setup.py bdist_wheel auditwheel repair dist/*.whl - - name: Install and test wheel for Python 3.9 + - name: Install and test wheel for Python 3.10 run: | - $PYTHON39/bin/python -m pip install --user pytest build_39/src/python/dist/*.whl - $PYTHON39/bin/python -m pytest src/python/test/test_alpha_complex.py + $PYTHON310/bin/python -m pip install --user pytest build_310/src/python/dist/*.whl + $PYTHON310/bin/python -c "import gudhi; print(gudhi.__version__)" + $PYTHON310/bin/python -m pytest src/python/test/test_alpha_complex.py diff --git a/.github/workflows/pip-build-osx.yml b/.github/workflows/pip-build-osx.yml index 1626bb77..99d515ff 100644 --- a/.github/workflows/pip-build-osx.yml +++ b/.github/workflows/pip-build-osx.yml @@ -8,7 +8,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ['3.9'] + python-version: ['3.10'] name: Build wheels for Python ${{ matrix.python-version }} steps: - uses: actions/checkout@v1 @@ -35,4 +35,5 @@ jobs: - name: Install and test python wheel run: | python -m pip install --user pytest build/src/python/dist/*.whl + python -c "import gudhi; print(gudhi.__version__)" python -m pytest src/python/test/test_alpha_complex.py diff --git a/.github/workflows/pip-build-windows.yml b/.github/workflows/pip-build-windows.yml index 0080f4d5..954b59d5 100644 --- a/.github/workflows/pip-build-windows.yml +++ b/.github/workflows/pip-build-windows.yml @@ -8,7 +8,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ['3.9'] + python-version: ['3.10'] name: Build wheels for Python ${{ matrix.python-version }} steps: - uses: actions/checkout@v1 @@ -20,36 +20,30 @@ jobs: architecture: x64 - name: Install dependencies run: | - cd c:/vcpkg - git fetch --all --tags - git checkout 2020.11-1 - bootstrap-vcpkg.bat set VCPKG_BUILD_TYPE=release - vcpkg install eigen3 mpfr boost-accumulators boost-algorithm boost-bimap boost-callable-traits boost-concept-check boost-container boost-core boost-detail boost-filesystem boost-functional boost-fusion boost-geometry boost-graph boost-heap boost-intrusive boost-iostreams boost-iterator boost-lambda boost-logic boost-math boost-mpl boost-multi-index boost-multiprecision boost-numeric-conversion boost-optional boost-parameter boost-pool boost-preprocessor boost-property-map boost-property-tree boost-ptr-container boost-random boost-range boost-serialization boost-spirit boost-thread boost-tuple boost-type-traits boost-units boost-utility boost-variant --triplet x64-windows + vcpkg install eigen3 cgal --triplet x64-windows vcpkg version - ls C:/vcpkg/installed/x64-windows/bin - Invoke-WebRequest https://github.com/CGAL/cgal/releases/download/v5.2.1/CGAL-5.2.1.zip -OutFile CGAL-5.2.1.zip - Expand-Archive -Path CGAL-5.2.1.zip -DestinationPath . - cd CGAL-5.2.1 - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DGMP_INCLUDE_DIR=c:/vcpkg/installed/x64-windows/include -DGMP_LIBRARIES=c:/vcpkg/installed/x64-windows/bin/mpir.dll . - cd ${{ github.workspace }} - python -m pip install --user -r ext/gudhi-deploy/build-requirements.txt + ls "C:\vcpkg\installed\x64-windows\bin\" + python -m pip install --user -r .\ext\gudhi-deploy\build-requirements.txt python -m pip list - - name: Build python wheel + - name: Build python wheel and install it run: | mkdir build - cd build - cmake -DCGAL_DIR=c:/vcpkg/CGAL-5.2.1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DGMP_INCLUDE_DIR=c:/vcpkg/installed/x64-windows/include -DGMP_LIBRARIES=c:/vcpkg/installed/x64-windows/bin/mpir.dll .. - cd src/python - cp c:/vcpkg/installed/x64-windows/bin/mpfr.dll gudhi/ - cp c:/vcpkg/installed/x64-windows/bin/mpir.dll gudhi/ + cd ".\build\" + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=c:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. + Get-Location + dir + cd ".\src\python\" + cp "C:\vcpkg\installed\x64-windows\bin\mpfr-6.dll" ".\gudhi\" + cp "C:\vcpkg\installed\x64-windows\bin\gmp.dll" ".\gudhi\" python setup.py bdist_wheel ls dist - - name: Install and test python wheel - run: | - cd ${{ github.workspace }} - cd build/src/python/dist/ + cd ".\dist\" Get-ChildItem *.whl | ForEach-Object{python -m pip install --user $_.Name} - cd ${{ github.workspace }} + - name: Test python wheel + run: | + Get-Location + dir python -m pip install --user pytest - python -m pytest src/python/test/test_alpha_complex.py + python -c "import gudhi; print(gudhi.__version__)" + python -m pytest ".\src\python\test\test_alpha_complex.py" diff --git a/.github/workflows/pip-packaging-linux.yml b/.github/workflows/pip-packaging-linux.yml index 0fa2c083..98173ed3 100644 --- a/.github/workflows/pip-packaging-linux.yml +++ b/.github/workflows/pip-packaging-linux.yml @@ -14,18 +14,6 @@ jobs: - uses: actions/checkout@v1 with: submodules: true - - name: Build wheel for Python 3.5 - run: | - mkdir build_35 - cd build_35 - cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=$PYTHON35/bin/python .. - cd src/python - $PYTHON35/bin/python setup.py bdist_wheel - auditwheel repair dist/*.whl - - name: Install and test wheel for Python 3.5 - run: | - $PYTHON35/bin/python -m pip install --user pytest build_35/src/python/dist/*.whl - $PYTHON35/bin/python -m pytest src/python/test/test_alpha_complex.py - name: Build wheel for Python 3.6 run: | mkdir build_36 @@ -37,6 +25,7 @@ jobs: - name: Install and test wheel for Python 3.6 run: | $PYTHON36/bin/python -m pip install --user pytest build_36/src/python/dist/*.whl + $PYTHON36/bin/python -c "import gudhi; print(gudhi.__version__)" $PYTHON36/bin/python -m pytest src/python/test/test_alpha_complex.py - name: Build wheel for Python 3.7 run: | @@ -49,6 +38,7 @@ jobs: - name: Install and test wheel for Python 3.7 run: | $PYTHON37/bin/python -m pip install --user pytest build_37/src/python/dist/*.whl + $PYTHON37/bin/python -c "import gudhi; print(gudhi.__version__)" $PYTHON37/bin/python -m pytest src/python/test/test_alpha_complex.py - name: Build wheel for Python 3.8 run: | @@ -61,6 +51,7 @@ jobs: - name: Install and test wheel for Python 3.8 run: | $PYTHON38/bin/python -m pip install --user pytest build_38/src/python/dist/*.whl + $PYTHON38/bin/python -c "import gudhi; print(gudhi.__version__)" $PYTHON38/bin/python -m pytest src/python/test/test_alpha_complex.py - name: Build wheel for Python 3.9 run: | @@ -73,14 +64,28 @@ jobs: - name: Install and test wheel for Python 3.9 run: | $PYTHON39/bin/python -m pip install --user pytest build_39/src/python/dist/*.whl + $PYTHON39/bin/python -c "import gudhi; print(gudhi.__version__)" $PYTHON39/bin/python -m pytest src/python/test/test_alpha_complex.py + - name: Build wheel for Python 3.10 + run: | + mkdir build_310 + cd build_310 + cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=$PYTHON310/bin/python .. + cd src/python + $PYTHON310/bin/python setup.py bdist_wheel + auditwheel repair dist/*.whl + - name: Install and test wheel for Python 3.10 + run: | + $PYTHON310/bin/python -m pip install --user pytest build_310/src/python/dist/*.whl + $PYTHON310/bin/python -c "import gudhi; print(gudhi.__version__)" + $PYTHON310/bin/python -m pytest src/python/test/test_alpha_complex.py - name: Publish on PyPi env: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | - $PYTHON39/bin/python -m twine upload build_35/src/python/wheelhouse/* - $PYTHON39/bin/python -m twine upload build_36/src/python/wheelhouse/* - $PYTHON39/bin/python -m twine upload build_37/src/python/wheelhouse/* - $PYTHON39/bin/python -m twine upload build_38/src/python/wheelhouse/* - $PYTHON39/bin/python -m twine upload build_39/src/python/wheelhouse/* + $PYTHON36/bin/python -m twine upload build_36/src/python/wheelhouse/* + $PYTHON36/bin/python -m twine upload build_37/src/python/wheelhouse/* + $PYTHON36/bin/python -m twine upload build_38/src/python/wheelhouse/* + $PYTHON36/bin/python -m twine upload build_39/src/python/wheelhouse/* + $PYTHON36/bin/python -m twine upload build_310/src/python/wheelhouse/* diff --git a/.github/workflows/pip-packaging-osx.yml b/.github/workflows/pip-packaging-osx.yml index 120c15b6..7417300a 100644 --- a/.github/workflows/pip-packaging-osx.yml +++ b/.github/workflows/pip-packaging-osx.yml @@ -10,7 +10,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ['3.5', '3.6', '3.7', '3.8', '3.9'] + python-version: ['3.7', '3.8', '3.9', '3.10'] name: Build wheels for Python ${{ matrix.python-version }} steps: - uses: actions/checkout@v1 @@ -37,6 +37,7 @@ jobs: - name: Install and test python wheel run: | python -m pip install --user pytest build/src/python/dist/*.whl + python -c "import gudhi; print(gudhi.__version__)" python -m pytest src/python/test/test_alpha_complex.py - name: Publish on PyPi env: diff --git a/.github/workflows/pip-packaging-windows.yml b/.github/workflows/pip-packaging-windows.yml index f387c5ff..962ae68a 100644 --- a/.github/workflows/pip-packaging-windows.yml +++ b/.github/workflows/pip-packaging-windows.yml @@ -10,7 +10,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ['3.5', '3.6', '3.7', '3.8', '3.9'] + python-version: ['3.6', '3.7', '3.8', '3.9', '3.10'] name: Build wheels for Python ${{ matrix.python-version }} steps: - uses: actions/checkout@v1 @@ -22,40 +22,32 @@ jobs: architecture: x64 - name: Install dependencies run: | - cd c:/vcpkg - git fetch --all --tags - git checkout 2020.11-1 - bootstrap-vcpkg.bat set VCPKG_BUILD_TYPE=release - vcpkg install eigen3 mpfr boost-accumulators boost-algorithm boost-bimap boost-callable-traits boost-concept-check boost-container boost-core boost-detail boost-filesystem boost-functional boost-fusion boost-geometry boost-graph boost-heap boost-intrusive boost-iostreams boost-iterator boost-lambda boost-logic boost-math boost-mpl boost-multi-index boost-multiprecision boost-numeric-conversion boost-optional boost-parameter boost-pool boost-preprocessor boost-property-map boost-property-tree boost-ptr-container boost-random boost-range boost-serialization boost-spirit boost-thread boost-tuple boost-type-traits boost-units boost-utility boost-variant --triplet x64-windows + vcpkg install eigen3 cgal --triplet x64-windows vcpkg version - ls C:/vcpkg/installed/x64-windows/bin - Invoke-WebRequest https://github.com/CGAL/cgal/releases/download/v5.2.1/CGAL-5.2.1.zip -OutFile CGAL-5.2.1.zip - Expand-Archive -Path CGAL-5.2.1.zip -DestinationPath . - cd CGAL-5.2.1 - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DGMP_INCLUDE_DIR=c:/vcpkg/installed/x64-windows/include -DGMP_LIBRARIES=c:/vcpkg/installed/x64-windows/bin/mpir.dll . - cd ${{ github.workspace }} - python -m pip install --user -r ext/gudhi-deploy/build-requirements.txt + ls "C:\vcpkg\installed\x64-windows\bin\" + python -m pip install --user -r .\ext\gudhi-deploy\build-requirements.txt python -m pip install --user twine python -m pip list - - name: Build python wheel + - name: Build python wheel and install it run: | mkdir build - cd build - cmake -DCGAL_DIR=c:/vcpkg/CGAL-5.2.1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DGMP_INCLUDE_DIR=c:/vcpkg/installed/x64-windows/include -DGMP_LIBRARIES=c:/vcpkg/installed/x64-windows/bin/mpir.dll .. - cd src/python - cp c:/vcpkg/installed/x64-windows/bin/mpfr.dll gudhi/ - cp c:/vcpkg/installed/x64-windows/bin/mpir.dll gudhi/ + cd ".\build\" + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=c:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows .. + Get-Location + dir + cd ".\src\python\" + cp "C:\vcpkg\installed\x64-windows\bin\mpfr-6.dll" ".\gudhi\" + cp "C:\vcpkg\installed\x64-windows\bin\gmp.dll" ".\gudhi\" python setup.py bdist_wheel ls dist - - name: Install and test python wheel - run: | - cd ${{ github.workspace }} - cd build/src/python/dist/ + cd ".\dist\" Get-ChildItem *.whl | ForEach-Object{python -m pip install --user $_.Name} - cd ${{ github.workspace }} + - name: Test python wheel + run: | python -m pip install --user pytest - python -m pytest src/python/test/test_alpha_complex.py + python -c "import gudhi; print(gudhi.__version__)" + python -m pytest ".\src\python\test\test_alpha_complex.py" - name: Publish on PyPi env: TWINE_USERNAME: __token__ |