We will consider that all operations will be performed in a brand new clone of the main project:
git clone https://github.com/GUDHI/gudhi-devel.git
cd gudhi-devel
Version file modification
Edit the file CMakeGUDHIVersion.txt, and increment major, minor, or patch version number, in function of the version new delivery.
# 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
Checkin the modifications, build and test the version:
git submodule update --init
rm -rf build; mkdir build; cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCGAL_DIR=/your/path/to/CGAL -DWITH_GUDHI_EXAMPLE=ON -DWITH_GUDHI_BENCHMARK=ON -DUSER_VERSION_DIR=gudhi.3.4.1 -DPython_ADDITIONAL_VERSIONS=3 ..
make user_version
date +"%d-%m-%Y-%T" > gudhi.3.4.1/timestamp.txt
tar -czvf gudhi.3.4.1.tar.gz gudhi.3.4.1
md5sum gudhi.3.4.1.tar.gz > md5sum.txt
sha256sum gudhi.3.4.1.tar.gz > sha256sum.txt
sha512sum gudhi.3.4.1.tar.gz > sha512sum.txt
make -j 4 all && ctest -j 4 --output-on-failure
[Check there are no error]
Create the documentation
mkdir gudhi.doc.3.4.1
make doxygen 2>&1 | tee dox.log && grep warning dox.log
[Check there are no error and the warnings]
cp -R gudhi.3.4.1/doc/html gudhi.doc.3.4.1/cpp
cd gudhi.3.4.1
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 ..
export LC_ALL=en_US.UTF-8 # cf. bug https://github.com/GUDHI/gudhi-devel/issues/111
make sphinx
[Check there are no error]
cp -R python/sphinx ../../gudhi.doc.3.4.1/python
cd ../..
tar -czvf gudhi.doc.3.4.1.tar.gz gudhi.doc.3.4.1
cd gudhi.3.4.1/build
make -j 4 all && ctest -j 4 --output-on-failure
[Check there are no error]
Upload the documentation
Upload by ftp the content of the directory gudhi.doc.3.4.1/cpp in a new directory on Forge.nosp@m.Logi.nosp@m.n@scm.nosp@m..gfo.nosp@m.rge.i.nosp@m.nria.nosp@m..fr:/home/groups/gudhi/htdocs/doc/3.4.1
Upload by ftp the content of the directory gudhi.doc.3.4.1/python in a new directory on Forge.nosp@m.Logi.nosp@m.n@scm.nosp@m..gfo.nosp@m.rge.i.nosp@m.nria.nosp@m..fr:/home/groups/gudhi/htdocs/python/3.4.1
Through ssh, make the latest link to your new version of the documentation:
ssh ForgeLogin@scm.gforge.inria.fr
cd /home/groups/gudhi/htdocs/doc
rm latest
ln -s 3.4.1 latest
cd /home/groups/gudhi/htdocs/python
rm latest
ln -s 3.4.1 latest
Put a version label on files
- Go on page https://github.com/GUDHI/gudhi-devel/releases/new
- Name the tag: tags/gudhi-release-3.4.1
- Name the release GUDHI 3.4.1 release
- Write the release note
- Drag'n drop gudhi.3.4.1.tar.gz, md5sum.txt, 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 results. The version number must be conform to pep440
Conda package
You have to fork conda-forge/gudhi-feedstock. The main changes consist into changing in the recipe/meta.yaml
:
{% set version = "3.4.1" %}
- The cgal-cpp version number with the last one (you can find it here) in the
host:
and the run:
sections
Create a Pull Request (PR) from this fork. If you need to update conda tools (conda-build, conda-smithy, ...), add a comment in your PR saying @conda-forge-admin, please rerender
, it will done automatically (do not forget to git pull
the changes).
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:
...
RUN curl -LO "https://github.com/GUDHI/gudhi-devel/releases/download/tags%2Fgudhi-release-3.4.1/gudhi.3.4.1.tar.gz" \
&& tar xf gudhi.3.4.1.tar.gz \
&& cd gudhi.3.4.1 \
...
Build and push images to docker hub:
docker build -f Dockerfile_gudhi_installation -t gudhi/latest_gudhi_version:3.4.1 .
docker run --rm -it gudhi/latest_gudhi_version:3.4.1
[Check there are no error with utils and python version]
docker tag gudhi/latest_gudhi_version:3.4.1 gudhi/latest_gudhi_version:latest
docker push gudhi/latest_gudhi_version:latest
docker push gudhi/latest_gudhi_version:3.4.1
Mail sending
Send version mail to the following lists :