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 <c...@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

Reply via email to