Making a release¶
Before the release¶
Coordinate with #kde-promo
Notify translators of string freeze!
Verify that the release notes page is done, like https://krita.org/en/krita-4-2-release-notes/
Verify that all 8 (eight!) dependency builds are up to date. Remember that these builds are built from master, not from the stable branch.
https://binary-factory.kde.org/job/Krita_Android_arm64-v8a_Dependency_Build/
https://binary-factory.kde.org/job/Krita_Android_armeabi-v7a_Dependency_Build/
https://binary-factory.kde.org/job/Krita_Android_x86_64_Dependency_Build/
https://binary-factory.kde.org/job/Krita_Android_x86_Dependency_Build/
https://binary-factory.kde.org/job/Krita_Nightly_Appimage_Dependency_Build/
https://binary-factory.kde.org/job/Krita_Nightly_MacOS_Dependency_Build/
https://binary-factory.kde.org/job/Krita_Nightly_Windows_Dependency_Build/
https://binary-factory.kde.org/job/Krita_Release_Windows32_Dependency_Build/
Compare the build date and included commits to the commit in 3rdparty directory in master:
git fetch origin && git log origin/master 3rdparty
Update version in source code¶
!! REMOVE THE SURVEY LINK !! (or, if this is a beta, make a survey and update the survey link)
update the version of krita.xmlgui
update the CMakeLists.txt version
update the snapcraft.yaml file
update the appstream screenshots
update org.kde.krita.appdata.xml ‘s release tag
update create_tarball’s config.ini
update download_release_artifacts.sh
update Android version (keep in mind that all Krita releases on Android are marked as Beta at the moment):
packaging/android/apk/AndroidManifest.xml
packaging/android/apk/build.gradle
When releasing beta-version double-check that you updated to “beta1”, not just plain “beta”. Only “alpha” versions can be made without a number, because they are built nightly.
Update versions in the stable branch to avoid XMLGUI conflicts¶
stable branch is always marked as “alpha” (without a number in the end)
update the version of krita.xmlgui; it should be $(( $VERSION_IN_RELEASE_BRANCH + 1 ))
update the CMakeLists.txt version
update org.kde.krita.appdata.xml ‘s release tag
packaging/android/apk/AndroidManifest.xml
Create the tarball¶
Create and push the tag¶
Set the tag:
git tag -a v4.2.9-beta1 -m "Krita 4.2.9 Beta1"
Push the tag:
git push origin refs/tags/v4.2.9-beta1:refs/tags/v4.2.9-beta1
If you need to change the tag position (not recommended):
# remove the previous tag git push origin :refs/tags/v4.2.9-beta1 # make a new tag locally git tag -a v4.2.9-beta1 -m "Krita 4.2.9 Beta1" # push the new tag git push origin refs/tags/v4.2.9-beta1:refs/tags/v4.2.9-beta1 # all Krita developers now have to refetch tags to # get the updated tag position git fetch origin --tags
Create the tarball¶
Go into the ./packaging/ folder, check that the version in ‘config.ini’ file reflects the right tag and version number. It should look like that:
[krita] gitModule = yes gitTag = v4.2.9 category = graphics mainmodule = branches/stable l10nmodule = krita version = 4.2.9 translations= yes docs = no kde_release = no
Create the tarball:
./create_tarball_kf5.rb -n -a krita
Check that created archive has ‘po’ folder and it actually has translations
Sign both tarballs:
gpg --output krita-4.2.9-beta1.tar.gz.sig --detach-sign krita-4.2.9-beta1.tar.gz gpg --output krita-4.2.9-beta1.tar.xz.sig --detach-sign krita-4.2.9-beta1.tar.xz
Upload tarballs to files.kde.org, where builders can fpick them up:
Make Windows, Linux, OSX and Android packages¶
Request four release builds on binary-factory.kde.org, after starting each build,go to “Console Output” section, click on “Input Requested” and choose a tarball version to build.
https://binary-factory.kde.org/job/Krita_Release_Windows32_Build/
https://binary-factory.kde.org/job/Krita_Release_Windows64_Build/
https://binary-factory.kde.org/job/Krita_Release_Appimage_Build/
https://binary-factory.kde.org/job/Krita_Release_MacOS_Build/
https://binary-factory.kde.org/job/Krita_Release_Android_arm64-v8a_Build/
https://binary-factory.kde.org/job/Krita_Release_Android_armeabi-v7a_Build/
https://binary-factory.kde.org/job/Krita_Release_Android_x86_64_Build/
https://binary-factory.kde.org/job/Krita_Release_Android_x86_Build/
Download all built artifacts using download_release_artifacts.sh script. Open the script and modify KRITA_VERSION variable to correspond to the version string.
For each build check:
Krita starts
Localization works
Python plugins are available
Basic painting and most recently fixed bugs are fixed
Sign both AppImages:
gpg --detach-sign --output krita-4.2.9-beta-x86_64.appimage.sig krita-4.2.9-beta-x86_64.appimage gpg --detach-sign --output gmic_krita_qt-x86_64.appimage.sig gmic_krita_qt-x86_64.appimage
Sign four Android packages (or send them to Boud for signing)
krita-arm64-4.2.9-beta1-unsigned.apk
krita-arm32-4.2.9-beta1-unsigned.apk
krita-x86-4.2.9-beta1-unsigned.apk
krita-x86_64-4.2.9-beta1-unsigned.apk
After signing, remove “-unsigned” suffix, so the signed packages would look like that:
krita-arm64-4.2.9-beta1.apk
krita-arm32-4.2.9-beta1.apk
krita-x86-4.2.9-beta1.apk
krita-x86_64-4.2.9-beta1.apk
Now you should have 19(!) files in your release folder
Generate an md5sum.txt file for all of them:
md5sum ./* > md5sum.txt
Upload 20(!) files to download.kde.org (or ask sysadmins to do that using this manual ftp://upload.kde.org/README):
krita-4.2.9-beta1.tar.gz
krita-4.2.9-beta1.tar.gz.sig
krita-4.2.9-beta1.tar.xz
krita-4.2.9-beta1.tar.xz.sig
gmic_krita_qt-x86_64.appimage
gmic_krita_qt-x86_64.appimage.sig
krita-4.2.9-beta1-x86_64.appimage
krita-4.2.9-beta1-x86_64.appimage.sig
krita-x64-4.2.9-beta1-dbg.zip
krita-x64-4.2.9-beta1-setup.exe
krita-x64-4.2.9-beta1.zip
krita-x86-4.2.9-beta1-dbg.zip
krita-x86-4.2.9-beta1-setup.exe
krita-x86-4.2.9-beta1.zip
krita-4.2.9-beta1.dmg
krita-arm64-4.2.9-beta1.apk
krita-arm32-4.2.9-beta1.apk
krita-x86-4.2.9-beta1.apk
krita-x86_64-4.2.9-beta1.apk
md5sum.txt
Template ticket for sysadmins:
Hi, sysadmins! Could you please do the final steps for publishing Krita release? There are two tasks: 1) Upload release artifacts (20 files) to download.kde.org: * Source link: https://files.kde.org/krita/release-4.2.9-beta1/ * Destination link: https://download.kde.org/unstable/krita/4.2.9-beta1/ * There should be 16 files including `md5sum.txt` 2) Add `Krita 4.2.9 Beta1` bugzilla version
Now the folder on download.kde.org should have 20(!) files. Check if you missed something (and you surely did! :) ).
Release coordination¶
Mail KDE release coordination <release-team@kde.org>
Send release notes for future Krita versions to news@publisher.ch
Create bugzilla version: https://bugs.kde.org/editversions.cgi?product=krita Or file a sysadmin ticket for that.
[only for a major release] Warn kde sysadmins that we’re going to release and that krita.org is going to take load. Just file a ticket on phabricator.
PR and Communications¶
Pre-release¶
Update Kiki page
Update press pack and page
Verify if manual pages are updated, if not annoy @woltherav and add undocumented features to Krita: Manual
Notify people that they can start making release demonstrations.
Release¶
Update download page
Publish the announcement and release notes
Add release links to Release History section of the site: https://krita.org/en/about/krita-releases-overview/
Post-release¶
tumblr (wolthera)
BlenderArtists (wolthera)
deviantart (wolthera)
VK (dmitry)
blendernation (boud)
twitter (boud)
facebook (boud)
3dpro (boud)
reddit (raghukamath)
Notes¶
Additional info can be found here: https://phabricator.kde.org/T10762