<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 <<a href="mailto:carl@carlschwan.eu">carl@carlschwan.eu</a>> 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.. 'master' 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 'block' 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'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 'upstream' 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'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'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'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'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'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 "KDE" being recognized as the software instead of the<br>
  community. This unfortunately didn't really work out, everyone is still using<br>
  KDE to refer to the desktop. Even distros call their edition "KDE" and I don't blame<br>
  them, it's difficult to find a better term than that as for example "Fedora KDE Spin"<br>
  not only contains Plasma but also a lot of KDE apps. Splitting the releases won'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'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'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'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'm a bit undecided about this.<br>
<br>
* "KDE Framework" 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'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>