Request: remove libkactivites from kdelibs (in experimental/)
Kevin Kofler
kevin.kofler at chello.at
Sat Nov 12 09:35:02 GMT 2011
Aaron J. Seigo wrote:
> first, let's back off from the unecessary rhetoric. for instance, i don't
> think calling people hypocrites is going to get anyone anywhere other than
> annoyed, upset and divided. i hope we can agree on that.
Unfortunately, it's the decision by some kdelibs developers including you to
stop everyone from working on kdelibs 4.x which is annoying, upsetting and
dividing people.
I don't want to offend you, but to make you realize this fact.
I am sorry if I come off as rude, it's really not my intention, but you have
to realize that I'm really frustrated by this situation.
> On Friday, November 11, 2011 04:58:09 Kevin Kofler wrote:
>> You cannot really FORCE volunteers to work on what you want them to work
>> on.
>
> no, but we can decide to work together and coordinate instead of working
> against each other, particularly when we share the same final interests.
Working together goes both ways, you also have to listen to our needs.
Nobody who doesn't read kde-core-devel daily and who didn't happen to be at
the in-person meeting you discussed this in was even aware of your post-4.7
plans, let alone asked for their opinion. In particular, nobody asked us
distro people for it: I don't recall any sort of notice about this issue to
kde-packager. Yet scheduling is definitely something which needs to be
discussed with distro packagers.
The need in my case is that we are going to ship my feature in Fedora 17
(This is not negotiable. It's already a release later than I had initially
hoped for, but at least in Fedora, missing a freeze window only delays you
for 6 months. I really miss the time where the same thing was true for all
the KDE SC modules. Sadly, judging from the kdepim fiasco first and now
this, it looks like Shuttleworth's lecture on how important predictable
periodic releases are for us distributions already got forgotten!) and that
IMHO it would have been better for everyone if it had been upstream by then.
There is obviously no way we can ship a Plasma based on libplasma from
Frameworks in Fedora 17, so 4.8 was and is the target. And when I submitted
my GSoC proposal, I didn't even THINK that there'd possibly be no kdelibs
4.8, or one with no new features allowed. In fact I only heard of this after
my patches to PackageKit and Apper were all already finished and applied
upstream (which proved to be very straightforward, unlike libplasma where I
hit a brick wall).
> note that your statement is the same as saying that as a volunteer i can
> then commit anything i want to your application / library, which is,
> obviously, not true. there are means of process control, particularly
> maintainership.
Sorry, but for me, keeping other people from doing their work is a sign of
bad maintainership. I don't dispute that a maintainer is ALLOWED to do so,
but that doesn't make it a good idea. The fact that this topic comes up
again and again (see e.g. today's threads about ksecretsservice) proves that
several people have a concrete need for doing work on kdelibs 4.x. Instead,
they're forced to work around you (plural "you"!) when you could easily
allow them to work WITH you. (Again, working together goes both ways,
closing down the branch people want to commit to is NOT working WITH them.)
> note that the decisions which i am simply repeating and asking people to
> respect were made this past summer in a meeting of some 30 libs
> contributors
In-person meetings (a.k.a. the infamous "watercooler discussions") are about
the worst possible place to take decisions in a global community project
with many volunteer (and thus necessarily part-time) contributors.
> and then brought here to k-c-d for further discussion.
That's a more appropriate forum, but why hasn't anybody notified e.g.
kde-packager? And even then, there will always be people who missed the
discussion, which is another reason why reconsidering decisions based on new
evidence is sometimes needed.
I think the sample of developers included in your discussions suffered from
heavy selection bias, as (for various reasons) those people interested in
4.x work aren't the ones who go to your long-term planning meetings nor the
ones who watch kde-core-devel daily. (I wasn't following it at all when this
was initially discussed.)
> to ignore would be disrespectful of the time honoured principles in KDE.
No, it would simply be realizing you made a mistake!
>> Preventing them from working on what THEY want to work on will just lead
>> to them moving their work elsewhere, e.g.:
>
> well, that's exactly what i hope will happen. i hope they will movetheir
> work into frameworks (either the branch if working on existing code or a
> git repository that will become part of frameworks)
Putting the work into frameworks (only) is obviously not a solution for code
we want to ship now.
>> * separate git repositories (which in fact is exactly what you are doing
>> with libkactivities!
>
> yes, because that is the shape the frameworks will take: seperate
> repositories (easily fetched and built all at once, however, so no loss in
> "build it all" / "work on it all" efficiencies). the reason libkactivities
> is now in its own repository, along with its runtime requirements i might
> add, is to fall in line with what the frameworks plan is (not all of which
> i personally agreed to at first, btw .. life and big projects are full of
> being able to work with others, including at times agreeing with the group
> of skilled, intelligent people who have the same interests and goals as
> you do)
Yet your libkactivities repository targets (also) 4.x, and you're sneaking
it in as a dependency of kde-workspace 4.8, as a result bypassing the "no
new kdelibs features for 4.8" policy on a technicality, and leaving us
packagers to deal with the resulting chaos (2 versions of libkactivities for
4.x).
Yes, I realize that you need the new stuff for Plasma Active. But why is
Plasma Active considered so important that the features it wants can get
into 4.x, but the not the traditional GNU/Linux distributions which have
thousands of times as many users? (You can dispute the usefulness of MY
feature (I think it's important, but I'm biased, obviously), but what about
the KSecretsService work? That's cross-desktop interoperability work we
distro people are all waiting for!)
>> * distro patches (which you keep complaining about, yet it is exactly
>> what the "frozen master" debacle is leading to),
>
> can you point us to these patches so we can deal with them?
You know those patches very well, they're sitting in your ReviewBoard.
> it's a possibility. we could also choose to work together towards commonly
> beneficial aims. i suppose it is up to us to decide whether it is more
> important to work on the future of kdelibs together (following the team-
> generated decisions) or to put new features into kdelibs for the 4.8
> release.
IMHO this is a false dichotomy. I don't see why we can't do both, especially
since the people involved are NOT the same people. (Otherwise we wouldn't
have this discussion in the first place.)
> at stake is kdelibs progressing and staying relevant in the coming years
> or
Or what? ;-)
I don't agree that continuing kdelibs 4.x work for a few additional releases
would make kdelibs not progress or become irrelevant in the coming years.
>> (But don't get me wrong, I'm NOT interested in keeping 4.x alive for
>> ages, I'm just interested in 4.x NOW because 5.0 isn't anywhere near
>> ready, even
>
> this is the same argument people used for 3.4 and 3.5. it marred the early
> 4.x releases (along with a few other related issues).
I also don't agree with this strong claim. I can't see any evidence to
support it. The issues with the early 4.x releases were due to the sheer
amount of changes, which as you say should not be an issue for 5.x.
Plus, the issues with the early 4.x releases are one of the things which
made continued 3.5 support necessary and very welcome! But even if 4.0 had
been perfect, stopping kdelibs 3.x feature development back when 4.0
development got initially STARTED would have hurt 3.5 a lot. In any case, I
doubt doing that would have improved 4.0 any. (I also think 4.0 wasn't THAT
bad.)
I also need to remind you that (as I already wrote once) libraries have a
much longer shelf life than the rest of the SC: We shipped 4.0 in Fedora 9,
but most of our applications were still kdelibs3-based and benefited from
the kdelibs3 development which was still done at the time! The kdelibs3
improvements also improved our 4.0-based distribution release and thus the
public's perception of 4.0. And we still ship kdelibs3 now.
> we can avoid repeating those mistakes by learning from them.
For that, we first have to identify them. My perception is that the main
mistake in 4.0 was that too many things got rewritten or refactored.
> * Qt5 is not Qt4: it isn't a huge burdon to port things over. the code and
> API is essentially the same.
That also implies that forward-porting features developed against kdelibs
4.x shouldn't be all that hard.
> * we aren't going for "add lots of huge new functionality blocks" (e.g.
> solid, phonon, threadweaver, sonnet, etc. etc. etc.); this is a
> maintenance reorganization, an opportunity to merge functionality into Qt5
> (which has a definite time deadline, btw, which we need to meet or else we
> lose that opportunity entirely) and a chance to alter some behaviour in
> our code that is most appropriate for a major release (though some things
> of this nature could be done post 5.0 as well)
>
> this means we have a very reachable goal (not years of work during which
> time kdelibs 4.x will stagnate to death) and we have deadlines we're
> working against (qt 5 ABI change window).
Merging functionality usually means adding NEW API/ABI, not changing
existing one, so it should be possible in later 5.x releases' feature
windows as well, this doesn't necessarily have to happen in the ABI change
window.
> but it only happens if we focus on frameworks instead of kdelibs 4.x. bug
> fixes are still fine. and we'll all live just fine without new features in
> kdelibs for a couple releases. we have done so in the past, we will do so
> again in the future. applications have all sorts of features missing and
> needed.
I think we're already very slow at delivering features to our users (it can
take up to a year if the timing is unfortunate), having a couple release
series (for me, a "release" is e.g. 4.7.3, 4.7 is a "release series") with
no new features at all is going to make this unbearable.
As I already stated back in the early 4.x era, I actually think we need to
find ways to get popular features to our users faster, e.g. by allowing
uninvasive features into point releases as was done in the 3.5.x series. But
most definitely we should not add MORE delays!
>> when we're just talking about the libraries/frameworks, let alone when we
>> actually consider applications and/or workspaces building on the new
>> libraries/frameworks.
>
> do you know what that work will entail, or are is this just guessing and
> supposition on your part? because it's not going to be as big as one might
> think due to the SC goals. (plasma workspaces will have some work involved
> as libplasma2 is undergoing some important changes due to QtQuick2)
Well, what is your ETA?
Do you think Plasma Desktop will be ported to KDE Frameworks 5.x in time
for:
* Fedora 17? (April-May 2012)
* Fedora 18? (October-November 2012)
* Fedora 19? (April-May 2013)
* Fedora 20? (October-November 2013)
etc. (You get the pattern.)
Also, do you think the ETA will be more dependable than the one for 4.0
which kept getting pushed back again and again?
>> And I believe that most, if not all, people interested
>> in 4.x work right now are in that boat, I doubt 4.x is going to suscite
>> anywhere near the amount of long-term nostalgia 3.x did. We WILL
>> eventually work on 5.x. Just not NOW.)
>
> when, then? after Qt 5 can no longer accept ABI changing merges?
Well yes, after Qt 5 is actually in a state where it can be packaged, so we
can develop against a Qt 5 package rather than having to build all of Qt
from source to develop kdelibs. A framework with unstable ABI is very badly
suited for packaging.
> and why not now?
Because doing the work now means that, in order to do any sort of testing on
it, I have to build everything from source (and on my own machine, because I
can only use the Fedora build system on stuff that is packaged): the
dependencies (including Qt 5 when you'll start requiring it, if you didn't
already), KDE Frameworks and Plasma Desktop (because Frameworks is not a
binary-compatible drop-in replacement for kdelibs 4.x, obviously, so I can't
test anything without also building a matching Plasma Desktop; corollary:
Whenever Plasma Desktop doesn't compile against Frameworks, I cannot
actually do any runtime testing of my feature!).
If, on the other hand, I wait until we decide what Fedora n will carry the
new Plasma Desktop and import snapshots or prereleases of it after Fedora
n-1 branches, I only have to add a patch to the Rawhide package, send it to
Koji until it builds, then runtime-test it using the nightly live CDs Fedora
composes automatically, which is much less resource-intensive on my end, and
the feature will still end up in the same Fedora release.
So please realize that the timing of doing the work significantly affects
the workload involved for me.
By the way, the way I tested the patches against 4.x is that I applied them
to a kdelibs 4.6.5 (!) package, built it and fixed the patches until it
compiled, then upgraded my notebook's system kdelibs to the patched version.
Obviously, this way of working won't work for Frameworks (now). (That's one
reason why I did the work against 4.x.)
But anyway, whether I do the work for 5.0 now or not, that still leaves the
issue that I need it in 4.x as well for Fedora 17 (and 18 etc. up to "n-1").
>> In addition, this situation might actually push some contributors NOT to
>> work with you on 5.0 material.
>
> we already have that situation, don't we?
All the worse.
>> I can tell you that your refusal to get my
>> libplasma PackageKit work into 4.8 definitely did demotivate me from
>> doing any work on the 5.0 version.
>
> i'm sorry you reacted that way. more productive might be to consider that
> as your work was indeed reviewed, accepted and welcomed that having it
> debut in frameworks 5 is a great thing.
Sure, it's going to be a great thing for Fedora because we will be able to
advertise the new feature months (years?) before you. If I really cared only
about Fedora as you're insinuating, I'd LOVE this. But actually, what I see
is that this situation is going to suck for everyone else, which is why I
fought again and again for getting my feature into 4.8. We have this nice
feature, it is all already implemented and ready, why can't we offer it to
our users? From a user's perspective, this makes no sense whatsoever.
> focus on the development and progress rather than the negatives in the
> tradeoffs. there are ALWAYS tradeoffs, such as: "if we decide to make this
> a '4.8 or else i quit!' power struggle and we refuse to work together on
> frameworks 5,
Please don't misunderstand me, I'm not running away (yet ;-) ), I still do
want my feature in 5.x as well, this just dropped by several spots in my
(long!) priority list due to the way it was received (also because I think
that whether this gets into 5.x now or later won't actually change much in
practice: I'll still have to ship my patch against 4.x, and our users (and
the other distros' users, i.e. basically all users) will get the feature in
5.x even if it's ported later, considering that there is no release in the
immediate future anyway).
If you had said "make a version for 5.x and we'll accept it into 4.x as
well", that would have been a motivation to do the 5.x work (and I'd have
actually understood that requirement; feature regressions are something I
can't stand at all!). But doing it for 5.x ONLY is not of any practical
interest to me (yet).
> then we end up missing the Qt5 merge opportunities, we'll lose
> opportunities to have our libraries used in other Qt5 aps and efforts in
> the mobile area will be utterly fucked." there are always tradeoffs. let's
> examine which are best to take and then move in that direction without
> fear and with each other's support.
What is there left to examine? You make it very clear that your decision was
already taken and is not negotiable.
I would have loved actually discussing the issue with you before the
decision was taken, but I wasn't asked! And now you're actually asking me to
move in YOUR direction, which is quite a different thing from "examin[ing]"
(together ("let's")) "which [tradeoffs] are best to take and then mov[ing]
in that direction without fear and with each other's support".
By the way, I also don't think that allowing applications to pick pieces of
kdelibs / KDE Frameworks à la carte (and otherwise be Qt-only) is a good way
to promote an integrated experience. I think that there should be one KDE
Framework rather than KDE Frameworks, and that Qt-only apps are part of the
problem, not the solution. (One way to get rid of them might be to merge a
fork of Qt into kdelibs (and actually link it into the same libraries, i.e.
merge the libraries rather than splitting them!), which would also allow
reducing code duplication by removing Q* classes which have a better K*
alternative, and which would make Qt-only applications be as foreign on KDE
Plasma as GTK+ apps, making it a less attractive option for developers.) I'm
also worried by the current "reduce dependencies" trend, which strikes me as
a euphemism for "reduce code reuse" and/or "reduce integration". I think
that everything depending on everything is/was a GOOD sign, it means we
reuse(d) code and we care(d) about integration and consistency. And finally,
I think the focus on the mobile platform hype at the expense of the
traditional desktop (desktop computer or notebook computer) is also a
worrying trend. But this is getting very much off topic.
>> That said, considering the 4.8 release schedule, it is now really too
>> late to reopen kdelibs 4.8 for feature development anyway. :-( It should
>> have been done when I originally asked for it a month ago (or even
>> better, it should never have been closed down in the first place!).
>
> please do not rewrite history. see my comment from 3 months ago on August
> 11 to your initial review request:
>
> https://git.reviewboard.kde.org/r/102291/
That review request came only after I had already done the GSoC proposal and
the development on all the dependencies, with only the last, but crucial,
piece (in libplasma) missing, and in fact started to work on that piece as
well (since the review request was the first part of it).
> "this work needs to shift to being written against the frameworks branch,
> and then only after libplasma2 has been merged into it. note that in
> libplasma2, there is no PackageMetadata class and the install package
> routine has moved into PackageStructure as well."
So for one thing, I had (mis)taken that to mean that you want this to be
developed in frameworks FIRST, as opposed to ONLY in frameworks.
And besides, I had to develop the 4.x version anyway, because that's what we
will ship in Fedora 17. Which is another reason why I finished the work
against 4.x even though the rumors about the freeze started trickling out.
> you were given a heads up not a month ago, but 3 months ago
The "a month ago" refers to when I sent the thread to kde-core-devel. I
realize it was late, but I had hoped (in vain) that the decision would have
been obviously overturned, given how much it makes absolutely no sense to
me. Now I regret not having spoken up sooner, though I'm not sure it'd have
helped anyway.
> along with the offer of help to make that merge happen.
Merge into a branch I wasn't and still am not interested in, because it will
not be shippable in our Fedora 17 release.
Kevin Kofler
More information about the kde-core-devel
mailing list