[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: flatpak CI and stable builds - Re: KDE Gear projects with failing CI (release/23.08) (12 Septemb
From:       Ben Cooksley <bcooksley () kde ! org>
Date:       2023-09-20 11:17:22
Message-ID: CA+XidOEQ6gpnzg4VP+ukuzYzgBnJmtWqnXSCcZSW583n0Bc0-w () mail ! gmail ! com
[Download RAW message or body]

On Wed, Sep 20, 2023 at 9:42 AM Albert Astals Cid <aacid@kde.org> wrote:

> El dimarts, 19 de setembre de 2023, a les 22:18:40 (CEST),
> christoph@cullmann.io va escriure:
> > On 2023-09-19 21:35, Albert Astals Cid wrote:
> > > Please work on fixing them, otherwise i will remove the failing CI
> > > jobs on their 4th failing week, it is very important that CI is passing
> > > for
> > > multiple reasons.
> > >
> > > Bad news: We have 2 new repositories failing :/
> > >
> > > = FLATPAK FAILING =
> > >
> > > kate:
> > >  * https://invent.kde.org/utilities/kate/-/pipelines/484147
> > >
> > >   * This highlights a design problem, it's building markdown part from
> > >
> > > master
> > > instead of from stable branch. We can manually change the branch, but i
> > > would
> > > prefer a solution that doesn't mean changing lots and lots of flatpak
> > > manifests when we branch.
> >
> > Hmm, yes that sounds not nice.
> >
> > But not sure how that would work without that, seems
> >
> >
> https://invent.kde.org/utilities/kate/-/blob/master/.flatpak-manifest.json?r
> > ef_type=heads
> >
> > hard codes what to fetch.
> >
> > Given one hard codes there the
> >
> >   "runtime-version": "5.15-22.08",
>
> That one is "fine", the 22.08 here it's related to the "flatpak kde/
> freedesktop sdk" not to Gear stuff.
>
> Yes, we will massively have to update them on master when we decide to
> depend
> on a new one, but it won't cause problems on the stable branches like the
> oner
> we're experiencing here.
>
> The problem here is
>
> {
>   "name": "markdownpart",
>   "buildsystem": "cmake-ninja",
>   "sources": [
>     {
>       "type": "git",
>       "url": "https://invent.kde.org/utilities/markdownpart.git"
>     }
>   ]
> }
>
> This unconditionally compiles the master branch of markdownpart repo
>
> As far as i can see there's three solutions:
>
> A) If this is just "to make sure it builds CI", we don't need markdownpart
> nor
> konsole on the flatpak since they are just runtime dependencies. This is a
> sub-optimal solution i'd say since it makes it so that we can't offer the
> package for testing in the future and makes the diff with the flathub
> manifest
> bigger than it needs to be
>

The overall intention is for the bundles produced by the Flatpak jobs to be
useful for people to locally test a project build.
In the not too distant future we'll have them available from a Flatpak
repository for actual mainline/release branches as well.

So the answer certainly isn't (a).


>
> B) Depend on released versions, i.e. a tarball in "sources" instead of a
> git
> repo. This is probably suboptimal too in the sense that will require
> constant
> updating on master and if we offer the resulting flatpak as "nightly" in
> the
> future for testing it's not "nightly" as it could be.
>

Guess it depends on the nature of the dependency, but in the case of
software released together you probably want to build against what you will
be shipping against yes.


>
> C) Add a marker in the .json like branch: "kde-same-branch" and then have
> the
> code in
> https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/flatpak.yml
> replace that "kde-same-branch" either by "master" or by
> the appropriate stable branch before actually compiling the flatpak. I
> think
> this would be the optimal solution but needs work.
>

This is my preferred solution as well. it wouldn't be too difficult given
we have a Python script acting as a middle-man already.
In the past we did some rewriting of the .flatpak-manifest.yml already.

Depending on our requirements it may be worth tying into the same
branch-rules.yml logic that the rest of the CI system uses but this is
probably best answered by someone who knows the various Flatpak manifests
we have better.

In #flatpak:kde.org it was mentioned that this would mean that people
wouldn't be able to build it as easily themselves, but if we make it well
documented (comments in the .flatpak-manifest.yml, etc) then I think this
shouldn't be much of an issue.


>
> D) Something smarter I have not thought about.
>
> Cheers,
>   Albert
>

Cheers,
Ben


>
> >
> > I assume one will need to hard code that, too, if one creates no own
> > scripting.
> >
> > But I might be wrong.
> >
> > Greetings
> > Christoph
> >
> > > = FAILING UNIT TESTS =
> > >
> > > konsole:
> > >  * https://invent.kde.org/utilities/konsole/-/pipelines/484148
> > >
> > >   * freebsd_qt515 tests are failing
>
>
>
>
>

[Attachment #3 (text/html)]

<div dir="ltr"><div dir="ltr">On Wed, Sep 20, 2023 at 9:42 AM Albert Astals Cid \
&lt;<a href="mailto:aacid@kde.org">aacid@kde.org</a>&gt; wrote:<br></div><div \
class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">El dimarts, 19 de \
setembre de 2023, a les 22:18:40 (CEST), <br> <a href="mailto:christoph@cullmann.io" \
target="_blank">christoph@cullmann.io</a> va escriure:<br> &gt; On 2023-09-19 21:35, \
Albert Astals Cid wrote:<br> &gt; &gt; Please work on fixing them, otherwise i will \
remove the failing CI<br> &gt; &gt; jobs on their 4th failing week, it is very \
important that CI is passing<br> &gt; &gt; for<br>
&gt; &gt; multiple reasons.<br>
&gt; &gt; <br>
&gt; &gt; Bad news: We have 2 new repositories failing :/<br>
&gt; &gt; <br>
&gt; &gt; = FLATPAK FAILING =<br>
&gt; &gt; <br>
&gt; &gt; kate:<br>
&gt; &gt;   * <a href="https://invent.kde.org/utilities/kate/-/pipelines/484147" \
rel="noreferrer" target="_blank">https://invent.kde.org/utilities/kate/-/pipelines/484147</a><br>
 &gt; &gt;   <br>
&gt; &gt;     * This highlights a design problem, it&#39;s building markdown part \
from<br> &gt; &gt; <br>
&gt; &gt; master<br>
&gt; &gt; instead of from stable branch. We can manually change the branch, but i<br>
&gt; &gt; would<br>
&gt; &gt; prefer a solution that doesn&#39;t mean changing lots and lots of \
flatpak<br> &gt; &gt; manifests when we branch.<br>
&gt; <br>
&gt; Hmm, yes that sounds not nice.<br>
&gt; <br>
&gt; But not sure how that would work without that, seems<br>
&gt; <br>
&gt; <a href="https://invent.kde.org/utilities/kate/-/blob/master/.flatpak-manifest.json?r" \
rel="noreferrer" target="_blank">https://invent.kde.org/utilities/kate/-/blob/master/.flatpak-manifest.json?r</a><br>
 &gt; ef_type=heads<br>
&gt; <br>
&gt; hard codes what to fetch.<br>
&gt; <br>
&gt; Given one hard codes there the<br>
&gt; <br>
&gt;     &quot;runtime-version&quot;: &quot;5.15-22.08&quot;,<br>
<br>
That one is &quot;fine&quot;, the 22.08 here it&#39;s related to the &quot;flatpak \
kde/<br> freedesktop sdk&quot; not to Gear stuff.<br>
<br>
Yes, we will massively have to update them on master when we decide to depend <br>
on a new one, but it won&#39;t cause problems on the stable branches like the oner \
<br> we&#39;re experiencing here.<br>
<br>
The problem here is <br>
<br>
{<br>
   &quot;name&quot;: &quot;markdownpart&quot;,<br>
   &quot;buildsystem&quot;: &quot;cmake-ninja&quot;,<br>
   &quot;sources&quot;: [<br>
      {<br>
         &quot;type&quot;: &quot;git&quot;,<br>
         &quot;url&quot;: &quot;<a \
href="https://invent.kde.org/utilities/markdownpart.git" rel="noreferrer" \
target="_blank">https://invent.kde.org/utilities/markdownpart.git</a>&quot;<br>  \
}<br>  ]<br>
}<br>
<br>
This unconditionally compiles the master branch of markdownpart repo<br>
<br>
As far as i can see there&#39;s three solutions:<br>
<br>
A) If this is just &quot;to make sure it builds CI&quot;, we don&#39;t need \
markdownpart nor <br> konsole on the flatpak since they are just runtime \
dependencies. This is a <br> sub-optimal solution i&#39;d say since it makes it so \
that we can&#39;t offer the <br> package for testing in the future and makes the diff \
with the flathub manifest <br> bigger than it needs to \
be<br></blockquote><div><br></div><div>The overall intention is for the bundles \
produced by the Flatpak jobs to be useful for people to locally test a project \
build.</div><div>In the not too distant future we&#39;ll have them available from a \
Flatpak repository for actual mainline/release branches as \
well.</div><div><br></div><div>So the answer certainly isn&#39;t (a).</div><div>  \
</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px \
solid rgb(204,204,204);padding-left:1ex"> <br>
B) Depend on released versions, i.e. a tarball in &quot;sources&quot; instead of a \
git <br> repo. This is probably suboptimal too in the sense that will require \
constant <br> updating on master and if we offer the resulting flatpak as \
&quot;nightly&quot; in the <br> future for testing it&#39;s not &quot;nightly&quot; \
as it could be.<br></blockquote><div><br></div><div>Guess it depends on the nature of \
the dependency, but in the case of software released together you probably want to \
build against what you will be shipping against yes.</div><div>  </div><blockquote \
class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"> <br>
C) Add a marker in the .json like branch: &quot;kde-same-branch&quot; and then have \
the <br> code in <a href="https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/flatpak.yml" \
rel="noreferrer" target="_blank">https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/flatpak.yml</a> \
replace that &quot;kde-same-branch&quot; either by &quot;master&quot; or by <br> the \
appropriate stable branch before actually compiling the flatpak. I think <br> this \
would be the optimal solution but needs \
work.<br></blockquote><div><br></div><div>This is my preferred solution as well. it \
wouldn&#39;t be too difficult given we have a Python script acting as a middle-man \
already.</div><div>In the past we did some rewriting of the .flatpak-manifest.yml \
already.</div><div><br></div><div>Depending on our requirements it may be worth tying \
into the same branch-rules.yml logic that the rest of the CI system uses but this is \
probably best answered by someone who knows the various Flatpak manifests we have \
better.</div><div><br></div><div>In #flatpak:<a href="http://kde.org">kde.org</a> it \
was mentioned that this would mean that people wouldn&#39;t be able to build it as \
easily themselves, but if we make it well documented (comments in the \
.flatpak-manifest.yml, etc) then I think this shouldn&#39;t be much of an \
issue.</div><div>  <br></div><blockquote class="gmail_quote" style="margin:0px 0px \
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <br>
D) Something smarter I have not thought about.<br>
<br>
Cheers,<br>
   Albert<br></blockquote><div><br></div><div>Cheers,</div><div>Ben</div><div>  \
</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px \
solid rgb(204,204,204);padding-left:1ex"> <br>
&gt; <br>
&gt; I assume one will need to hard code that, too, if one creates no own<br>
&gt; scripting.<br>
&gt; <br>
&gt; But I might be wrong.<br>
&gt; <br>
&gt; Greetings<br>
&gt; Christoph<br>
&gt; <br>
&gt; &gt; = FAILING UNIT TESTS =<br>
&gt; &gt; <br>
&gt; &gt; konsole:<br>
&gt; &gt;   * <a href="https://invent.kde.org/utilities/konsole/-/pipelines/484148" \
rel="noreferrer" target="_blank">https://invent.kde.org/utilities/konsole/-/pipelines/484148</a><br>
 &gt; &gt;   <br>
&gt; &gt;     * freebsd_qt515 tests are failing<br>
<br>
<br>
<br>
<br>
</blockquote></div></div>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic