KDE/4.11 branched what to do with kde-workspace?
Aaron J. Seigo
aseigo at kde.org
Mon Jul 15 11:27:53 BST 2013
On Saturday, July 13, 2013 23:36:24 David Faure wrote:
> I feel strongly about what kde-workspace should do in the current situation,
> actually, after having gone through multiple solutions with kdelibs:
Welcome to my world.
I feel strongly about what kdelibs should have done. I am not the maintainer,
however, and so I mostly put up with being repeatedly ignored out of respect
for the role of maintainers within KDE. I think the results were a disaster
and I believe it could have largely, perhaps even entirely, been avoided. It’s
not the end of the world, however, and Frameworks 5 will turn out well in the
end.
So please excuse me if I don’t base my thoughts on your input on how to
maintain a module.
> *Minimize disruption*
For whom?
Not for the developers (see below).
Not for our users (a well maintained 4.11 Plasma Desktop is far less
disruptive).
The disruption you mean is for those who build from source, from git master
without tracking what’s going on. Fair enough, they are people too :) For
those using tools like kdesrc-build, I think there is a possible answer (see
below)
However, I don’t think the disruption to these people will be anything like
kdelibs:
Unlike kdelibs, kde-workspace master won’t build against 4.x. it’s pretty
obvious that something is not right if the module doesn’t build; nobody is
going to patch a module they can’t build.
Unlike kdelibs, which pretty much everyone relies on for their applications,
nobody relies on kde-workspace to build their apps.
Unlike kdelibs where a minority (unfortunately) went to work on Frameworks 5,
it is the entire workspace team in coordination and agreement that are going
to do this work so we won’t be fighting against co-contributors about what
should be in a given branch.
Ergo, the disruption is likely to be small, and we’ll do our best to keep it
that way.
> * let master be the branch that will become 4.12, even if you (= the
> workspace developers) don't intend to do more than bugfixing on 4.x, there
> will always be a need to separate "fixes that can go into the next bugfix
> release" and "fixes that need a new i18n", or smallish features contributed
> externally.
We want to do a long term release of 4.11. Something that doesn’t have new
features or new i18n, but which just gets boring old bug fixes and
translations.
Doing a 4.12 / 4.13 makes that infeasible: it would mean continuing to track
the 4.11 branch *and* master *and* the Qt5 branch *and* the eventual 4.12/4.13
branches. That is a recipe for disastrous neglect.
Please, let us focus on 4.11 and Qt5. We can manage that.
I resent people telling us we can do more than we know we can.
> * merging from 4.11 to master is really not a problem. In fact if you don't
> do anything else in master, it will really be trivial.
None of us is concerned about merging branches with git. We do it pretty often
as part of our usual development workflow. Since we know merging 4.11 into
master is trivial if we don’t change master much, then that can’t be the
problem we’re worried about, can it? We haven’t mentioned this as a cause for
concern becauseit isn’t one!
It’s the merge from our Qt5 devel back into master and the branch management
between 4.11, master and frameworks. If you want us to learn from the kdelibs
experience, there it is!
> In comparison, the
> merge from master to frameworks is always going to be infinitely more "fun",
> given all the changes you're going to do to the destination branch.
... which is why we don’t want a frameworks branch!
> Really: "master" is not "where most developers work". master is: the latest
That’s already how we treat master, yes.
> version, but still usable. That's what everyone building KDE from sources
> expects, including all current scripts (kdesrc-build, build-tool, jenkins,
> custom tools, people's heads, etc. etc.). Don’t
I can’t support custom tools or people’s heads, obviously, other than to
communicate.
For tools that use projects.kde.org, however, perhaps we can define the
“current default branch” there?
> create disruption for
> hundreds of people just to save typing a 10-seconds "git merge KDE/4.11"
> every 2 weeks or so in master.
Thanks, but that isn’t what we’re trying to avoid.
We’re trying to avoid having to merge a wildly diverged branch back into
master 7-12 months time when bug fixes and translation changes have also been
landing in that same branch.
We’re trying to avoid having to alter the workflow of the developers involved
in writing the actual code.
> Minimizing surprises also means doing exactly what kdelibs is now doing
> (forget about the initial plan, it failed).
Yes, it failed. The question is whether it was due to the idea itself being
flawed or the implementation of it.
I know that a common trap is to think that an idea failed just because the
implementation wasn’t good enough .. and THIS time we’ll do it right (only to
repeat the failure)
However, in this case, I can point to numerous things wholely unrelated to the
idea itself that led to various aspects of the failure. I don’t think that
discussion is particularly on-topic here, but if you want to discuss it I’m
happy to do so elsewhere.
> And that means: a stable branch,
> a master branch which is basically the same but gives room to new i18n and
> stuff, and a frameworks branch where most of the development happens.
The same lovely mess that kdelibs put itself in? No thanks.
> No changes to anyone's workflow, including translators, testers, powerusers,
> distros, kde-wide bugfixers, etc. The only ones who have to switch to
> another branch is the people switching to a qt5/frameworks based
> development, and these people have a lot more setup to do anyway, the "git
> checkout frameworks" is 1% of it all.
It’s the later merging back into master and the ongoing branch management that
is the problem, not this.
We have enough people to manage one 4.x branchand do frameworks.
We have a number of modules in extragear (and even one or two still in
playground, unfortunately) that we have to track with these changes for Plasma
Active. (We’re addressing that inneficiency in Plasma Workspaces 2, btw.)
The branch housing the frameworks work will nearly immediately become all but
unmergable with 4.x branches: directories will be moving, large numbers of
files going away, lots of new files being added, huge changes to significan
portions of the the code bases. This is fine as long as the parent branch
never changes after we branch for frameworks 5, which would mean a master
just sitting there that you can’t touch which causes even more confusion than
the alternatives; not even rebasing could help us even if git.kde.org allowed
it.
So instead of having something unmergable at the end of it all or having a
locked down master branch, we’re just going to use master for that work.
(Well, branches will contain the work as it is ongoing, but those will be
merged down into master as they complete their topic.)
This is also something we have the manpower to do, and do well.
--
Aaron J. Seigo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20130715/28ecee88/attachment.sig>
More information about the kde-core-devel
mailing list