Questions around CI
Closed, ResolvedPublic

Description

Hello,

I worked a bit on Rolisteam Dice Handling Components in order to manage Continuous Integration.
The goal is to start with this tiny project before doing the same for the big ones.

As current status, I have the master branch which is under development and it uses Qt6.
I also made a stable branch which is the latest version under Qt5. This branch will receive bug fixes but, I won't probably add new features.
Both branches have there CI setup and it seems to work well. At least, gitlab ran it when I made the pull request.

In the job log, there are mention of cppcheck and test report.
Question 1: Is there a way to get detailed cppcheck report ? I can't find any link to it in the job page (sorry if the answer is obvious).

It seems there is also a try to measure the code coverage, but it is not working due to no virtual x11 environment.
Question 2: How can I activate xvfb ?

Now, that this step is done, I would like to know what are the next steps for this repository.
This repository builds 4 binaries:

  • libdiceparser : the main library
  • libdiceparser_qobject : helper library to manage dice rolls in qt application (asynchronous, signal/slots, qml import)
  • dice : a command line dice roller
  • test_dice : unit test executable

As next step, I would like to make sure this project/repo fulfill all requirements to be published using KDE Infrastructure.
I guess, the next step is to manage translation, and package build.

For translation, I know I have to contact the i18n team.
But I have some questions about the release cycle.

Question 3: Do all projects must follow KDE framework release schedule ?
My applications has no dependencies to KDE framework. So, I would like to be able to make a public release when I think it is the good time and still use KDE Infrastructure to make it automatic.
Question 4: Is it possible ? And how exactly KDE's infrastructure can help ? (I may have incorrect perception of what the KDE infrastructure can do for my projects).
Question 5: either way, what I have to do on to automatically build packages, installer ? (if available)

I fully switched my projects to Qt6, It seems the CI support for it is only available on Linux and Android.
Question 6: Can I help in anyway to make available a windows CI using Qt6 ?
Obviously, if some other parts of the infrastructure required some changes to support Qt6, I can help (Not sure I will be much useful but I can try).

Question 7: How often the qt version is updated ?
I saw that currently it is the Qt6.2 branch which is used. I need some Qt6.3 features for Rolisteam itself. Same, I can help to make the update (even if I don't know how).

Don't hesitate to copy/paste link to documentation. I tried my best but the documentation of KDE is huge and sometimes I got lost, so I may have missed some answers.

Regards
Renaud

renaudg created this task.Apr 29 2022, 5:42 PM
Restricted Application added a subscriber: sysadmin. · View Herald TranscriptMay 1 2022, 11:49 AM

In terms of the cppcheck report, i'm afraid the CodeQuality JSON is only accessible to Gitlab itself and isn't externally downloadable.
For Xvfb, the CI scripts automatically start this up (see https://invent.kde.org/rolisteam/rolisteam-diceparser/-/jobs/309969#L324 for the mentions of XIO/Openbox/etc) so this should "just work"

In terms of releasing, you can have your own independent release schedule as you handle your own releases.
For translations you'll need to discuss that with Albert and Luigi.

For binary packages, i'd recommend looking into Craft for that as that is generally what we use for Windows/macOS/Linux Appimages/Android APKs.
Our mechanisms for building these on a regular basis (the BInary Factory) assumes you make use of Craft

For Windows CI, Qt 6 would need to be available in Craft first and I don't know if that has been looked into at this stage.
Given the early stage of adoption i'd recommend remaining with Qt 5 for now.

In terms of Linux CI, Qt 6 builds are once again very early stage and any updates to this are dependent on them becoming available in OpenSUSE first.

bcooksley closed this task as Resolved.May 10 2022, 10:01 AM
bcooksley claimed this task.

Closing due to lack of repsonse.