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/
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 in the BRANCH
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
Update Windows Store package version and maxTestedVersion tag
- packaging/windows/msix/manifest.xml
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
Get the tarball from gitlab: https://invent.kde.org/graphics/krita/-/tags
Unpack the tarball
Run build-tools/copy_po.py in the unpacked folder
Package the tarball as .gz and .xz
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 pick 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_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 these 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-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/
Add the release to the org.krita.org.appdata.xml file in MASTER.
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