Workflow Idea for 4.10
Kevin Ottens
ervin at kde.org
Fri Mar 16 13:12:34 UTC 2012
On Friday 16 March 2012 12:58:56 Aaron J. Seigo wrote:
> On Friday, March 16, 2012 00:08:04 Kevin Ottens wrote:
> > I've been thinking about the git workflow to be used in KDE Frameworks in
> > the future. Based on observations and discussions with current and future
> > frameworks maintainer, I think that it would be a mistake to force a
> > single
> > workflow for all the frameworks.
>
> is this to make life better for the maintainer or the developers?
Both really...
If I was still maintaining libsolid for instance (so putting virtual
maintainer hat), the very nature of it would make me think that not going for
feature branches followed by merges in an integration branch would be
dangerous (and libplasma, akonadi, kio are in a similar corner I think) and
harder for me to test and review. As a developer? Yes, maybe a bit more work
than putting stuff into master, but comparatively to the complexity of the
component it's understandable.
Now, if I want to contribute a feature in karchive (or kdbusaddons,
kplotting), as a developer it'd look silly to me to have to publish a branch,
get it merged in an integration branch, push the result, wait for approval and
then get that merged in master. Hmm, also probably makes it more work for the
maintainer who'd need to test both the feature branch and the integration
branch to be able to give a enlightened go/no-go. With the low complexity of
something like karchive, everyone would be way better off with a private
branch on the developer side and publishing on reviewboard or discussing on a
pastebin over IRC.
And we have such different products in frameworks. I don't feel like forcing
inadequate workflows on them for the sake of it.
> one thing that git as used by kde has done so far for me is severely limit
> my "occasional hacker" pattern where i dive into a given app or library and
> do a bit of work to scratch an itch. this is because we now have a
> gajillion little repositories and as a result i rarely build them these
> days. this is in large part due to me having kdesrc-build around, but not
> really using it much. why? partly because it's a change in my workflow
> (that takes time) and in part because i now have two workflows: one for the
> KDE projects i work on a lot (where i do no use kdesrc-build, because it is
> not appropriate there) and those that i just track.
Of course transition takes time. Now, I wonder what blocks you with kdesrc-
build though. I personally manage to use it for everything just fine, it's
just that when I jump on a module to work on it I trigger "make" as usual.
Didn't find it disruptive, but I might be missing something.
> with the "let everyone pick a workflow" approach we'll be making this
> absurdely worse for Frameworks. i won't even know what workflow to be using
> when i work on a library, so wave goodbye to my involvement.
Sure, but there's really no good answer here. It's either "Meh, absurd
workflow for this component I'm too lazy to comply to it, wave goodbye to my
involvement" or "Meh, I've to look up the workflow used here I'm too lazy to
do it, wave goodbye to my involvement".
(Of course replace "lazy", by "overworked", "overcommitted", "overwhelmed" as
you see fit)
Now if someone can point me to a workflow which will work on all the spectrum
of components without creating absurd bureaucracy in more than 30% of the
cases I'm all ears. Currently I don't have one.
> given that Frameworks really benefits from the occassional developers such
> as myself fixing things here and there, implementing missing functionality
> here and there, this should be taken seriously.
And it is, but see above.
> i know when i said in the past that my involvement with other projects would
> disipate due to the choices being made around git nobody really cared :)
> well, it's happened, i'm sure nobody still cares .. and that makes me sad.
> because i'm one of many. and by being too focused on tools and maintainers
> rather than developers we are screwing ourselves over.
I'm definitely not focused on tools, hoped my previous email made that clear.
> please disabuse yourself of the notion of "maintainer chooses"
I'll just add a few more thoughts regarding that because of your first
question in this email, which I think was a bait to make me claim that it's to
allow the maintainer to make his life easier against the developer comfort (in
case anyone still wonder: no it's not the motive).
As I tried to make clear above, I think what's critical is to have for a given
component the right workflow for it. The nature of the components varying
greatly, their needs regarding the workflow vary as well. So a workflow will
have to balance quality of the outcome vs level of bureaucracy.
Now the component itself not being able to tell us what workflow fits best, we
have to rely on someone ultimately making the choice. And here the assumption
is that the maintainer is among the people with the best overview of the
component hence relying on him to pick a solution out of the shortlist. Now of
course I'd rather encourage people doing that by consensus instead, but you
need to bootstrap somehow.
> and work on a
> single workflow that all of Frameworks will adhere to for the sanity of all
> future developers.
Well, I'm not yet loosing hope to find one in the end. :-)
But my email was more to point out that a) there's a dimension we forgot to
take into account when designing the current workflow (the large variability
of the components we produce) and b) the current proposed "one size fit all"
workflow doesn't cut it for every cases.
I discovered that while discussing with people who will end up being either
maintainers or developers in the KDE Frameworks world (I find important to
have both views for decision taking). That's why on that topic for now I've
not been pushing hard in frameworks yet. Ideally we'll settle on a final
solution (be it an ultimate workflow, or a shortlist, or something else) when
we split the repositories.
Your email sounded a bit like "here, here people we have a definitive solution
used by frameworks as well" so it felt sane to counter balance a bit because
of what got found in the trenches in the meantime. We're not there yet
unfortunately.
> seriously, this is the "should we have a coding style?" discussion all over
> again, isn't it?
Not really IMO. The coding style is about the look of the outcome, while the
workflow is about how one works. And that makes quite a difference IMO.
> > [1] And before any "we should always branch" zealot cringe (not blaming
> > you, been there as well), please take a few minutes and read[2]:
> > http://martinfowler.com/bliki/FeatureToggle.html
>
> i honestly can't imagine a worse idea for a library like libplasma.
Hehe, I didn't mean to imply it'd be relevant to libplasma specifically. It
was meant for emphasizing the fact that "merging feature branch" as the one
true ways to do things "because we now have git" is likely a wrong position.
That's why I generally like Fowler's writings, they're non dogmatic. And he
tries to point out in which scope a given technique will work or not, so that
you can choose what's right for your context.
Regards.
PS: As you can see from my email the trail I'm following ATM is "profile of
the component" to pick a workflow. I think there's still one or two trails I
can look at (profile of the contributor, profile of the contribution). So
yeah, still some options...
--
Kévin Ottens, http://ervin.ipsquad.net
KDAB - proud patron of KDE, http://www.kdab.com
-------------- 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/plasma-devel/attachments/20120316/2ac6c71e/attachment-0001.sig>
More information about the Plasma-devel
mailing list