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

List:       kde-community
Subject:    Re: Proposal unify back our release schedules
From:       Björn Strömberg <bjorn.stromberg86 () gmail ! com>
Date:       2024-04-20 11:14:26
Message-ID: CAHo5mS11XwQ7d1DLeh6Y1ig9FYGJqZEbRSQ3+32ogsPzK1sdvw () mail ! gmail ! com
[Download RAW message or body]

i know quite a few have responded to this, but as the big warning on this,
the fact that the three parts cant be released independently, is a big
warning flag that a overhaul is needed of the overlapping architecture.

i know this is a big issue, and the bigger the project, the bigger the
workload. i saw someone was starting on a tool to graph architecture wise
at https://invent.kde.org/sdk/codevis , its still in development,
but i think this will highlight where the issue pinpoints are, break the
cycles, and levelize everything. when stuff actually is decoupled, the
frameworks would even be able to do staggered/piped deploys and the whole
dev team would have less stress..

doing 3 releases a year or doing 12+ smaller ones, deploying from the base
and going up, anything that depends on other parts will have to wait and
since they still work against the last stable the friction will be less.

i kept an eye on the mega release 6, and if that is viewed as a success i
guess we got very different views on successes, from the mailing list it
looked like at best organized chaos.


On Fri, Apr 19, 2024 at 1:32 PM Carl Schwan <carl@carlschwan.eu> wrote:

> Hello Community,
>
> I know this might be a controversial idea, but I would like to propose
> reunify
> our release schedules. I feel like splitting our releases schedules between
> Frameworks, Plasma and Gear is not working as well as we intended it to be
> when
> we split the releases schedules for Plasma 5. This is for multiple reasons:
>
> * We end up with 3 different products which are released at different
> times but
>   are connected together. Apps and Plasma both need Framework, Plasma
> needs some
>   packages from gear like kio-extra, Gear needs some package from Plasma
> like
>   Breeze. Coordinating all these inter-groups dependencies is complex and
> was one
>   the reason we had to do a megarelease for Plasma 6. Also for the end
> user, one
>   product is a lot easier to understand.
>

here is a architecture bug list, the fact that there are circles like this
is what needs to be dealt with before even thinking of feature development,
its boring, and it will break stuff, but better take the bull by the horns
and deal with it..


> * This results in very frequent releases which creates a lot of work for
> distros
>   and talking with some distro maintainers they seems to agree that having
> a big
>   releases every 4 months is better than having constantly a new minor or
> major
>   release from either Framework, Gear or Plasma.
>

a stable release should support a known set say last 3 major releases for
example. (this i due to the versioning scheme yy.mm counted as a major,
then patches are the minors..)
the released code used by downstream its the open source value chain..
'master' is just work in progress until its released.
distros themselves have the same issue with bad architecture, so to lessen
their burden with dealing with broken stuff upstream they rather take a big
release 'block' then a smaller one, its just a massive monolith they deploy
then.

big changes are always more risky then small ones.. problem is that
features are more fun than doing maintenance on old stuff..


* We currently don't have a stable branch for Framework and it takes often
> up to
>   one month for fixes to be deployed. The Framework releases is also not
> in sync
>   with either Gear nor Plasma while these two modules heavily make use of
> Framework
>   and contribute to Framework.
>

perfect candidate for automation.. deployment really should be automated,
either by bots or other means.

* We could have an unified LTS release including more than just Plasma.
> This is
>   something that distros have been asking for some time already because
> having
>   just Plasma receiving bug-fixes but not Framework nor the apps is not
> that helpful.
>

i personally would prefer two release ways one feature release and one long
term stable release, but this adds burden on the whole organization so i
know its currently a utopia dream.
mostly since KDE would have to do the Qt lts releases too since without a
'upstream' open source Qt LTS a KDE LTS  is pretty useless since the
dependency will have a lot faster churn than the dependency,
its supposed to be the other way around.. the base is stable, the features
and the churn happens a lot higher up in the structure.


> * In term of promotion, it is very difficult to advertise the 3 releases
> because
>   combined we have an important release of either Gear, Plasma or
> Framework every
>   few weeks. This is too frequent and often while a combined announcement
> would
>   have enough content to be published in a tech newspaper. When splitting
> the content
>   accross 2 announcements (Gear and Plasma), we reduce the content per
>   announcement and this makes it less interesting for the journalists to
> write
>   about us. This doesn't come from me, this is that some journalists
> directly
>   told me.
>

this is not in my wheelhouse but i guess the most important stuff when it
comes to promotion and journalists is the visible stuff,
they don't care about maintenance, but unless the features are produced on
a stable base, you get the tower of babel and the maintenance debt will
slowly kill the project.



> * We won't have 3 different release teams but instead have a bigger one
> with a
>   bigger bus factor. We could also unify the tooling for doing this mass
> releases
>   a bit.
>

break it down to 12 smaller releases and let the release teams prepare one
each, when a release is done, don't just throw the pig over the wall,
let the release team analyze how to make the next release better,
continuous improvement.when a release is done, cleanup afterwards..

next team will do the same process... smaller blocks/pieces and read on the
mythical man month by Fred Brooks, its still valid....
https://en.wikipedia.org/wiki/The_Mythical_Man-Month



> I do understand that there was valid reasons for splitting KDE Software
> Collection
> for Plasma 5 but I don't think this worked out. These were as far as I
> know the
> main arguments used for splitting the Software Collection.
>
> * Trying to move away from "KDE" being recognized as the software instead
> of the
>   community. This unfortunately didn't really work out, everyone is still
> using
>   KDE to refer to the desktop. Even distros call their edition "KDE" and I
> don't blame
>   them, it's difficult to find a better term than that as for example
> "Fedora KDE Spin"
>   not only contains Plasma but also a lot of KDE apps. Splitting the
> releases won't
>   help with that, we need to find a better approach or just let it go and
> accept that
>   people will keep using KDE to describe the desktop/software.
>

this is a problem for the PR. department..
imho its not a problem if people say KDE spin, most places the actual
desktop environment is displayed as Plasma, it has taken many years to
build the KDE brand, use it and be proud of it.
when Plasma as a name has a few decades as a brand that will start to rub
off, i still remember KDE as a brand since i was a kid with my first
slackware linux dual boot back in the late 90's.

for me its KDE. no matter what the distro calls it.


> * Better promotion of our apps outside of Plasma. This is a valid point
> but I think
>   pursuing our current strategy of putting our apps in many app store to
> be more
>   effective. We could also show the platforms support of each applications
> more
>   prominently in our releases announcements like we already do on
> apps.kde.org
>   (e.g. https://apps.kde.org/okular/). Generally Plasma releases fare a
> lot better
>   in term of promotion than the gear announcements and showing the
> applications
>   on an unified announcement would likely help spread the words about our
> applications
>   better.
>

absolutely needed, i found the codevis i linked above by browsing
invent.kde.org..
there is a lot of KDE apps and libraries that i never even knew they
existed until i went through the whole invent.kde.org, its a big list of
stuff,
to big to overview what even depends on other stuff so I've just written it
off as a big monolith, and unusable in my architecture, due to lack of
clean overviewable dependency tables on every library.

codevis will likely be able to produce nice tables, those should be
published on apps.kde.org and even more on the page for the massive bunch
of libraries that is a mess to even try and overview what pulls
dependencies on what..


>
> * Helps with outside usage of our frameworks. These didn't get as much
> success
>   as we were hoping when splitting. I think having a stable branch for
> Framework
>   might help but this is only a guess. It would be interesting to know of
> cases
>   where people considered using some Framework and to know why they decided
>   against or for it and if this proposal would helps or not.
>

its a mess trying to deduce what the frameworks actually depends on without
going through them one by one.
every release should contain a full dependency tree file somewhere, make it
easier to depend on the stuff that already have been written, otherwise we
will keep re-inventing the wheel..


>
> In effect this proposal would mean:
>
> * We do one major release every 4 months and then minor releases with a
> frequency
>   based on the Fibonacci numbers as this releases cycle works very well for
>   Plasma. Naming could be either YY.MM or Major.Minor.Path. We could
> unify that
>   for one or the other one. Or let each component keep their current
> versioning
>   scheme depending whether we want to merge Plama and Gear as product or
>   keep it separate. I'm a bit undecided about this.
>
> * "KDE Framework" will still exists as an entity and its ABI and API
>   compatibility requirement. Only change is the release frequency and the
> introduction
>   of a stable branch in sync with the other components.
>
> * Only have one release announcement on our website. We can call it
> Megarelease
>   6.XX like we did for Plasma 6/Gear 24.02 or find a better name. I would
> avoid reusing
>   Software Collection first because the name is quite technical and second
> because
>   these was already used in the past.
>
> Currently this is just a proposal, not a vote proposal or anything like
> that. I'll be
> happy to receive positive or negative feedback on this idea.
>
> Cheers,
> Carl


as i have written, break down the releases into smaller chunks, release
more often and keep compatibility with older releases. until the code is
releases it is not valuable to the users.
release as a mega release, then you have one big mega monolith, its just
spread out over a gigantic code-base spanning hundreds of repositories, its
a mess to work with as downstream.

hopefully i have not stepped on to many toes...

with kind regards
Björn

[Attachment #3 (text/html)]

<div dir="ltr"><div>i know quite a few have responded to this, but as the big warning \
on this, the fact that the three parts cant be released independently, is a big \
warning flag that a overhaul is needed of the overlapping \
architecture.</div><div><br></div><div>i know this is a big issue, and the bigger the \
project, the bigger the workload. i saw someone was starting on a tool to graph \
architecture wise at <a \
href="https://invent.kde.org/sdk/codevis">https://invent.kde.org/sdk/codevis</a> , \
its still in development,  </div><div>but i think this will highlight where the issue \
pinpoints are, break the cycles, and levelize everything. when stuff actually is \
decoupled, the frameworks would even be able to do staggered/piped deploys and the \
whole dev team would have less stress..</div><div><br></div><div>doing 3 releases a \
year or doing 12+ smaller ones, deploying from the base and going up, anything that \
depends on other parts will have to wait and since they still work against the last \
stable the friction will be less. <br></div><div><br></div><div>i kept an eye on the \
mega release 6, and if that is viewed as a success i guess we got very different \
views on successes, from the mailing list it looked like at best organized chaos. \
<br></div><div><br></div><div></div><br><div class="gmail_quote"><div dir="ltr" \
class="gmail_attr">On Fri, Apr 19, 2024 at 1:32 PM Carl Schwan &lt;<a \
href="mailto:carl@carlschwan.eu">carl@carlschwan.eu</a>&gt; \
wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello Community,<br> \
<br> I know this might be a controversial idea, but I would like to propose \
reunify<br> our release schedules. I feel like splitting our releases schedules \
between<br> Frameworks, Plasma and Gear is not working as well as we intended it to \
be when<br> we split the releases schedules for Plasma 5. This is for multiple \
reasons:<br> <br>
* We end up with 3 different products which are released at different times but<br>
   are connected together. Apps and Plasma both need Framework, Plasma needs some<br>
   packages from gear like kio-extra, Gear needs some package from Plasma like<br>
   Breeze. Coordinating all these inter-groups dependencies is complex and was \
one<br>  the reason we had to do a megarelease for Plasma 6. Also for the end user, \
one<br>  product is a lot easier to \
understand.<br></blockquote><div><br></div><div>here is a architecture bug list, the \
fact that there are circles like this is what needs to be dealt with before even \
thinking of feature development,  </div><div>its boring, and it will break stuff, but \
better take the bull by the horns and deal with it..<br></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">
* This results in very frequent releases which creates a lot of work for distros<br>
   and talking with some distro maintainers they seems to agree that having a big<br>
   releases every 4 months is better than having constantly a new minor or major<br>
   release from either Framework, Gear or Plasma.<br></blockquote><div>  </div><div>a \
stable release should support a known set say last 3 major releases for example. \
(this i due to the versioning scheme <a href="http://yy.mm">yy.mm</a> counted as a \
major, then patches are the minors..)<br></div><div>the released code used by \
downstream its the open source value chain.. &#39;master&#39; is just work in \
progress until its released.</div><div>distros themselves have the same issue with \
bad architecture, so to lessen their burden with dealing with broken stuff upstream \
they rather take a big release &#39;block&#39; then a smaller one, its just a massive \
monolith they deploy then.</div><div><br></div><div>big changes are always more risky \
then small ones.. problem is that features are more fun than doing maintenance on old \
stuff..<br></div><div><br></div><br><blockquote class="gmail_quote" style="margin:0px \
                0px 0px 0.8ex;border-left:1px solid \
                rgb(204,204,204);padding-left:1ex">
* We currently don&#39;t have a stable branch for Framework and it takes often up \
to<br>  one month for fixes to be deployed. The Framework releases is also not in \
sync<br>  with either Gear nor Plasma while these two modules heavily make use of \
Framework<br>  and contribute to Framework.<br></blockquote><div>  </div><div>perfect \
candidate for automation.. deployment really should be automated, either by bots or \
other means.<br></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">
* We could have an unified LTS release including more than just Plasma. This is<br>
   something that distros have been asking for some time already because having<br>
   just Plasma receiving bug-fixes but not Framework nor the apps is not that \
helpful.<br></blockquote><div><br></div><div><div>i personally would prefer two \
release ways one feature release and  one long term stable release, but this adds \
burden on the whole organization  so i know its currently a utopia dream.  \
</div><div>mostly since KDE would have to do the Qt lts releases too since without a \
&#39;upstream&#39; open source Qt LTS a  KDE LTS   is pretty useless since the \
dependency will have a lot faster churn than the dependency,  </div><div>its supposed \
to be the other way around.. the base is stable, the features and the churn happens a \
lot higher up in the structure.<br></div></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">
* In term of promotion, it is very difficult to advertise the 3 releases because<br>
   combined we have an important release of either Gear, Plasma or Framework \
every<br>  few weeks. This is too frequent and often while a combined announcement \
would<br>  have enough content to be published in a tech newspaper. When splitting \
the content<br>  accross 2 announcements (Gear and Plasma), we reduce the content \
per<br>  announcement and this makes it less interesting for the journalists to \
write<br>  about us. This doesn&#39;t come from me, this is that some journalists \
directly<br>  told me.<br></blockquote><div><br></div><div>this is not in my \
wheelhouse but i guess the most important stuff when it comes to promotion and \
journalists is the visible stuff,  </div><div>they don&#39;t care about maintenance, \
but unless the features are produced on a stable base, you get the tower of babel and \
the maintenance debt will slowly kill the project.<br></div><div><br></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">
* We won&#39;t have 3 different release teams but instead have a bigger one with \
a<br>  bigger bus factor. We could also unify the tooling for doing this mass \
releases<br>  a bit.<br></blockquote><div><br></div><div>break it down to 12 smaller \
releases and let the release teams prepare one each, when a release is done, \
don&#39;t just throw the pig over the wall,  </div><div>let the release team analyze \
how to make the next release better, continuous improvement.when a release is done, \
cleanup afterwards..  </div><div><br></div><div>next team will do the same process... \
smaller blocks/pieces and read on the mythical man month by Fred Brooks, its still \
valid.... <a href="https://en.wikipedia.org/wiki/The_Mythical_Man-Month">https://en.wikipedia.org/wiki/The_Mythical_Man-Month</a></div><div> \
</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>
I do understand that there was valid reasons for splitting KDE Software \
Collection<br> for Plasma 5 but I don&#39;t think this worked out. These were as far \
as I know the<br> main arguments used for splitting the Software Collection.<br>
<br>
* Trying to move away from &quot;KDE&quot; being recognized as the software instead \
of the<br>  community. This unfortunately didn&#39;t really work out, everyone is \
still using<br>  KDE to refer to the desktop. Even distros call their edition \
&quot;KDE&quot; and I don&#39;t blame<br>  them, it&#39;s difficult to find a better \
term than that as for example &quot;Fedora KDE Spin&quot;<br>  not only contains \
Plasma but also a lot of KDE apps. Splitting the releases won&#39;t<br>  help with \
that, we need to find a better approach or just let it go and accept that<br>  people \
will keep using KDE to describe the \
desktop/software.<br></blockquote><div><br></div><div>this is a problem for the PR. \
department..    </div><div>imho its not a problem if people say KDE spin, most places \
the actual desktop environment is displayed as Plasma, it has taken many years to \
build the KDE brand, use it and be proud of it.</div><div>when Plasma as a name has a \
few decades as a brand that will start to rub off, i still remember KDE as a brand \
since i was a kid with my first slackware linux dual boot back in the late \
90&#39;s.</div><div><br></div><div>for me its KDE. no matter what the distro calls \
it.<br></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">
* Better promotion of our apps outside of Plasma. This is a valid point but I \
think<br>  pursuing our current strategy of putting our apps in many app store to be \
more<br>  effective. We could also show the platforms support of each applications \
more<br>  prominently in our releases announcements like we already do on <a \
href="http://apps.kde.org" rel="noreferrer" target="_blank">apps.kde.org</a><br>  \
(e.g. <a href="https://apps.kde.org/okular/" rel="noreferrer" \
target="_blank">https://apps.kde.org/okular/</a>). Generally Plasma releases fare a \
lot better<br>  in term of promotion than the gear announcements and showing the \
applications<br>  on an unified announcement would likely help spread the words about \
our applications<br>  better.<br></blockquote><div><br></div><div>absolutely needed, \
i found the codevis i linked above by browsing <a \
href="http://invent.kde.org">invent.kde.org</a>.. <br></div><div>there is a lot of \
KDE apps and libraries that i never even knew they existed until i went through the \
whole <a href="http://invent.kde.org">invent.kde.org</a>, its a big list of stuff,  \
</div><div>to big to overview what even depends on other stuff so I&#39;ve just \
written it off as a big monolith, and unusable in my architecture, due to lack of \
clean overviewable dependency tables on every \
library.</div><div><br></div><div>codevis will likely be able to produce nice tables, \
those should be published on <a href="http://apps.kde.org">apps.kde.org</a> and even \
more on the page for the massive bunch of libraries that is a mess to even try and \
overview what pulls dependencies on what..<br></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>
* Helps with outside usage of our frameworks. These didn&#39;t get as much \
success<br>  as we were hoping when splitting. I think having a stable branch for \
Framework<br>  might help but this is only a guess. It would be interesting to know \
of cases<br>  where people considered using some Framework and to know why they \
decided<br>  against or for it and if this proposal would helps or \
not.<br></blockquote><div><br></div><div>its a mess trying to deduce what the \
frameworks actually depends on without going through them one by one.</div><div>every \
release should contain a full dependency tree file somewhere, make it easier to \
depend on the stuff that already have been written, otherwise we will keep \
re-inventing the wheel..<br></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>
In effect this proposal would mean:<br>
<br>
* We do one major release every 4 months and then minor releases with a frequency<br>
   based on the Fibonacci numbers as this releases cycle works very well for<br>
   Plasma. Naming could be either <a href="http://YY.MM" rel="noreferrer" \
target="_blank">YY.MM</a> or Major.Minor.Path. We could unify that<br>  for one or \
the other one. Or let each component keep their current versioning<br>  scheme \
depending whether we want to merge Plama and Gear as product or<br>  keep it \
separate. I&#39;m a bit undecided about this.<br> <br>
* &quot;KDE Framework&quot; will still exists as an entity and its ABI and API<br>
   compatibility requirement. Only change is the release frequency and the \
introduction<br>  of a stable branch in sync with the other components.<br>
<br>
* Only have one release announcement on our website. We can call it Megarelease<br>
   6.XX like we did for Plasma 6/Gear 24.02 or find a better name. I would avoid \
reusing<br>  Software Collection first because the name is quite technical and second \
because<br>  these was already used in the past.<br>
<br>
Currently this is just a proposal, not a vote proposal or anything like that. \
I&#39;ll be<br> happy to receive positive or negative feedback on this idea.<br>
<br>
Cheers,<br>
Carl</blockquote><div><br></div><div>as i have written, break down the releases into \
smaller chunks, release more often and keep compatibility with older releases. until \
the code is releases it is not valuable to the users.</div><div>release as a mega \
release, then you have one big mega monolith, its just spread out over a gigantic \
code-base spanning hundreds of repositories, its a mess to work with as \
downstream.<br></div><div><br></div><div>hopefully i have not stepped on to many \
toes...<br></div><div><br></div><div>with kind \
regards</div><div>Björn<br></div></div></div>



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

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