Releasing
Packaging Snowpack could be done for several reasons, the main being:
- for creating an internal release that an IT department can make available;
- for creating an official release to be published on the Snowpack repository.
Both cases are covered by this documentation, the first one being the simplest one (no need to perform in depth checks of the release). Please note that Linux releases are now prepared with a Gitlab pipeline while Windows and MacOS releases still need to be prepared on the side, uploaded as packages and manually added to releases.
Preparing the assets
Follow the instructions for either internal releases or official releases.
Packaging
On Windows, you have to install the Nullsoft Scriptable Install System (NSIS) in order to prepare the packages.
- Redo
ccmake .
so that it finds the newly compiled libraries - Do
cpack
on Linux and Windows,cpack PackageMaker
on MacOS - Check that the packages work properly:
- on Linux: it should have created a tarball, a deb and an rpm. Open then with gdebi and browse what they contain if you don't want to have to install them
- on MacOS: install the dmg and explore the newly installed application
- on Windows: run the installer and explore the newly installed application, also checking the start menu shortcuts (you can also explore cpack's temporary directory to check if all files have been gathered).
- The packages should contain:
- the libraries (as .dll or .dylib or .so as well as .a) for snowpack and meteoio
- the includes for snowpack and meteoio
- the html documentation for snowpack and meteoio
- the examples for snowpack and meteoio
- Create the documentation only package from the documentation:
- copy or move the doc/ directory as snowpack-X.X.X-doc (X.X.X being the release number)
- remove the .git directories from it:
find snowpack-X.X.X-doc -type d -name ".git" | xargs -i rm -Rf {}
- pack the documentation:
tar -czvf snowpack-X.X.X-doc.tgz snowpack-X.X.X-doc/
- Create the source code package if necessary (on Gitlab, this is done automatically):
- Generate the source package by doing
make package_source
(it is usually easier to do it on Linux)
- Generate the source package by doing
In the end, you should have the following packages:
- for Linux, a binary tarball as well as a deb and an rpm
- for MacOS, a dmg
- for Windows, an exe installer
- a documentation only package
- a source package (optional, not required for official releases that will be partly handled by Gitlab pipelines)
Distribution
For official releases, please do not forget to distribute the release as laid out on the official releases page!
Last update:
June 13, 2022