Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .github/changelog.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
Release History
===============

[Release 3.12.0rc1](https://github.com/GUDHI/gudhi-devel/releases/tag/tags%2Fgudhi-release-3.12.0rc1)
[Release 3.12.0rc3](https://github.com/GUDHI/gudhi-devel/releases/tag/tags%2Fgudhi-release-3.12.0rc3)
-----------

Release date: February 2026

Below is a list of changes made since GUDHI 3.11.0:

- [Čech complex](https://gudhi.inria.fr/python/3.12.0rc1/delaunay_complex_sklearn_itf_ref.html) `[Python]`
- [Čech complex](https://gudhi.inria.fr/python/3.12.0rc3/delaunay_complex_sklearn_itf_ref.html) `[Python]`
- Čech complex persistence scikit-learn like interface provides 2 new classes:
* [CechPersistence](https://gudhi.inria.fr/python/3.12.0rc1/delaunay_complex_sklearn_itf_ref.html#gudhi.sklearn.CechPersistence) for computing the same persistent homology as the Čech complex, while being significantly smaller, using internally a [DelaunayCechComplex](https://gudhi.inria.fr/python/3.12.0rc1/delaunay_complex_ref.html#gudhi.DelaunayCechComplex).
* [WeightedCechPersistence](https://gudhi.inria.fr/python/3.12.0rc1/delaunay_complex_sklearn_itf_ref.html#gudhi.sklearn.WeightedCechPersistence) for computing the same persistent homology as the Weighted Čech complex, while being significantly smaller, using internally a Weighted version of [AlphaComplex](https://gudhi.inria.fr/python/3.12.0rc1/delaunay_complex_ref.html#gudhi.AlphaComplex).
* [CechPersistence](https://gudhi.inria.fr/python/3.12.0rc3/delaunay_complex_sklearn_itf_ref.html#gudhi.sklearn.CechPersistence) for computing the same persistent homology as the Čech complex, while being significantly smaller, using internally a [DelaunayCechComplex](https://gudhi.inria.fr/python/3.12.0rc3/delaunay_complex_ref.html#gudhi.DelaunayCechComplex).
* [WeightedCechPersistence](https://gudhi.inria.fr/python/3.12.0rc3/delaunay_complex_sklearn_itf_ref.html#gudhi.sklearn.WeightedCechPersistence) for computing the same persistent homology as the Weighted Čech complex, while being significantly smaller, using internally a Weighted version of [AlphaComplex](https://gudhi.inria.fr/python/3.12.0rc3/delaunay_complex_ref.html#gudhi.AlphaComplex).

- [Alpha complex dD](https://gudhi.inria.fr/doc/3.12.0rc1/class_gudhi_1_1alpha__complex_1_1_alpha__complex.html) `[C++]`
- [Alpha complex dD](https://gudhi.inria.fr/doc/3.12.0rc3/class_gudhi_1_1alpha__complex_1_1_alpha__complex.html) `[C++]`
- **API break:** The simplicial complex for the Alpha complex concept has been changed to
`dimension_simplex_range` (that must returns a range of simplices of a given dimension) instead of
`skeleton_simplex_range` (that was returning a range of simplices lower or equal to a given dimension)

- [Simplex_tree](https://gudhi.inria.fr/doc/3.12.0rc1/class_gudhi_1_1_simplex__tree.html) `[C++]`
- [Simplex_tree](https://gudhi.inria.fr/doc/3.12.0rc3/class_gudhi_1_1_simplex__tree.html) `[C++]`
- A new iterator over the simplices of the simplicial complex that match a given dimension

- [Persistence matrix](https://gudhi.inria.fr/doc/3.12.0rc1/group__persistence__matrix.html) `[C++]`
- [Persistence matrix](https://gudhi.inria.fr/doc/3.12.0rc3/group__persistence__matrix.html) `[C++]`
> Matrix API is in a beta version and may change in incompatible ways in the near future.
- A new function to insert a maximal cell using swaps.

- [Representations](https://gudhi.inria.fr/python/3.12.0rc1/representations.html) `[Python]`
- [Representations](https://gudhi.inria.fr/python/3.12.0rc3/representations.html) `[Python]`
- in metrics, `BottleneckDistance` argument `epsilon` is deprecrated and renamed `e` to be consistent with `bottleneck_distance` and `pairwise_persistence_diagram_distances`

- Installation
Expand Down
2 changes: 1 addition & 1 deletion .github/for_maintainers/new_gudhi_version_creation.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ nor [unlabelled closed PRs](https://github.com/GUDHI/gudhi-devel/pulls?q=is%3Apr

## Version file modification

**Edit the file CMakeGUDHIVersion.txt**, and increment major, minor, or patch version number, in function of the version new delivery.
**Edit the file CMakeGUDHIVersion.txt and the file pyproject.toml**, and increment major, minor, or patch version number, in function of the version new delivery.
```bash
# cf. .gitignore - ignore this if it is a fresh clone version
rm -rf data/points/COIL_database/lucky_cat.off_dist data/points/COIL_database/lucky_cat.off_sc.dot data/points/KleinBottle5D.off_dist data/points/KleinBottle5D.off_sc.dot data/points/human.off_dist data/points/human.off_sc.off data/points/human.off_sc.txt src/python/test/__pycache__
Expand Down
14 changes: 7 additions & 7 deletions .github/next_release.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,24 +9,24 @@ From a user point of view, we recommend to download GUDHI user version (gudhi.3.

Below is a list of changes:

- [Čech complex](https://gudhi.inria.fr/python/3.12.0rc1/delaunay_complex_sklearn_itf_ref.html) `[Python]`
- [Čech complex](https://gudhi.inria.fr/python/3.12.0rc3/delaunay_complex_sklearn_itf_ref.html) `[Python]`
- Čech complex persistence scikit-learn like interface provides 2 new classes:
* [CechPersistence](https://gudhi.inria.fr/python/3.12.0rc1/delaunay_complex_sklearn_itf_ref.html#gudhi.sklearn.CechPersistence) for computing the same persistent homology as the Čech complex, while being significantly smaller, using internally a [DelaunayCechComplex](https://gudhi.inria.fr/python/3.12.0rc1/delaunay_complex_ref.html#gudhi.DelaunayCechComplex).
* [WeightedCechPersistence](https://gudhi.inria.fr/python/3.12.0rc1/delaunay_complex_sklearn_itf_ref.html#gudhi.sklearn.WeightedCechPersistence) for computing the same persistent homology as the Weighted Čech complex, while being significantly smaller, using internally a Weighted version of [AlphaComplex](https://gudhi.inria.fr/python/3.12.0rc1/delaunay_complex_ref.html#gudhi.AlphaComplex).
* [CechPersistence](https://gudhi.inria.fr/python/3.12.0rc3/delaunay_complex_sklearn_itf_ref.html#gudhi.sklearn.CechPersistence) for computing the same persistent homology as the Čech complex, while being significantly smaller, using internally a [DelaunayCechComplex](https://gudhi.inria.fr/python/3.12.0rc3/delaunay_complex_ref.html#gudhi.DelaunayCechComplex).
* [WeightedCechPersistence](https://gudhi.inria.fr/python/3.12.0rc3/delaunay_complex_sklearn_itf_ref.html#gudhi.sklearn.WeightedCechPersistence) for computing the same persistent homology as the Weighted Čech complex, while being significantly smaller, using internally a Weighted version of [AlphaComplex](https://gudhi.inria.fr/python/3.12.0rc3/delaunay_complex_ref.html#gudhi.AlphaComplex).

- [Alpha complex dD](https://gudhi.inria.fr/doc/3.12.0rc1/class_gudhi_1_1alpha__complex_1_1_alpha__complex.html) `[C++]`
- [Alpha complex dD](https://gudhi.inria.fr/doc/3.12.0rc3/class_gudhi_1_1alpha__complex_1_1_alpha__complex.html) `[C++]`
- **API break:** The simplicial complex for the Alpha complex concept has been changed to
`dimension_simplex_range` (that must returns a range of simplices of a given dimension) instead of
`skeleton_simplex_range` (that was returning a range of simplices lower or equal to a given dimension)

- [Simplex_tree](https://gudhi.inria.fr/doc/3.12.0rc1/class_gudhi_1_1_simplex__tree.html) `[C++]`
- [Simplex_tree](https://gudhi.inria.fr/doc/3.12.0rc3/class_gudhi_1_1_simplex__tree.html) `[C++]`
- A new iterator over the simplices of the simplicial complex that match a given dimension

- [Persistence matrix](https://gudhi.inria.fr/doc/3.12.0rc1/group__persistence__matrix.html) `[C++]`
- [Persistence matrix](https://gudhi.inria.fr/doc/3.12.0rc3/group__persistence__matrix.html) `[C++]`
> Matrix API is in a beta version and may change in incompatible ways in the near future.
- A new function to insert a maximal cell using swaps.

- [Representations](https://gudhi.inria.fr/python/3.12.0rc1/representations.html) `[Python]`
- [Representations](https://gudhi.inria.fr/python/3.12.0rc3/representations.html) `[Python]`
- in metrics, `BottleneckDistance` argument `epsilon` is deprecrated and renamed `e` to be consistent with `bottleneck_distance` and `pairwise_persistence_diagram_distances`

- Installation
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/pip-build-osx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ jobs:
./scripts/build_osx_universal_gmpfr.sh
# Now the universal libraries are in $PWD/deps-uni/lib
- name: Build python wheel
# Force the use of apple clang - brew clang seems problematic for universal wheel
env:
CXX: /usr/bin/clang++
CC: /usr/bin/clang
run: |
export GMP_LIB_DIR=$PWD/deps-uni/lib
export GMPXX_LIB_DIR=$PWD/deps-uni/lib
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/pip-packaging-osx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ jobs:
./scripts/build_osx_universal_gmpfr.sh
# Now the universal libraries are in $PWD/deps-uni/lib
- name: Build python wheel
# To workaround an issue on Sonoma where mixing ar from brew install
env:
SKBUILD_CMAKE_DEFINE: "CMAKE_AR=/usr/bin/ar"
run: |
export GMP_LIB_DIR=$PWD/deps-uni/lib
export GMPXX_LIB_DIR=$PWD/deps-uni/lib
Expand Down
2 changes: 1 addition & 1 deletion CMakeGUDHIVersion.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
set (GUDHI_MAJOR_VERSION 3)
set (GUDHI_MINOR_VERSION 12)
# 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 0rc2)
set (GUDHI_PATCH_VERSION 0rc3)
set(GUDHI_VERSION ${GUDHI_MAJOR_VERSION}.${GUDHI_MINOR_VERSION}.${GUDHI_PATCH_VERSION})

message(STATUS "GUDHI version : ${GUDHI_VERSION}")
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ wheel.packages = []

[project]
name = "gudhi"
version = "3.12.0a1"
version = "3.12.0rc3"
description = "The Gudhi library is an open source library for Computational Topology and Topological Data Analysis (TDA)."
# readme = "doc/pypi_introduction.inc"
readme = "src/python/doc/pypi_introduction.rst"
requires-python = ">=3.10"
authors = [{ name = "GUDHI Editorial Board <https://gudhi.inria.fr/contact/>" }]
classifiers = [
Expand Down
8 changes: 6 additions & 2 deletions src/cmake/modules/GUDHI_user_version_target.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,12 @@ add_custom_command(TARGET user_version PRE_BUILD COMMAND ${CMAKE_COMMAND} -E
add_custom_command(TARGET user_version PRE_BUILD COMMAND ${CMAKE_COMMAND} -E
copy ${CMAKE_SOURCE_DIR}/src/Doxyfile.in ${GUDHI_USER_VERSION_DIR}/Doxyfile.in)

add_custom_command(TARGET user_version PRE_BUILD COMMAND ${CMAKE_COMMAND} -E
copy ${CMAKE_SOURCE_DIR}/pyproject.toml ${GUDHI_USER_VERSION_DIR}/pyproject.toml)
# readme is not in the same place in developper and user version
file(READ "${CMAKE_SOURCE_DIR}/pyproject.toml" PYPROJECT_TOML)
string(REGEX REPLACE "readme = \"src/python/doc/pypi_introduction.rst\""
"readme = \"python/doc/pypi_introduction.rst\"" MODIFIED_PYPROJECT_TOML "${PYPROJECT_TOML}")
file(WRITE "${GUDHI_USER_VERSION_DIR}/pyproject.toml" "${MODIFIED_PYPROJECT_TOML}")

file(GLOB_RECURSE PYTHON_FILES ${CMAKE_SOURCE_DIR}/${GUDHI_PYTHON_PATH}/*)
foreach(PYTHON_FILE ${PYTHON_FILES})
string(REPLACE "${CMAKE_SOURCE_DIR}/${GUDHI_PYTHON_PATH}/" "" RELATIVE_PYTHON_FILE ${PYTHON_FILE})
Expand Down
Loading