on the impending gittness of our source code

Chani chanika at gmail.com
Sat Dec 18 11:28:46 CET 2010


On December 14, 2010 02:21:29 Aaron J. Seigo wrote:
> hey all ...
> 
> so. we'll be on git, at least partially, in a little over a week.
> 
> short term pragmatisms
> ===================
> 
> it looks quite likely that there is going to be a very awkward time between
> then and 4.6.0 where feature development will happen in git, but bug fixes
> need to be applied to svn. i think it would be good if everyone switched
> over to git when it becomes available, but for as many of us as possible
> to keep an svn checkout around as well so that we can make sure that bug
> fixes made in git make it into svn.
> 
> we will need to coordinate on this, though i'm unsure what's the best way
> quite yet. i can't think of a better way than "manually watch commits in
> git, make sure corresponding commits for bugfixes get made to svn". any
> better ideas?

meh, I don't think this is a big deal; I already have such a setup for 
backporting from git-svn.
we've always had the possibility that people forget to backport; this just 
makes the barrier to backporting slightly higher, so I expect we'll see more 
"please backport" messages. ...hrm, now that I think about it, I haven't seen 
such a message in quite a while :) I guess everyone's learnt to use 
svnbackport. (that or they don't think of it at all..?)

> 
> as the FEATURE:, BUG:, IMPROVEMENT: approach has been working out nicely
> (though we need some more discipline in the matter to really get good
> coverage), i'd like to continue this as we move to git. one small change,
> howevr: the "BUG:" entry needs to go in the summary line

why? :)

> 
> 
> development workflow
> =================
> 
> at the last irc meeting we didn't come to a final conclusion for how we
> wanted to handle branches for development. well, we need to figure this
> out soon, so ...
> 
> i'd like to see the following principles:
> 
> * have a staging repository where bug fixes land and feature branches are
> merged into. this is what most of us will use for day-to-day testing and
> usage
> 
> * use the "main" repository in git.kde.org for release only; staging will
> get merged in on a regular basis (e.g. when we are happy with the results)

say, after each successful feature merge? or on a weekly basis (unless 
something's too big and needs more stabilizing)?

> 
> * feature branches: if it's more than an hour's work, start a feature
> branch. all feature branches would hang off of the staging repository (or
> personal repos if so desired?)
> 
> any objections to the above?

damnit aaron, stop reading my mind ;) I had an email I forgot to send, that 
says essentially the same thing. one repo for official release branches 
(master being a perpetual beta), one for integration and feature branches.

sysadmins: we'd need the ability to easily create and delete branches on the 
staging repo.

> 
> now where i'm still undecided:
> 
> * a bug fix branch on the staging branch which would follow staging
> (probably through regular rebasing) where bug fixes would go. these would
> then be merged into staging and when that's proven itself, merged into the
> release branch. alternatively, bug fixes could be done in branches on
> release and when ready, merged into release and then into staging? another
> alternative would be to do with cherrypicking bug fix commits? my main
> goal is to make merging of bugfixes (which may be several commits in
> total) easy and trouble-free. mixing them with features is going to make
> life harder.

ah yes, I was unsure about bugs too :P
there are three locations that bugfixes will eventually want to land: release 
master, release branch (eg. 4.5.x), and staging master.

having them on the release repo *might* make it easier to get people to test 
them? I'm not sure. what are the pros and cons of having them on staging?

I *think* that the majority of bugfixes are straightforward, and can be merged 
directly into all three places (or as many as apply). it's the tricky back-
and-forth ones that you'd want a branch for.

I remember quite a while ago, during some git migration talk, qt people were 
talking about how they forward-port instead of backporting bugfixes, and 
seemed to think it was a better workflow. I'd be interested in hearing more 
about that, if anyone can explain it. :)

> 
> * how to communicate what feature branches there are in progress and the
> status of them. i don't want feature branches to become little caves that
> our work gets lost in, like so many hermits. i'm tempted to put together a

this is why I am very much in favour of having a 'staging' repo where we all 
keep our feature branches. No personal clones. Then I can see all the feature 
branches with a "git branch -r" :)

the only downside is that we'll have to prune it from time to time, so that 
the list is a list of active feature branches, not a full history. (deleting a 
merged branch doesn't delete its commits, so I think that small information 
loss is acceptable)

> shared "work board" in a sort-of, kind-of kanban style where we throw up
> todos, move them into various "in progress" states along with the branch
> they are worked in, and move them out when they are complete. it would
> have to be something very easy to use, though, so it actually increases
> efficiency ;)

I would love this too. I've tried to use the wiki for it but somehow it just 
seems like too much effort to maintain, and I quickly revert to my private 
text files.

-- 
Chani
http://chani.ca
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/plasma-devel/attachments/20101218/0c4356f8/attachment-0001.sig 


More information about the Plasma-devel mailing list