diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/for_maintainers/new_gudhi_version_creation.md | 41 | ||||
-rw-r--r-- | .github/next_release.md | 49 | ||||
-rw-r--r-- | .github/test-requirements.txt | 2 | ||||
-rw-r--r-- | .github/workflows/pip-build-linux.yml | 21 | ||||
-rw-r--r-- | .github/workflows/pip-build-osx.yml | 34 | ||||
-rw-r--r-- | .github/workflows/pip-build-windows.yml | 37 | ||||
-rw-r--r-- | .github/workflows/pip-packaging-linux.yml | 17 | ||||
-rw-r--r-- | .github/workflows/pip-packaging-osx.yml | 2 | ||||
-rw-r--r-- | .github/workflows/pip-packaging-windows.yml | 10 |
9 files changed, 163 insertions, 50 deletions
diff --git a/.github/for_maintainers/new_gudhi_version_creation.md b/.github/for_maintainers/new_gudhi_version_creation.md index 0dcb25fe..4de81b8a 100644 --- a/.github/for_maintainers/new_gudhi_version_creation.md +++ b/.github/for_maintainers/new_gudhi_version_creation.md @@ -88,8 +88,47 @@ ln -s @GUDHI_VERSION@ latest * Tick the *This is a pre-release* check button if this is a release candidate (untick if this is an official version) * Click the *Publish the release* button +## Pip package + +The pip package construction shall be started on release creation, you just have to check [gudhi github actions](https://github.com/GUDHI/gudhi-devel/actions) results. +The version number must be conform to [pep440](https://www.python.org/dev/peps/pep-0440/#pre-releases) + +## Conda package + +You have to fork [conda-forge/gudhi-feedstock](https://github.com/conda-forge/gudhi-feedstock). +The main changes consist into changing in the `recipe/meta.yaml`: +* `{% set version = "@GUDHI_VERSION@" %}` +* The cgal-cpp version number with the last one (you can find it [here](https://anaconda.org/conda-forge/cgal-cpp)) in the `host:` and the `run:` sections + +Create a Pull Request (PR) from this fork. +If you need to update conda tools (conda-build, conda-smithy, ...), add a comment in your PR saying `@conda-forge-admin, please rerender`, it will done automatically (do not forget to `git pull` the changes). + +## Docker image + +You have to modify the `Dockerfile_gudhi_installation` at the root of this repository in order to use the last release, cf. lines: +``` +... +RUN curl -LO "https://github.com/GUDHI/gudhi-devel/releases/download/tags%2Fgudhi-release-@GUDHI_VERSION@/gudhi.@GUDHI_VERSION@.tar.gz" \ +&& tar xf gudhi.@GUDHI_VERSION@.tar.gz \ +&& cd gudhi.@GUDHI_VERSION@ \ +... +``` + +Build and push images to docker hub: +``` +docker build -f Dockerfile_gudhi_installation -t gudhi/latest_gudhi_version:@GUDHI_VERSION@ . +docker run --rm -it gudhi/latest_gudhi_version:@GUDHI_VERSION@ +``` + +***[Check there are no error with utils and python version]*** + +``` +docker tag gudhi/latest_gudhi_version:@GUDHI_VERSION@ gudhi/latest_gudhi_version:latest +docker push gudhi/latest_gudhi_version:latest +docker push gudhi/latest_gudhi_version:@GUDHI_VERSION@ +``` + ## 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) - diff --git a/.github/next_release.md b/.github/next_release.md index 14546066..5a74966d 100644 --- a/.github/next_release.md +++ b/.github/next_release.md @@ -1,47 +1,23 @@ -We are pleased to announce the release 3.3.0 of the GUDHI library. +We are pleased to announce the release 3.4.0 of the GUDHI library. -As a major new feature, the GUDHI library now offers a persistence-based clustering algorithm, weighted Rips complex using DTM -and edge collapse. +As a major new feature, the GUDHI library now offers dD weighted alpha complex, pip and conda packages for Python 3.9. -The GUDHI library is hosted on GitHub, 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.3.0.tar.gz). +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.4.0.tar.gz). -Below is a list of changes made since GUDHI 3.2.0: +Below is a list of changes made since GUDHI 3.3.0: -- [DTM density estimator](https://gudhi.inria.fr/python/latest/point_cloud.html#module-gudhi.point_cloud.dtm) - - Python implementation of a density estimator based on the distance to the empirical measure defined by a point set. +- [Alpha complex](https://gudhi.inria.fr/doc/latest/group__alpha__complex.html) + - the C++ weighted version for alpha complex is now available in any dimension D. -- [DTM Rips complex](https://gudhi.inria.fr/python/latest/rips_complex_user.html#dtm-rips-complex) - - This Python implementation constructs a weighted Rips complex giving larger weights to outliers, - which reduces their impact on the persistence diagram +- Simplex tree [C++](https://gudhi.inria.fr/doc/latest/class_gudhi_1_1_simplex__tree.html) [Python](http://gudhi.gforge.inria.fr/python/latest/simplex_tree_ref.html) + - A new method to reset the filtrations + - A new method to get the boundaries of a simplex -- [Alpha complex](https://gudhi.inria.fr/python/latest/alpha_complex_user.html) - Python interface improvements - - 'fast' and 'exact' computations - - Delaunay complex construction by not setting filtration values - - Use the specific 3d alpha complex automatically to make the computations faster - -- [Clustering](https://gudhi.inria.fr/python/latest/clustering.html) - - Python implementation of [ToMATo](https://doi.org/10.1145/2535927), a persistence-based clustering algorithm - -- [Edge Collapse](https://gudhi.inria.fr/doc/latest/group__edge__collapse.html) of a filtered flag complex - - This C++ implementation reduces a filtration of Vietoris-Rips complex from its graph to another smaller - flag filtration with the same persistence. - -- [Bottleneck distance](https://gudhi.inria.fr/python/latest/bottleneck_distance_user.html) - - Python interface to [hera](https://github.com/grey-narn/hera)'s bottleneck distance - -- Persistence representations - - [Atol](https://gudhi.inria.fr/python/latest/representations.html#gudhi.representations.vector_methods.Atol) - is integrated in finite vectorisation methods. This - [article](https://www.fujitsu.com/global/about/resources/news/press-releases/2020/0316-01.html) talks about - applications using Atol. This module was originally available at - [https://github.com/martinroyer/atol](https://github.com/martinroyer/atol) - - Python interface change: [Wasserstein metrics](https://gudhi.inria.fr/python/latest/representations.html#gudhi.representations.metrics.WassersteinDistance) - is now [hera](https://github.com/grey-narn/hera) by default +- [Subsampling](https://gudhi.inria.fr/doc/latest/group__subsampling.html) + - The C++ function `choose_n_farthest_points()` now takes a distance function instead of a kernel as first argument, users can replace `k` with `k.squared_distance_d_object()` in each call in their code. - Miscellaneous - - The [list of bugs that were solved since GUDHI-3.2.0](https://github.com/GUDHI/gudhi-devel/issues?q=label%3A3.3.0+is%3Aclosed) - is available on GitHub. + - The [list of bugs that were solved since GUDHI-3.3.0](https://github.com/GUDHI/gudhi-devel/issues?q=label%3A3.4.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. @@ -53,4 +29,3 @@ 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/test-requirements.txt b/.github/test-requirements.txt index 98f1007e..688a2a11 100644 --- a/.github/test-requirements.txt +++ b/.github/test-requirements.txt @@ -1,4 +1,5 @@ pytest +pytest-cov sphinx sphinxcontrib-bibtex sphinx-paramlinks @@ -7,6 +8,7 @@ scipy scikit-learn POT tensorflow +tensorflow-addons torch<1.5 pykeops hnswlib diff --git a/.github/workflows/pip-build-linux.yml b/.github/workflows/pip-build-linux.yml new file mode 100644 index 00000000..cf8ddadf --- /dev/null +++ b/.github/workflows/pip-build-linux.yml @@ -0,0 +1,21 @@ +name: pip build linux + +on: [push, pull_request] + +jobs: + build: + name: build pip wheels + runs-on: ubuntu-latest + container: gudhi/pip_for_gudhi + steps: + - uses: actions/checkout@v1 + with: + submodules: true + - name: Build wheels for Python 3.9 + run: | + mkdir build_39 + cd build_39 + cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=$PYTHON39/bin/python .. + cd src/python + $PYTHON39/bin/python setup.py bdist_wheel + auditwheel repair dist/*.whl
\ No newline at end of file diff --git a/.github/workflows/pip-build-osx.yml b/.github/workflows/pip-build-osx.yml new file mode 100644 index 00000000..50b8b09c --- /dev/null +++ b/.github/workflows/pip-build-osx.yml @@ -0,0 +1,34 @@ +name: pip build osx + +on: [push, pull_request] + +jobs: + build: + runs-on: macos-latest + strategy: + max-parallel: 4 + matrix: + python-version: ['3.9'] + name: Build wheels for Python ${{ matrix.python-version }} + steps: + - uses: actions/checkout@v1 + with: + submodules: true + - uses: actions/setup-python@v1 + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + - name: Install dependencies + run: | + brew update || true + brew install boost eigen gmp mpfr cgal || true + python -m pip install --user -r .github/build-requirements.txt + python -m pip install --user twine delocate + - name: Build python wheel + run: | + python --version + mkdir build + cd build + cmake -DCMAKE_BUILD_TYPE=Release -DPython_ADDITIONAL_VERSIONS=3 .. + cd src/python + python setup.py bdist_wheel diff --git a/.github/workflows/pip-build-windows.yml b/.github/workflows/pip-build-windows.yml new file mode 100644 index 00000000..aacbbc52 --- /dev/null +++ b/.github/workflows/pip-build-windows.yml @@ -0,0 +1,37 @@ +name: pip build windows + +on: [push, pull_request] + +jobs: + build: + runs-on: windows-latest + strategy: + max-parallel: 4 + matrix: + python-version: ['3.9'] + name: Build wheels for Python ${{ matrix.python-version }} + steps: + - uses: actions/checkout@v1 + with: + submodules: true + - uses: actions/setup-python@v1 + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + - name: Install dependencies + run: | + vcpkg update + vcpkg upgrade --no-dry-run + type c:/vcpkg/ports/cgal/portfile.cmake + vcpkg install eigen3 cgal --triplet x64-windows + python -m pip install --user -r .github/build-requirements.txt + python -m pip list + - name: Build python wheel + run: | + mkdir build + cd build + cmake -DCMAKE_BUILD_TYPE=Release -DGMP_INCLUDE_DIR="c:/vcpkg/installed/x64-windows/include" -DGMP_LIBRARIES="c:/vcpkg/installed/x64-windows/lib/mpir.lib" -DGMP_LIBRARIES_DIR="c:/vcpkg/installed/x64-windows/lib" -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DPython_ADDITIONAL_VERSIONS=3 .. + cd src/python + cp c:/vcpkg/installed/x64-windows/bin/mpfr.dll gudhi/ + cp c:/vcpkg/installed/x64-windows/bin/mpir.dll gudhi/ + python setup.py bdist_wheel
\ No newline at end of file diff --git a/.github/workflows/pip-packaging-linux.yml b/.github/workflows/pip-packaging-linux.yml index bd524af9..469c3b3b 100644 --- a/.github/workflows/pip-packaging-linux.yml +++ b/.github/workflows/pip-packaging-linux.yml @@ -45,12 +45,21 @@ jobs: cd src/python $PYTHON38/bin/python setup.py bdist_wheel auditwheel repair dist/*.whl + - name: Build wheels for Python 3.9 + run: | + mkdir build_39 + cd build_39 + cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=$PYTHON39/bin/python .. + cd src/python + $PYTHON39/bin/python setup.py bdist_wheel + auditwheel repair dist/*.whl - name: Publish on PyPi env: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | - $PYTHON38/bin/python -m twine upload build_35/src/python/wheelhouse/* - $PYTHON38/bin/python -m twine upload build_36/src/python/wheelhouse/* - $PYTHON38/bin/python -m twine upload build_37/src/python/wheelhouse/* - $PYTHON38/bin/python -m twine upload build_38/src/python/wheelhouse/*
\ No newline at end of file + $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/*
\ No newline at end of file diff --git a/.github/workflows/pip-packaging-osx.yml b/.github/workflows/pip-packaging-osx.yml index c94369ac..46441e65 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'] + python-version: ['3.5', '3.6', '3.7', '3.8', '3.9'] name: Build wheels for Python ${{ matrix.python-version }} steps: - uses: actions/checkout@v1 diff --git a/.github/workflows/pip-packaging-windows.yml b/.github/workflows/pip-packaging-windows.yml index 2e45ad71..3a751486 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'] + python-version: ['3.5', '3.6', '3.7', '3.8', '3.9'] name: Build wheels for Python ${{ matrix.python-version }} steps: - uses: actions/checkout@v1 @@ -20,16 +20,12 @@ jobs: with: python-version: ${{ matrix.python-version }} architecture: x64 - - name: Patch - run: | - (new-object System.Net.WebClient).DownloadFile('https://github.com/microsoft/vcpkg/files/4978792/vcpkg_fixup_pkgconfig.cmake.txt','c:\vcpkg\scripts\cmake\vcpkg_fixup_pkgconfig.cmake') - (new-object System.Net.WebClient).DownloadFile('https://github.com/microsoft/vcpkg/files/4978796/vcpkg_acquire_msys.cmake.txt','c:\vcpkg\scripts\cmake\vcpkg_acquire_msys.cmake') - shell: powershell - name: Install dependencies run: | vcpkg update vcpkg upgrade --no-dry-run - vcpkg install boost-graph boost-serialization boost-date-time boost-system boost-filesystem boost-units boost-thread boost-program-options eigen3 mpfr mpir cgal --triplet x64-windows + type c:/vcpkg/ports/cgal/portfile.cmake + vcpkg install eigen3 cgal --triplet x64-windows python -m pip install --user -r .github/build-requirements.txt python -m pip install --user twine python -m pip list |