summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/for_maintainers/new_gudhi_version_creation.md41
-rw-r--r--.github/next_release.md49
-rw-r--r--.github/test-requirements.txt2
-rw-r--r--.github/workflows/pip-build-linux.yml21
-rw-r--r--.github/workflows/pip-build-osx.yml34
-rw-r--r--.github/workflows/pip-build-windows.yml37
-rw-r--r--.github/workflows/pip-packaging-linux.yml17
-rw-r--r--.github/workflows/pip-packaging-osx.yml2
-rw-r--r--.github/workflows/pip-packaging-windows.yml10
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