diff options
Diffstat (limited to '.github/for_maintainers')
-rw-r--r-- | .github/for_maintainers/new_gudhi_version_creation.md | 69 | ||||
-rw-r--r-- | .github/for_maintainers/next_release_template.md | 4 | ||||
-rw-r--r-- | .github/for_maintainers/tests_strategy.md | 39 |
3 files changed, 59 insertions, 53 deletions
diff --git a/.github/for_maintainers/new_gudhi_version_creation.md b/.github/for_maintainers/new_gudhi_version_creation.md index 4de81b8a..9634adae 100644 --- a/.github/for_maintainers/new_gudhi_version_creation.md +++ b/.github/for_maintainers/new_gudhi_version_creation.md @@ -22,11 +22,10 @@ cmake -DCMAKE_BUILD_TYPE=Release -DCGAL_DIR=/your/path/to/CGAL -DWITH_GUDHI_EXAM make user_version date +"%d-%m-%Y-%T" > gudhi.@GUDHI_VERSION@/timestamp.txt tar -czvf gudhi.@GUDHI_VERSION@.tar.gz gudhi.@GUDHI_VERSION@ -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]*** @@ -34,16 +33,21 @@ make -j 4 all && ctest -j 4 --output-on-failure ## Create the documentation ```bash mkdir gudhi.doc.@GUDHI_VERSION@ -make doxygen 2>&1 | tee dox.log && grep warning dox.log ``` ***[Check there are no error and the warnings]*** ```bash -cp -R gudhi.@GUDHI_VERSION@/doc/html gudhi.doc.@GUDHI_VERSION@/cpp cd gudhi.@GUDHI_VERSION@ rm -rf build; mkdir build; cd build cmake -DCMAKE_BUILD_TYPE=Release -DCGAL_DIR=/your/path/to/CGAL -DWITH_GUDHI_EXAMPLE=ON -DPython_ADDITIONAL_VERSIONS=3 .. +make doxygen 2>&1 | tee dox.log && grep warning dox.log +``` + +***[Check there are no error and the warnings]*** + +```bash +cp -R html ../../gudhi.doc.@GUDHI_VERSION@/cpp export LC_ALL=en_US.UTF-8 # cf. bug https://github.com/GUDHI/gudhi-devel/issues/111 make sphinx ``` @@ -56,27 +60,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 @@ -84,13 +86,14 @@ ln -s @GUDHI_VERSION@ latest * Name the tag: tags/gudhi-release-@GUDHI_VERSION@ * Name the release GUDHI @GUDHI_VERSION@ release * Write the release note -* Drag'n drop *gudhi.@GUDHI_VERSION@.tar.gz*, *md5sum.txt*, *sha256sum.txt*, *sha512sum.txt* files +* Drag'n drop *gudhi.@GUDHI_VERSION@.tar.gz*, *sha256sum.txt*, *sha512sum.txt* files * 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 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,30 +108,22 @@ 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 : -* 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/next_release_template.md b/.github/for_maintainers/next_release_template.md index a2805a55..0b6dde63 100644 --- a/.github/for_maintainers/next_release_template.md +++ b/.github/for_maintainers/next_release_template.md @@ -26,3 +26,7 @@ Feel free to [contact us](https://gudhi.inria.fr/contact/) in case you have any 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/). +## Contributors + +- ... +- ...
\ No newline at end of file diff --git a/.github/for_maintainers/tests_strategy.md b/.github/for_maintainers/tests_strategy.md index 9c181740..d0ae76ef 100644 --- a/.github/for_maintainers/tests_strategy.md +++ b/.github/for_maintainers/tests_strategy.md @@ -4,17 +4,22 @@ This document tries to sum up the tests strategy that has been put in place for The aim is to help maintainers to anticipate third parties modifications, updates. +## CMake options + +[CMake GUDHI options](../../src/cmake/modules/GUDHI_options.cmake) allows to activate/deactivate what should be built and tested. +Note the special option `WITH_GUDHI_THIRD_PARTY` that, when set to `OFF`, accelerates doxygen documentation generation or `user_version` for instance. + ## Builds ### Linux -As all the third parties are already installed (thanks to docker), the compilations has been seperated by categories to be parallelized: +As all the third parties are already installed (thanks to docker), the compilations have been separated in categories to be parallelized: * examples (C++) * tests (C++) * utils (C++) * doxygen (C++ documentation that is available in the artefacts) -* python (including documentation and code coverage that are available in the artefacts) +* python (including documentation and code coverage that are available in the artefacts; here the WITH_GUDHI_REMOTE_TEST option is enabled which adds datasets fetching test) (cf. `.circleci/config.yml`) @@ -25,9 +30,9 @@ Without CGAL, and, with or without Eigen builds are performed inside the docker #### Update docker images -C++ third parties installation are done thanks to apt on Ubuntu latest LTS. +C++ third parties installation is done thanks to apt on Ubuntu latest LTS. -Docker images need to be rebuild and push each time `.github/build-requirements`, `.github/test-requirements`, when a new third party is added, when a new CGAL version improves gudhi performances, ... +Docker images need to be rebuilt and pushed each time `.github/build-requirements`, `.github/test-requirements`, when a new third party is added, when a new CGAL version improves gudhi performances, ... ```bash docker build -f Dockerfile_for_circleci_image -t gudhi/ci_for_gudhi:latest . @@ -39,33 +44,35 @@ 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 compared to +build and tests timings (about 30 minutes). Builds and tests include: * examples (C++) * tests (C++) * utils (C++) -* python +* python (here the WITH_GUDHI_REMOTE_TEST option is enabled which adds datasets fetching test) -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). +C++ third parties installation is done thanks to [vcpkg](https://github.com/microsoft/vcpkg/). +In case of an 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 +negligible compared to build and tests timings (about 30 minutes). Builds and tests include: * examples (C++) * tests (C++) * utils (C++) -* python +* python (here the WITH_GUDHI_REMOTE_TEST option is enabled which adds datasets fetching test) * Doxygen (C++) (cf. `azure-pipelines.yml`) -C++ third parties installation are done thanks to [brew](https://formulae.brew.sh/formula/). -In case of installation issue, check in formula issues. +C++ third parties installation is done thanks to [brew](https://formulae.brew.sh/formula/). +In case of an installation issue, check in formula issues. ## Pip packaging @@ -78,9 +85,9 @@ Only the Linux pip package is based on a docker image (`gudhi/pip_for_gudhi` bas ### Update docker image -C++ third parties installation are done thanks to yum on an image based on `quay.io/pypa/manylinux2014_x86_64`. +C++ third parties installation is done thanks to yum on an image based on `quay.io/pypa/manylinux2014_x86_64`. -Docker image need to be rebuild and push each time `.github/build-requirements`, when a new third party is added, when a new CGAL version improves gudhi performances, ... +Docker image needs to be rebuilt and pushed each time `.github/build-requirements`, when a new third party is added, when a new CGAL version improves gudhi performances, ... As `.github/test-requirements` is not installed, no need to rebuild image when this file is modified. ```bash |