diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/for_maintainers/tests_strategy.md | 90 | ||||
-rw-r--r-- | .github/next_release.md | 22 | ||||
-rw-r--r-- | .github/test-requirements.txt | 2 |
3 files changed, 100 insertions, 14 deletions
diff --git a/.github/for_maintainers/tests_strategy.md b/.github/for_maintainers/tests_strategy.md new file mode 100644 index 00000000..9c181740 --- /dev/null +++ b/.github/for_maintainers/tests_strategy.md @@ -0,0 +1,90 @@ +# Tests strategy + +This document tries to sum up the tests strategy that has been put in place for gudhi continuous integration. + +The aim is to help maintainers to anticipate third parties modifications, updates. + +## Builds + +### Linux + +As all the third parties are already installed (thanks to docker), the compilations has been seperated by 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) + +(cf. `.circleci/config.yml`) + +These build categories are done with and without CGAL, and, with and without Eigen to be sure the users won't be annoyed if a third party is missing. + +With CGAL and with Eigen builds are performed inside the docker image `gudhi/ci_for_gudhi` based on `Dockerfile_for_circleci_image` file. +Without CGAL, and, with or without Eigen builds are performed inside the docker image `gudhi/ci_for_gudhi_wo_cgal` based on `Dockerfile_for_circleci_image_without_cgal` file. + +#### Update docker images + +C++ third parties installation are 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, ... + +```bash +docker build -f Dockerfile_for_circleci_image -t gudhi/ci_for_gudhi:latest . +docker build -f Dockerfile_for_circleci_image_without_cgal -t gudhi/ci_for_gudhi_wo_cgal:latest . +docker login # requires some specific rights on https://hub.docker.com/u/gudhi/repository/docker/gudhi +docker push gudhi/ci_for_gudhi:latest +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: + +* examples (C++) +* tests (C++) +* utils (C++) +* python + +Doxygen (C++) is not tested. +(cf. `.appveyor.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). + +### OSx + +The compilations has been seperated by categories to be parallelized: + +* examples (C++) +* tests (C++) +* utils (C++) +* python +* 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. + +## Pip packaging + +Pip packaging is done in 2 parts: + +* on push and pull requests, the wheels are built (pip package dry-run) +* on releases, the wheels are built and sent to pypi.org (package) + +Only the Linux pip package is based on a docker image (`gudhi/pip_for_gudhi` based on `Dockerfile_for_pip` file) to make it faster. + +### Update docker image + +C++ third parties installation are 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, ... +As `.github/test-requirements` is not installed, no need to rebuild image when this file is modified. + +```bash +docker build -f Dockerfile_for_pip -t gudhi/pip_for_gudhi:latest . +docker login # requires some specific rights on https://hub.docker.com/u/gudhi/repository/docker/gudhi +docker push gudhi/pip_for_gudhi:latest +``` diff --git a/.github/next_release.md b/.github/next_release.md index 5a74966d..26143b0e 100644 --- a/.github/next_release.md +++ b/.github/next_release.md @@ -1,23 +1,19 @@ -We are pleased to announce the release 3.4.0 of the GUDHI library. +We are pleased to announce the release 3.5.0 of the GUDHI library. -As a major new feature, the GUDHI library now offers dD weighted alpha complex, pip and conda packages for Python 3.9. +As a major new feature, the GUDHI library now offers ... -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). +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.X.X.tar.gz). -Below is a list of changes made since GUDHI 3.3.0: +Below is a list of changes made since GUDHI 3.4.0: -- [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. +- [Module](link) + - ... -- 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 - -- [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. +- [Module](link) + - ... - Miscellaneous - - 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. + - The [list of bugs that were solved since GUDHI-3.4.0](https://github.com/GUDHI/gudhi-devel/issues?q=label%3A3.5.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. diff --git a/.github/test-requirements.txt b/.github/test-requirements.txt index 688a2a11..d0803574 100644 --- a/.github/test-requirements.txt +++ b/.github/test-requirements.txt @@ -1,7 +1,7 @@ pytest pytest-cov sphinx -sphinxcontrib-bibtex +sphinxcontrib-bibtex==1.0.0 sphinx-paramlinks matplotlib scipy |