Skip to content


Packaging Snowpack could be done for several reasons, the main being:

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.


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)

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)


For official releases, please do not forget to distribute the release as laid out on the official releases page!

Last update: June 13, 2022