diff options
-rw-r--r-- | .appveyor.yml | 4 | ||||
-rw-r--r-- | .circleci/config.yml | 11 | ||||
-rw-r--r-- | .github/for_maintainers/new_gudhi_version_creation.md | 27 | ||||
-rw-r--r-- | .github/how_to_use_github_to_contribute_to_gudhi.md | 3 | ||||
-rw-r--r-- | .github/workflows/pip-build-linux.yml | 1 | ||||
-rw-r--r-- | .github/workflows/pip-build-osx.yml | 2 | ||||
-rw-r--r-- | .github/workflows/pip-build-windows.yml | 2 | ||||
-rw-r--r-- | .github/workflows/pip-packaging-linux.yml | 1 | ||||
-rw-r--r-- | .github/workflows/pip-packaging-osx.yml | 2 | ||||
-rw-r--r-- | .github/workflows/pip-packaging-windows.yml | 2 | ||||
-rw-r--r-- | .gitmodules | 3 | ||||
-rw-r--r-- | CMakeGUDHIVersion.txt | 4 | ||||
-rw-r--r-- | Dockerfile_for_circleci_image | 69 | ||||
-rw-r--r-- | Dockerfile_for_circleci_image_without_cgal | 55 | ||||
-rw-r--r-- | Dockerfile_for_pip | 52 | ||||
-rw-r--r-- | Dockerfile_gudhi_installation | 80 | ||||
-rw-r--r-- | azure-pipelines.yml | 6 | ||||
m--------- | ext/gudhi-deploy | 0 |
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 |