Release procedure

Preparation

All release procedures are done from “testing” branch. So, switch to “testing” branch first and then set it to the last commit you want to release from.

Before you start procedure, you have to make sure that current content of “testing” branch builds succesfully on all supported platforms - Windows, Linux and OSX.

Also, make sure that source tarball generation script executes without errors:

$ ./autobuild/synfigstudio-release.sh

Apply latest translations

  1. Install transifex-client (‘dnf install transifex-client’ on Fedora)

  2. Run ‘bash ./autobuild/transifex-pull-translations.sh’

  3. Fix lines marked as “TODO” in synfig-studio/src/languages.inc.c (if any)

  4. Update and push translation template to transifex ‘bash ./autobuild/transifex-push-template.sh’

  5. Commit changes.

Update NEWS files

Summarize all changes in NEWS files.

Update version number

If you are doing (major) stable release, then make sure to edit following files:

  • synfig-core/src/synfig/version.h

  • synfig-core/src/synfig/releases.h

  • synfig-studio/src/gui/app.cpp

Make sure the release number is correct. If it is not, then execute ‘version-bump.sh’ script from the root dir of synfig repository:

$ ./version-bump.sh <VERSION_NUMBER>

i.e.:

$ ./version-bump.sh 1.4.0

This will update all files and commit changes.

Next, execute ‘version-release.sh’ script:

$ ./version-release.sh

It will add neccesary tags and

Build packages

  1. Build source tarballs - ‘./autobuild/synfigstudio-release.sh’

  2. Build MacOS package and upload to deploy server.

  3. Wait when build bot will finish building packages for Linux and Windows.

Write press release

Carefully examine commits history and write press release.

Example - https://www.synfig.org/2018/06/25/synfig-studio-1-3-9-released/

Finish repository changes

Merge branch ‘testing’ into ‘master’:

git checkout master
git merge testing
git push upstream

…And bump version number, so it will be next development release:

$ ./version-bump.sh 1.5.0

Publish packages

Login to deploy server and upload packages to

  • GitHub

  • FossHub

  • SourceForge

Update Paddle products.

Update flatpak and snap packages

flatpak

git clone --recursive https://github.com/flathub/org.synfig.SynfigStudio.git
# edit org.synfig.SynfigStudio.yaml and update packages
flatpak-builder --user --install build-dir org.synfig.SynfigStudio.yaml
# test build locally
flatpak run org.synfig.SynfigStudio
# make pull request with your changes

snap

git clone https://github.com/synfig/synfig.git
cd autobuild/snap-stable/
# edit snapcraft.yaml and update packages
# remote build using launchpad.net servers
snapcraft remote-build
# install snap and test it
snap install --dangerous ./synfigstudio_1.4.0_amd64.snap
# upload to snapcraft store
snapcraft upload --release=candidate synfigstudio_1.4.0_amd64.snap
# after test move it from candidate to release channel
# make pull request with your changes

Publish announcement

  • Publish press release

  • Patreon

  • Notify subscribers via email newsletter

  • VK

  • Udemy

    • Announcement

    • Update required version in description/video/link (if needed)

  • Indiegogo

  • LWN.net