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
Install transifex-client (‘dnf install transifex-client’ on Fedora)
Run ‘bash ./autobuild/transifex-pull-translations.sh’
Fix lines marked as “TODO” in synfig-studio/src/languages.inc.c (if any)
Update and push translation template to transifex ‘bash ./autobuild/transifex-push-template.sh’
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
Build source tarballs - ‘./autobuild/synfigstudio-release.sh’
Build MacOS package and upload to deploy server.
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