- 使用指南
- 数字绘画基础知识
- 参考手册
- 实例教程
- 常见问题解答
- 参与者手册
- 扩展包和第三方教程
- 其他
- 显示设置
- 日志查看器
- 数位板设置
- Automated Krita builds on CI matrix
- Brush GUI Design with Lager
- Building Krita from Source
- CMake Settings for Developers
- Enable static analyzer
- How to patch Qt
- Introduction to Hacking Krita
- The Krita Palette format KPL
- Krita SVG Extensions
- Modern C++ usage guidelines for the Krita codebase
- Developing Features
- Optimize Image Processing with XSIMD
- Optimizing tips and tools for Krita
- Google Summer of Code
- Advanced Merge Request Guide
- Python Developer Tools
- Introduction to Quality Assurance
- Making a release
- Reporting Bugs
- Strokes queue
- Testing Strategy
- Triaging Bugs
- Unittests in Krita
- 矢量图层
- 常规设置
- 颜料图层
- 图层组
- 克隆图层
- 文件图层
- 填充图层
- 滤镜图层
- 笔刷引擎
- 透明度蒙版
- 滤镜笔刷引擎
- 滤镜蒙版
- 裁剪工具
- 移动工具
- 变形工具
- 变形笔刷引擎
- 变形蒙版
- 网格与参考线
- 工作区
- 笔刷预设
- 色板
- 键盘快捷键
- 设置菜单
- 性能设置
- 笔尖
- 不透明度和流量
- 常用笔刷选项
- 多路笔刷工具
- 手绘笔刷工具
- 直线工具
- 曲线工具
- 辅助尺工具
- 图层
- 矩形选区工具
- 椭圆选区工具
- 多边形选区工具
- 手绘轮廓选区工具
- 相似颜色选区工具
- 相连颜色选区工具
- 曲线选区工具
- 磁性选区工具
- 形状选择工具
- 锚点编辑工具
- 工具菜单
- 动画时间轴
- 绘图纸外观
- 动画曲线
- 分镜头脚本
- 颜色
- 色域蒙版
- 美术拾色器
- 多功能拾色器
- 智能填色蒙版工具
- *.gih
- 像素笔刷引擎
- *.kra
- SeExpr
- SeExpr 脚本
- 渐变
- 颜色涂抹笔刷引擎
- 纹理
- 拾色器工具
- LUT 色彩管理
- 小型拾色器
- 有损和无损图像压缩
- *.bmp
- *.csv
- *.exr
- *.gbr
- *.gif
- *.heif 和 *.avif
- *.jpg
- *.jxl
- *.kpl
- *.ora
- .pbm、.pgm 和 *.ppm
- *.png
- *.psd
- *.svg
- *.tiff
- *.webp
- 数学运算
- 变暗
- HSX
- 变亮
- 颜色混合
- 负片
- 其他
- 二元逻辑
- 取模运算
- 二次方
- 鬃毛笔刷引擎
- 粉笔笔刷引擎
- 克隆笔刷引擎
- 曲线笔刷引擎
- 力学笔刷引擎
- 网格笔刷引擎
- 排线笔刷引擎
- MyPaint 笔刷引擎
- 粒子轨迹笔刷引擎
- 快速笔刷引擎
- 形状笔刷引擎
- 草图笔刷引擎
- 喷雾笔刷引擎
- 切线空间法线笔刷引擎
- 笔刷选项
- 锁定笔刷选项
- 蒙版笔刷
- 传感器
- 添加形状
- 动画
- 矢量图形排列
- 笔刷预设历史
- 色彩通道
- 颜色滑动条
- 图层显示方案
- 过渡色调混合器
- 直方图
- 导航器
- 图案
- 录像工具
- 参考图像
- 形状属性
- 图像版本快照
- 量化拾色器
- 操作流程
- 触摸屏辅助按钮
- 撤销历史
- 矢量图形库
- 宽色域拾色器
- 调整颜色/图像
- 艺术效果
- 模糊
- 边缘检测
- 浮雕
- 图像增强
- 映射
- 其他
- 小波分解
- 图层样式
- 选区蒙版
- 拆分透明度通道到蒙版
- 编辑菜单
- 文件菜单
- 帮助菜单
- 图像菜单
- 图层菜单
- 选择菜单
- 视图菜单
- 窗口菜单
- 作者档案设置
- 画布快捷键设置
- 隐藏面板模式设置
- 色彩管理设置
- 拾色器设置
- G’Mic 设置
- 弹出面板设置
- Python 插件管理器
- 笔尖
- 笔刷预设
- 图案
- 文字工具
- 渐变编辑工具
- 图案编辑工具
- 西文书法工具
- 矩形工具
- 椭圆工具
- 多边形工具
- 折线工具
- 手绘路径工具
- 力学笔刷工具
- 填充工具
- 闭合填充工具/圈涂
- 渐变工具
- 智能补丁工具
- 参考图像工具
- 测量工具
- 缩放工具
- 平移工具
- Building Krita with Docker on Linux
- Building krita on host Linux system (unsupported)
- Building Krita for Android
- Working on Krita Dependencies
- 渐变
- 多维网格
- 图案
- 网点
- 单纯形法噪点
Making a release
- f.. meta::
- description:
Releasing Krita
Making a release
Krita releases and update channels
At any point of time Krita users have access to four(!) versions of Krita. We calls these versions “channels”, since they are “channels through which the users can get updates of the software”.
Krita Stable is the latest stable version of Krita that has been released to the users
the user can manually download it from the official side
packages are stored at the “stable” prefix on dko: https://download.kde.org/stable/krita/
AppImage updater will suggest an update only from one stable version to another, e.g. “Krita 5.2.2 -> Krita 5.2.3” or “Krita 5.2.2 -> Krita 5.3.0”
AppImage updater uses link at address: https://download.kde.org/stable/krita/updates/Krita-Stable-x86_64.appimage.zsync
Krita Beta is the latest alpha or beta version of Krita
these packages are supposed to be used for pre-release testing
we usually make beta-release announcements with direct links to these packages
packages are stored at the “unstable” prefix on dko: https://download.kde.org/unstable/krita/
AppImage updater will suggest updates if
the next beta or release candidate version has been released;
the final release is published (update to final)
AppImage updater uses link at address: https://download.kde.org/unstable/krita/updates/Krita-Beta-x86_64.appimage.zsync
Krita Plus is the latest stable release with all backported patches, built nightly
this channel is basically the nightly build of the current stable branch
packages are stored at the gitlab’s CDN server: https://cdn.kde.org/ci-builds/graphics/krita/krita-5.2/
AppImage updater will suggest updates if
a new nightly with the same minor version has been published, e.g.
krita/5.2 will update to the new version of krita/5.2
krita/5.3 will update to the new version of krita/5.3
they will not cross-update, unless the next point…
a stable version of the next minor branch has been officially released
krita/5.2 will update to krita/5.3 after the first official stable release of krita/5.3 has been made
AppImage updater uses link at the corresponding branch on CDN via redirects from https://autoconfig.kde.org:
https://autoconfig.kde.org/krita/updates/plus/linux/Krita-Plus-x86_64.appimage.zsync links to the corresponding active “stable” branch on CDN site
after every stable branch change, the redirect on https://autoconfig.kde.org should be manually changed
Krita Next is the nightly build of the development (
master
) branch of Kritapackages are stored at the gitlab’s CDN server: https://cdn.kde.org/ci-builds/graphics/krita/master/
AppImage updater will suggest updates every time development branch gets a new nightly build
AppImage updater uses link to the master branch on CDN via redirects from https://autoconfig.kde.org:
https://autoconfig.kde.org/krita/updates/next/linux/Krita-Next-x86_64.appimage.zsync links to the master branch on CDN site
备注
Krita’s main CMakeLists.txt file has a special code to detect the current channel based on the version switches. It sets variable BRANDING
, which is later used to change application’s icon and splashscreen. Branding can be one of: “default”, “Beta”, “Plus” or “Next”.
On branching out a stable branch
When we change the stable branch name, e.g. when changing krita/5.2 into krita/5.3 we should update its name in several places to keep CI infrastructure working properly:
APK signer: https://invent.kde.org/sysadmin/ci-utilities/-/blob/master/signing/apksigner-projects.yaml
Windows signer: https://invent.kde.org/sysadmin/ci-utilities/-/blob/master/signing/windowsbinariessigner-projects.yaml
MacOS signer: https://invent.kde.org/sysadmin/ci-utilities/-/blob/master/signing/macappsigner-projects.yaml
MacOS notarizer: https://invent.kde.org/sysadmin/ci-utilities/-/blob/master/signing/macappnotarizer-projects.yaml
Nightly builds publisher: https://invent.kde.org/sysadmin/ci-utilities/-/blob/master/signing/buildpublisher-projects.yaml
Translations’ “stable” branch: https://invent.kde.org/sysadmin/repo-metadata/-/blob/master/projects-invent/graphics/krita/i18n.json
Updates redirect link: https://invent.kde.org/websites/autoconfig-kde-org/-/blob/master/krita/.htaccess?ref_type=heads
Notify translators about the tranlsations branch switch!
Update the link to “Krita Plus” ZSync channel in
build-tools/ci-scripts/show-updates-status.py
scriptmake sure you keep the old link in the script as well, until the branch is fully deprecated and removed from the CDN server (we need to keep the link up for some time to let people update to the new version)
Update Krita version in
master
branch to be higher than in stable.
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 dependency builds are up to date.
TODO: write actual steps on how to verify the deps are up-to-date
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 krita5.xmlgui
update the CMakeLists.txt version
update the snapcraft.yaml file
update the appstream screenshots: https://invent.kde.org/websites/product-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/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 v5.1.0-beta1 -m "Krita 5.1.0 Beta1"
Push the tag:
git push origin refs/tags/v5.1.0-beta1:refs/tags/v5.1.0-beta1
If you need to change the tag position (not recommended):
# remove the previous tag git push origin :refs/tags/v5.1.0-beta1 # make a new tag locally git tag -a v5.1.0-beta1 -m "Krita 5.1.0 Beta1" # push the new tag git push origin refs/tags/v5.1.0-beta1:refs/tags/v5.1.0-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
Rename folder from krita-v5.1.0-beta1 into krita-5.1.0-beta1 (without ‘v’ prefix in the version string)
Package the tarball as .gz and .xz
Sign both tarballs:
gpg --output krita-5.1.0-beta1.tar.gz.sig --detach-sign krita-5.1.0-beta1.tar.gz gpg --output krita-5.1.0-beta1.tar.xz.sig --detach-sign krita-5.1.0-beta1.tar.xz
Make Windows, Linux, macOS and Android packages
Request four release builds on GitLat’s CI
Go to “Tags” page in Krita repository: https://invent.kde.org/graphics/krita/-/tags
Click the pipeline icon next to the just pushed tag
Start all the jobs at the “build” stage:
android-build-arm64-v8a-release
android-build-armeabi-v7a-release
android-build-x86_64-release
linux-release
macos-release
windows-release
When the three Android builds are finished, start the AppBundle job from the “deploy” stage:
android-build-appbundle-release
Download all built artifacts using “Krita Atrifacts Download” script (https://invent.kde.org/dkazakov/krita-artifacts-download)
For each build check:
Krita starts
Localization works
Python plugins are available
Basic painting and most recently fixed bugs are fixed
Sign the AppImage:
gpg --detach-sign --output krita-5.1.0-beta-x86_64.appimage.sig krita-5.1.0-beta-x86_64.appimage
Sign four Android packages (or send them to Halla for signing)
Note: there is a useful script for signing them…
krita-arm64-5.1.0-beta1-unsigned.apk
krita-x86-5.1.0-beta1-unsigned.apk
krita-x86_64-5.1.0-beta1-unsigned.apk
After signing, remove “-unsigned” suffix, so the signed packages would look like that:
krita-arm64-5.1.0-beta1.apk
krita-x86-5.1.0-beta1.apk
krita-x86_64-5.1.0-beta1.apk
Now you should have 18 files in your release folder
Verify that the filesize of .zsync blob is different from the one stored on https://download.kde.org
for stable releases: https://download.kde.org/stable/krita/updates/Krita-Stable-x86_64.appimage.zsync
for unstable releases: https://download.kde.org/unstable/krita/updates/Krita-Beta-x86_64.appimage.zsync
The filesize must be different, otherwise KDE’s mirroring system will not propagate the change automatically. If you see that the filesize is the same, notify sysadmins to update the mirrors manually.
Please take it into account that “unstable” releases should have “Beta” in the zsync file name, not “Unstable” as you could guess. This word comes from $CHANNEL variable in build_image.sh script.
Upload all files to download.kde.org (or ask sysadmins to do that using this manual ftp://upload.kde.org/README):
to https://download.kde.org/unstable/krita/5.1.0-beta1/
krita-5.1.0-beta1.tar.gz
krita-5.1.0-beta1.tar.gz.sig
krita-5.1.0-beta1.tar.xz
krita-5.1.0-beta1.tar.xz.sig
krita-5.1.0-beta1-x86_64.appimage
krita-5.1.0-beta1-x86_64.appimage.sig
krita-x64-5.1.0-beta1-dbg.zip
krita-x64-5.1.0-beta1-setup.exe
krita-x64-5.1.0-beta1.zip
krita-5.1.0-beta1.dmg
krita-arm64-5.1.0-beta1.apk
krita-arm32-5.1.0-beta1.apk
krita-x86_64-5.1.0-beta1.apk
to https://download.kde.org/unstable/krita/updates/
Krita-Beta-x86_64.appimage.zsync
警告
Please don’t forget to replace “unstable” to “stable” for stable release builds. It should be replaced for both, packages themselves and zsync file
备注
Note that the msix file is only for uploading to the Windows Store, it doesn’t need to be uploaded to download.kde.org.
备注
Please note that we do not generate MD5 sums anymore, since they are now autogenerated by the mirroring system. Just add “.md5” or “.sha1” or “.sha256” at the end of any link or enter the folder with the browser and click “Details” link.
Template ticket for sysadmins:
Hi, sysadmins! Could you please do the final steps for publishing Krita release? There are three tasks: 1) Upload release artifacts (20 files) to download.kde.org: * Source link: https://files.kde.org/krita/release-5.1.0-beta1/ * Destination link: https://download.kde.org/unstable/krita/5.1.0-beta1/ 2) Upload updates ZSync artifacts (1 file) to download.kde.org: * Source link: https://files.kde.org/krita/release-5.1.0-beta1-updates/ * Destination link: https://download.kde.org/unstable/krita/updates/ 3) Add `Krita 5.1.0 Beta1` bugzilla version
Now the folder on download.kde.org should have 21(!) files. Check if you missed something (and you surely did! :) ).
Verify consistency of all ZSync AppImage update links using the special script:
cd krita/ python build-tools/ci-scripts/show-updates-status.py
It should show information like this:
== Channel: Stable FAILED == ZSync URL: https://download.kde.org/stable/krita/updates/Krita-Stable-x86_64.appimage.zsync ZSync exists: True AppImage exists: False MTime: Wed, 06 Dec 2023 13:28:16 +0000 Filename: krita-5.2.2-x86_64.appimage URL: https://binary-factory.kde.org/job/Krita_Release_Appimage_Build/124//artifact/krita-5.2.2-x86_64.appimage SHA-1: 16a1a640084446b45ea078d8b81cffc075144a02 == Channel: Beta (unstable) FAILED == ZSync URL: https://download.kde.org/unstable/krita/updates/Krita-Beta-x86_64.appimage.zsync ZSync exists: True AppImage exists: False MTime: Thu, 14 Sep 2023 09:26:05 +0000 Filename: krita-5.2.0-rc1-x86_64.appimage URL: https://binary-factory.kde.org/job/Krita_Release_Appimage_Build/121//artifact/krita-5.2.0-rc1-x86_64.appimage SHA-1: 4bd0f522c22f41e504bf1e9ced540fa11ed5ec53 == Channel: Plus FAILED == ZSync URL: https://cdn.kde.org/ci-builds/graphics/krita/krita/5.2/linux/Krita-Plus-x86_64.appimage.zsync ZSync exists: False AppImage exists: False == Channel: Next == ZSync URL: https://cdn.kde.org/ci-builds/graphics/krita/master/linux/Krita-Next-x86_64.appimage.zsync ZSync exists: True AppImage exists: True MTime: Tue, 02 Apr 2024 22:30:57 +0000 Filename: krita-5.3.0-prealpha-64b33ed808-x86_64.appimage URL: https://cdn.kde.org/ci-builds/graphics/krita/master/linux/krita-5.3.0-prealpha-64b33ed808-x86_64.appimage SHA-1: e360127c3c956499ed0266ad8eb9bcdad3789956
Check the following:
none of the channels are marked with FAILED
AppImage’s filename is set to the one you just uploaded
Appimage’s URL is a full URL pointing to a seemingly correct location (see the definition of the “channels” above)
AppImage exists: True
will tell you if the AppImage URL in downloadable, so you don’t have to recheck it yourself
If you want to test ZSync manually, don’t use the system-provided package. Use this cli-tool provided by AppImage team: https://appimage.github.io/zsync2/
- If you are doing the first stable release after branching-out, e.g. the first release of “Krita 5.3.0”, then make sure
ask sysadmins to relink “Krita Plus krita/5.2” zsync file to “Krita Plus krita/5.3”
- If you are doing any stable release, manually switch zsync file of Krita Beta to the Krita Stable, to make sure
users will get updates.
If you are doing Beta_N or RC_N release from a stable branch, then… <FIXME>.
- If you are doing any release from a stable branch, manually update the version to the next one with suffix “prealpha” to
make sure that Krita Plus packages correctly show it to the user. You need to do that in
CMakeLists.txt
andbuild.gradle
.
- Manually verify that the previous version of Krita AppImage can update to
the new one from the GUI. It should use the .zsync file uploaded above.
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 (halla)
twitter (halla)
facebook (halla)
3dpro (halla)
reddit (raghukamath)
Notes
Additional info can be found here: https://phabricator.kde.org/T10762
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论