3.7 KiB
How to update compiler in Krita
Creation of a new "branch" of Krita that uses new compiler/environment
-
Create a MR for ci-images repository with the updated image for the corresponding platform
- the image should have a different name, e.g.
krita-windows-builder-clang18 - do not use docker tags, since KDE infrastructure doesn't use them, only image names
- example: https://invent.kde.org/sysadmin/ci-images/-/merge_requests/306
- the image should have a different name, e.g.
-
Create a branch in
krita-deps-managementrepository for the transitionary builds- the branch should start with
transition.now/*prefix, e.g.transition.now/win-clang18 - all branches with
transition.now/*prefix are protected and, hence, are allowed to publish the packages into repository
- the branch should start with
-
Replace the value of
BRANCH_NAME_WINDOWSin.gitlab-ci.ymlwith the name of your new branch- use
BRANCH_NAME_LINUXorBRANCH_NAME_ANDROIDif you change stuff for these platforms as well
- use
-
Change the
imagetag for the corresponding job in.gitlab-ci.ymlto point to the new docker image- again, we don't use docker tags, only image names; so the image will always point to
:latest
- again, we don't use docker tags, only image names; so the image will always point to
-
Run
all_local_cache_windows(orall_local_cache_<your-platform>) job on CI to verify that all the packages can be built correctly with the new setup -
When the packages are built, run
all_publish_windowsjob to actually publish the packages in the repository.Now all your packages are available for consumption by Krita using normal routines using the new branch name.
-
[krita] Create a Krita branch with the same name (i.e.
transition.now/win-clang18) -
[krita] Replace the value of
DEPS_BRANCH_NAME_WINDOWSin.gitlab-ci.ymlin Krita's repository with the name of your new dependencies branch -
[krita] Replace the value of
DEPS_REPO_BRANCH_NAME_WINDOWSin.gitlab-ci.ymlin Krita's repository with the name of your new dependencies branch, if your changes also affect files used by Krita itself, likekrita-deps.ymlor toolchain files. -
[krita] Change the value of
VM_IMAGE_NAME_WINDOWSin.gitlab-ci.ymlto point to the new docker image -
[krita] Make sure Krita compiles correctly with the new set of dependencies
Deprecation of the old compiler/environment
-
[krita-deps-management] Replace
BRANCH_NAME_WINDOWSback tomasterin the transition branch -
[krita-deps-management] Merge the transition branch into master`
-
[krita-deps-management] Run
all_publish_windowsjob to actually publish the packages into the repository. -
[krita] Replace
DEPS_BRANCH_NAME_WINDOWSback tomasterin the transition branch -
[krita] Replace
DEPS_REPO_BRANCH_NAME_WINDOWSback tomasterin the transition branch -
[krita] Merge the transition branch into master
-
[krita] Make sure Krita compiles fine with the new set of deps
-
[krita-docker-env] [Linux] If Linux docker image has changed, then update the link to that in Krita-docker-env repository in
base-image.conffile: -
[krita-ci-utils] Add the deprecated branch into the list of branches to remove in section
branchesToRemoveofpackage-registry-cleanup.pyscript:The script will remove the branch on the following sunday night. You can check that by checking packages in the repository:
- the packages will have suffix
-transition-win-clang18 - link: https://invent.kde.org/teams/ci-artifacts/krita-windows/-/packages
- the packages will have suffix
-
Make a sysadmin ticket to:
- remove the old docker image
- remove the transition branch (you cannot remove it normally, since it is protected)