summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.appveyor.yml4
-rw-r--r--.circleci/config.yml11
-rw-r--r--.github/for_maintainers/new_gudhi_version_creation.md27
-rw-r--r--.github/how_to_use_github_to_contribute_to_gudhi.md3
-rw-r--r--.github/workflows/pip-build-linux.yml1
-rw-r--r--.github/workflows/pip-build-osx.yml2
-rw-r--r--.github/workflows/pip-build-windows.yml2
-rw-r--r--.github/workflows/pip-packaging-linux.yml1
-rw-r--r--.github/workflows/pip-packaging-osx.yml2
-rw-r--r--.github/workflows/pip-packaging-windows.yml2
-rw-r--r--.gitmodules3
-rw-r--r--CMakeGUDHIVersion.txt4
-rw-r--r--Dockerfile_for_circleci_image69
-rw-r--r--Dockerfile_for_circleci_image_without_cgal55
-rw-r--r--Dockerfile_for_pip52
-rw-r--r--Dockerfile_gudhi_installation80
-rw-r--r--azure-pipelines.yml6
m---------ext/gudhi-deploy0
18 files changed, 40 insertions, 284 deletions
diff --git a/.appveyor.yml b/.appveyor.yml
index a257debc..9ff8f157 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -48,9 +48,9 @@ install:
- python --version
- pip --version
- python -m pip install --user --upgrade pip
- - python -m pip install --user -r .github/build-requirements.txt
+ - python -m pip install --user -r ext/gudhi-deploy/build-requirements.txt
# No PyKeOps on windows, let's workaround this one.
- - for /F "tokens=*" %%A in (.github/test-requirements.txt) do python -m pip install --user %%A
+ - for /F "tokens=*" %%A in (ext/gudhi-deploy/test-requirements.txt) do python -m pip install --user %%A
build_script:
- mkdir build
diff --git a/.circleci/config.yml b/.circleci/config.yml
index d95b8d36..7fa9ae05 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,7 +1,11 @@
version: 2.0
jobs:
+
+### With all third parties
+
examples:
docker:
+ # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_circleci_image
- image: gudhi/ci_for_gudhi:latest
steps:
- checkout
@@ -95,8 +99,12 @@ jobs:
path: /tmp/doxygen
destination: doxygen
+
+### With all third parties, except CGAL and Eigen
+
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:latest
steps:
- checkout
@@ -154,6 +162,9 @@ jobs:
python3 setup.py build_ext --inplace
ctest --output-on-failure
+
+### With all third parties, except CGAL
+
examples_without_cgal:
docker:
- image: gudhi/ci_for_gudhi_wo_cgal:latest
diff --git a/.github/for_maintainers/new_gudhi_version_creation.md b/.github/for_maintainers/new_gudhi_version_creation.md
index 4de81b8a..aadfae7d 100644
--- a/.github/for_maintainers/new_gudhi_version_creation.md
+++ b/.github/for_maintainers/new_gudhi_version_creation.md
@@ -90,7 +90,8 @@ ln -s @GUDHI_VERSION@ latest
## 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 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
@@ -105,28 +106,20 @@ If you need to update conda tools (conda-build, conda-smithy, ...), add a commen
## 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:
+You have to modify the
+[Dockerfile_gudhi_installation](https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_gudhi_installation)
+in gudhi-deploy 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@ \
+ARG GUDHI_VERSION="3.X.X"
...
```
-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]***
+After pushing the changes the docker image build will be automatically performed for
+[latest_gudhi_version](https://hub.docker.com/repository/docker/gudhi/latest_gudhi_version)
+docker image on docker hub.
-```
-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@
-```
+***[Check there are no error]***
## Mail sending
Send version mail to the following lists :
diff --git a/.github/how_to_use_github_to_contribute_to_gudhi.md b/.github/how_to_use_github_to_contribute_to_gudhi.md
index 747ca39b..738c1ce9 100644
--- a/.github/how_to_use_github_to_contribute_to_gudhi.md
+++ b/.github/how_to_use_github_to_contribute_to_gudhi.md
@@ -33,6 +33,9 @@ Hera, used for Wasserstein distance, is available on an external git repository.
git submodule update --init
```
+[gudhi-deploy](https://github.com/GUDHI/gudhi-deploy) is used for Continuous Integration python
+requirements and will also be downloaded by the above command.
+
## Configuring a remote for a fork
```bash
git remote add upstream https://github.com/GUDHI/gudhi-devel.git
diff --git a/.github/workflows/pip-build-linux.yml b/.github/workflows/pip-build-linux.yml
index cf8ddadf..726ed0d5 100644
--- a/.github/workflows/pip-build-linux.yml
+++ b/.github/workflows/pip-build-linux.yml
@@ -6,6 +6,7 @@ jobs:
build:
name: build pip wheels
runs-on: ubuntu-latest
+ # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_pip
container: gudhi/pip_for_gudhi
steps:
- uses: actions/checkout@v1
diff --git a/.github/workflows/pip-build-osx.yml b/.github/workflows/pip-build-osx.yml
index 50b8b09c..732e26af 100644
--- a/.github/workflows/pip-build-osx.yml
+++ b/.github/workflows/pip-build-osx.yml
@@ -22,7 +22,7 @@ jobs:
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 -r ext/gudhi-deploy/build-requirements.txt
python -m pip install --user twine delocate
- name: Build python wheel
run: |
diff --git a/.github/workflows/pip-build-windows.yml b/.github/workflows/pip-build-windows.yml
index aacbbc52..d07e8c46 100644
--- a/.github/workflows/pip-build-windows.yml
+++ b/.github/workflows/pip-build-windows.yml
@@ -24,7 +24,7 @@ jobs:
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 install --user -r ext/gudhi-deploy/build-requirements.txt
python -m pip list
- name: Build python wheel
run: |
diff --git a/.github/workflows/pip-packaging-linux.yml b/.github/workflows/pip-packaging-linux.yml
index 469c3b3b..95e8f034 100644
--- a/.github/workflows/pip-packaging-linux.yml
+++ b/.github/workflows/pip-packaging-linux.yml
@@ -8,6 +8,7 @@ jobs:
build:
name: build pip wheels
runs-on: ubuntu-latest
+ # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_pip
container: gudhi/pip_for_gudhi
steps:
- uses: actions/checkout@v1
diff --git a/.github/workflows/pip-packaging-osx.yml b/.github/workflows/pip-packaging-osx.yml
index 46441e65..56309b88 100644
--- a/.github/workflows/pip-packaging-osx.yml
+++ b/.github/workflows/pip-packaging-osx.yml
@@ -24,7 +24,7 @@ jobs:
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 -r ext/gudhi-deploy/build-requirements.txt
python -m pip install --user twine delocate
- name: Build python wheel
run: |
diff --git a/.github/workflows/pip-packaging-windows.yml b/.github/workflows/pip-packaging-windows.yml
index 3a751486..a428eaba 100644
--- a/.github/workflows/pip-packaging-windows.yml
+++ b/.github/workflows/pip-packaging-windows.yml
@@ -26,7 +26,7 @@ jobs:
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 install --user -r ext/gudhi-deploy/build-requirements.txt
python -m pip install --user twine
python -m pip list
- name: Build python wheel
diff --git a/.gitmodules b/.gitmodules
index f70c570d..2aa8ad96 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,6 @@
[submodule "ext/hera"]
path = ext/hera
url = https://github.com/grey-narn/hera.git
+[submodule "ext/gudhi-deploy"]
+ path = ext/gudhi-deploy
+ url = https://github.com/GUDHI/gudhi-deploy
diff --git a/CMakeGUDHIVersion.txt b/CMakeGUDHIVersion.txt
index 5b0777a6..db9b243b 100644
--- a/CMakeGUDHIVersion.txt
+++ b/CMakeGUDHIVersion.txt
@@ -1,8 +1,8 @@
# Must be conform to pep440 - https://www.python.org/dev/peps/pep-0440/#pre-releases
set (GUDHI_MAJOR_VERSION 3)
-set (GUDHI_MINOR_VERSION 4)
+set (GUDHI_MINOR_VERSION 5)
# GUDHI_PATCH_VERSION can be 'ZaN' for Alpha release, 'ZbN' for Beta release, 'ZrcN' for release candidate or 'Z' for a final release.
-set (GUDHI_PATCH_VERSION 1)
+set (GUDHI_PATCH_VERSION 0rc1)
set(GUDHI_VERSION ${GUDHI_MAJOR_VERSION}.${GUDHI_MINOR_VERSION}.${GUDHI_PATCH_VERSION})
message(STATUS "GUDHI version : ${GUDHI_VERSION}")
diff --git a/Dockerfile_for_circleci_image b/Dockerfile_for_circleci_image
deleted file mode 100644
index 60c98f66..00000000
--- a/Dockerfile_for_circleci_image
+++ /dev/null
@@ -1,69 +0,0 @@
-FROM ubuntu:20.04
-
-# Update and upgrade distribution
-RUN apt-get update && \
- apt-get upgrade -y
-
-# Tools necessary for installing and configuring Ubuntu
-RUN apt-get install -y \
- apt-utils \
- locales \
- tzdata
-
-# Timezone
-RUN echo "Europe/Paris" | tee /etc/timezone && \
- ln -fs /usr/share/zoneinfo/Europe/Paris /etc/localtime && \
- dpkg-reconfigure -f noninteractive tzdata
-
-# Locale with UTF-8 support
-RUN echo en_US.UTF-8 UTF-8 >> /etc/locale.gen && \
- locale-gen && \
- update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
-ENV LANG en_US.UTF-8
-ENV LANGUAGE en_US:en
-ENV LC_ALL en_US.UTF-8
-
-# Update again
-RUN apt-get update
-
-# Required for Gudhi compilation
-RUN apt-get install -y make \
- git \
- g++ \
- cmake \
- graphviz \
- perl \
- texlive-full \
- biber \
- doxygen \
- libboost-all-dev \
- libeigen3-dev \
- libgmp3-dev \
- libmpfr-dev \
- libtbb-dev \
- locales \
- python3 \
- python3-pip \
- python3-tk \
- python3-grpcio \
- libfreetype6-dev \
- pkg-config \
- curl
-
-RUN curl -LO "https://github.com/CGAL/cgal/releases/download/v5.2/CGAL-5.2.tar.xz" \
- && tar xf CGAL-5.2.tar.xz \
- && mkdir build \
- && cd build \
- && cmake -DCMAKE_BUILD_TYPE=Release ../CGAL-5.2/ \
- && make install \
- && cd .. \
- && rm -rf build CGAL-5.2
-
-ADD .github/build-requirements.txt /
-ADD .github/test-requirements.txt /
-
-RUN pip3 install -r build-requirements.txt
-RUN pip3 --no-cache-dir install -r test-requirements.txt
-
-# apt clean up
-RUN apt-get autoremove && rm -rf /var/lib/apt/lists/*
diff --git a/Dockerfile_for_circleci_image_without_cgal b/Dockerfile_for_circleci_image_without_cgal
deleted file mode 100644
index 7bf96667..00000000
--- a/Dockerfile_for_circleci_image_without_cgal
+++ /dev/null
@@ -1,55 +0,0 @@
-FROM ubuntu:20.04
-
-# Update and upgrade distribution
-RUN apt update && \
- apt upgrade -y
-
-# Tools necessary for installing and configuring Ubuntu
-RUN apt install -y \
- apt-utils \
- locales \
- tzdata
-
-# Timezone
-RUN echo "Europe/Paris" | tee /etc/timezone && \
- ln -fs /usr/share/zoneinfo/Europe/Paris /etc/localtime && \
- dpkg-reconfigure -f noninteractive tzdata
-
-# Locale with UTF-8 support
-RUN echo en_US.UTF-8 UTF-8 >> /etc/locale.gen && \
- locale-gen && \
- update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
-ENV LANG en_US.UTF-8
-ENV LANGUAGE en_US:en
-ENV LC_ALL en_US.UTF-8
-
-# Update again
-RUN apt update
-
-# Required for Gudhi compilation
-RUN apt install -y make \
- git \
- g++ \
- cmake \
- perl \
- libboost-all-dev \
- locales \
- python3 \
- python3-pip \
- python3-tk \
- python3-grpcio \
- libfreetype6-dev \
- pkg-config \
- curl
-
-RUN curl -LO "https://gitlab.com/libeigen/eigen/-/archive/3.3.9/eigen-3.3.9.tar.gz" \
- && tar xf eigen-3.3.9.tar.gz
-
-ADD .github/build-requirements.txt /
-ADD .github/test-requirements.txt /
-
-RUN pip3 install -r build-requirements.txt
-RUN pip3 --no-cache-dir install -r test-requirements.txt
-
-# apt clean up
-RUN apt-get autoremove && rm -rf /var/lib/apt/lists/*
diff --git a/Dockerfile_for_pip b/Dockerfile_for_pip
deleted file mode 100644
index ada39647..00000000
--- a/Dockerfile_for_pip
+++ /dev/null
@@ -1,52 +0,0 @@
-FROM quay.io/pypa/manylinux2014_x86_64
-
-RUN yum -y update && yum -y install \
- wget \
- zlib-devel \
- eigen3-devel \
- mpfr-devel \
- gmp-devel \
- devtoolset-8 \
- && yum clean all
-
-RUN mkdir -p /opt/cmake \
- && wget https://github.com/Kitware/CMake/releases/download/v3.16.2/cmake-3.16.2-Linux-x86_64.sh \
- && sh cmake-3.16.2-Linux-x86_64.sh --skip-license --prefix=/opt/cmake \
- && rm -f cmake-3.16.2-Linux-x86_64.sh
-
-# yum install boost-devel installs boost 1.53 and copy is the only way to install headers only boost
-RUN wget https://dl.bintray.com/boostorg/release/1.73.0/source/boost_1_73_0.tar.gz \
- && tar xf boost_1_73_0.tar.gz \
- && cd boost_1_73_0 \
- && ./bootstrap.sh \
- && ls \
- && cp -r boost /usr/local/include/ \
- && cd .. \
- && rm -rf boost
-
-RUN wget https://github.com/CGAL/cgal/releases/download/v5.2/CGAL-5.2.tar.xz \
- && tar xf CGAL-5.2.tar.xz \
- && mkdir build \
- && cd build \
- && /opt/cmake/bin/cmake -DCMAKE_BUILD_TYPE=Release ../CGAL-5.2/ \
- && make install \
- && cd .. \
- && rm -rf build CGAL-5.2
-
-ADD .github/build-requirements.txt /
-
-RUN /opt/python/cp35-cp35m/bin/pip install -r build-requirements.txt \
- && /opt/python/cp36-cp36m/bin/pip install -r build-requirements.txt\
- && /opt/python/cp37-cp37m/bin/pip install -r build-requirements.txt\
- && /opt/python/cp38-cp38/bin/pip install -r build-requirements.txt\
- && /opt/python/cp39-cp39/bin/pip install -r build-requirements.txt\
- && /opt/python/cp39-cp39/bin/pip install twine
-
-ENV PYTHON35="/opt/python/cp35-cp35m/"
-ENV PYTHON36="/opt/python/cp36-cp36m/"
-ENV PYTHON37="/opt/python/cp37-cp37m/"
-ENV PYTHON38="/opt/python/cp38-cp38/"
-ENV PYTHON39="/opt/python/cp39-cp39/"
-
-ENV PATH="/opt/cmake/bin:${PATH}"
-ENV PATH="/opt/rh/devtoolset-8/root/usr/bin:${PATH}"
diff --git a/Dockerfile_gudhi_installation b/Dockerfile_gudhi_installation
deleted file mode 100644
index b0e46d72..00000000
--- a/Dockerfile_gudhi_installation
+++ /dev/null
@@ -1,80 +0,0 @@
-FROM ubuntu:20.04
-
-# Update and upgrade distribution
-RUN apt-get update && \
- apt-get upgrade -y
-
-# Tools necessary for installing and configuring Ubuntu
-RUN apt-get install -y \
- apt-utils \
- locales \
- tzdata
-
-# Timezone
-RUN echo "Europe/Paris" | tee /etc/timezone && \
- ln -fs /usr/share/zoneinfo/Europe/Paris /etc/localtime && \
- dpkg-reconfigure -f noninteractive tzdata
-
-# Locale with UTF-8 support
-RUN echo en_US.UTF-8 UTF-8 >> /etc/locale.gen && \
- locale-gen && \
- update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
-ENV LANG en_US.UTF-8
-ENV LANGUAGE en_US:en
-ENV LC_ALL en_US.UTF-8
-
-# Update again
-RUN apt-get update
-
-# Required for Gudhi compilation
-RUN apt-get install -y make \
- g++ \
- cmake \
- graphviz \
- perl \
- texlive-bibtex-extra \
- biber \
- libboost-all-dev \
- libeigen3-dev \
- libgmp3-dev \
- libmpfr-dev \
- libtbb-dev \
- libcgal-dev \
- locales \
- python3 \
- python3-pip \
- python3-pytest \
- python3-tk \
- python3-pybind11 \
- libfreetype6-dev \
- pkg-config \
- curl
-
-RUN curl -LO "https://github.com/CGAL/cgal/releases/download/v5.1/CGAL-5.1.tar.xz" \
- && tar xf CGAL-5.1.tar.xz \
- && mkdir build \
- && cd build \
- && cmake -DCMAKE_BUILD_TYPE=Release ../CGAL-5.1/ \
- && make install \
- && cd .. \
- && rm -rf build CGAL-5.1
-
-RUN pip3 install \
- numpy \
- matplotlib \
- scipy \
- Cython \
- POT \
- scikit-learn
-
-# apt clean up
-RUN apt-get autoremove && rm -rf /var/lib/apt/lists/*
-
-RUN curl -LO "https://github.com/GUDHI/gudhi-devel/releases/download/tags%2Fgudhi-release-3.3.0/gudhi.3.3.0.tar.gz" \
-&& tar xf gudhi.3.3.0.tar.gz \
-&& cd gudhi.3.3.0 \
-&& mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DWITH_GUDHI_PYTHON=OFF -DPython_ADDITIONAL_VERSIONS=3 .. \
-&& make all test install \
-&& cmake -DWITH_GUDHI_PYTHON=ON . \
-&& cd python \
-&& python3 setup.py install
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 8e88cab5..6c194f2a 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -19,15 +19,15 @@ jobs:
- bash: |
source activate gudhi_build_env
+ git submodule update --init
sudo conda install --yes --quiet --name gudhi_build_env python=$(pythonVersion)
- python -m pip install --user -r .github/build-requirements.txt
- python -m pip install --user -r .github/test-requirements.txt
+ python -m pip install --user -r ext/gudhi-deploy/build-requirements.txt
+ python -m pip install --user -r ext/gudhi-deploy/test-requirements.txt
brew update || true
brew install graphviz doxygen boost eigen gmp mpfr tbb cgal || true
displayName: 'Install build dependencies'
- bash: |
source activate gudhi_build_env
- git submodule update --init
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE:STRING=$(cmakeBuildType) -DWITH_GUDHI_TEST=ON -DWITH_GUDHI_UTILITIES=ON -DWITH_GUDHI_PYTHON=ON -DPython_ADDITIONAL_VERSIONS=3 ..
diff --git a/ext/gudhi-deploy b/ext/gudhi-deploy
new file mode 160000
+Subproject f71c3749c4d57afcb9747fe99a8cfbb8aa960b6