Re: Re: Fixes in Git (first in stable, then merge to master)

2011-07-23 Thread Martin Gräßlin
On Saturday 23 July 2011 01:42:16 David Jarvie wrote:
 On Saturday 23 July 2011 00:00:16 Nicolas Alvarez wrote:
  There is no active policy saying you're supposed to merge. Almost everybody 
  in KDE is still doing cherry-picks. KDevelop is the only KDE project I know 
  that consistently uses forward-merges from the stable branch to master.
  
  ---
  
  It *would* be good to switch to the new workflow of doing changes in the 
  lowest supported branch and up-merging, but it's not that easy. We need to:
  
  - Figure out how to solve the scripty problem. scripty does its own 
  conflicting commits to .desktop files in both branches, and that won't 
  change[1]. We probably need a custom merge tool for .desktop-like files 
  that 
  ignores translations.
  
  - Check if there is any change in 4.7 that isn't in master, and if so, see 
  if that's intentional (4.7-specific hack, or the version bumps) or an 
  oversight (never cherry-picked into master).
  
  - Do the initial merge from 4.7 to master, solving the conflicts. The more 
  they have diverged, the harder this is.
  
  - Get *everyone* to start with the new workflow for that particular 
  repository (see below). Else, if some people keep cherry-picking while 
  others expect merging, the next one to try merging may get conflicts about 
  all the cherry-picks people did since the last merge, and a merge will make 
  commits appear duplicated in the log (as ossi pointed out to me).
 
 During the stable branch freeze before a minor version release (such as 
 currently before 
the 4.7 release), it isn't possible to commit bug fixes to stable first and 
then merge to master. 
Only master can be committed to, so presumably we'll have to continue to commit 
to master 
and cherry-pick later once the freeze ends. Either that or change the policy on 
freezes.
Seriously: is this technically enforced or is it believed that developers know 
about it?
Personally I have no idea when the stable branch will be tagged or released. I 
commit to the 
stable branch in order to fix a bug and in the hope that it will some day end 
on the users' 
systems. But I do not care when this will happen and I never was blocked 
because of some 
tagging freeze.

So unless this is not technically enforced, the policy are nice words which I 
beleive nobody 
cares about.

Cheers
Martin

signature.asc
Description: This is a digitally signed message part.


Re: Re: Re: Fixes in Git (first in stable, then merge to master)

2011-07-23 Thread Martin Gräßlin
On Saturday 23 July 2011 19:28:53 Ben Cooksley wrote:
  During the stable branch freeze before a minor version release (such as 
  currently 
before
  the 4.7 release), it isn't possible to commit bug fixes to stable first and 
  then merge to 
master.
  Only master can be committed to, so presumably we'll have to continue to 
  commit to 
master
  and cherry-pick later once the freeze ends. Either that or change the 
  policy on freezes.
  Seriously: is this technically enforced or is it believed that developers 
  know about it?
 
 Technically enforced: No
 
 All developers should know about it, as they were sent a set of
 instructions from sysadmin when they gained access to KDE SCM servers.
 A copy of it can be found at
 http://websvn.kde.org/trunk/kde-common/svn/svn_git_instructions.txt?view=markup
 
 It contains a link to
 http://techbase.kde.org/Policies/SVN_Commit_Policy (which also applies
 to git i'll add)
 That has a section Respect commit policies set by the Release Plans.
Please understand that what I pointed out is in no way any disrespect for the 
release team. I 
just want to point out that such community rules can easily be missed if not 
technically 
enforced and that such freezes are very fuzzy and maybe unknown. In comparison 
for 
feature freezes all KDE developers are notified through the cvs mailinglist.
 
  Personally I have no idea when the stable branch will be tagged or 
  released. I commit to 
the
  stable branch in order to fix a bug and in the hope that it will some day 
  end on the users'
  systems. But I do not care when this will happen and I never was blocked 
  because of 
some
  tagging freeze.
 
 
 We have Release Plans published on the wiki, and available as an ics
 file on www.kde.org which matches that for use in Kontact, etc.
The release plan states for final tagging:
The branch is frozen for final release tagging. Only urgent fixes, such as 
those fixing 
compilation errors, should be committed.

Given that all deadlines are due 23:59 UTC I understand that I can commit all 
the day and that 
the tagging appears directly at 00:00 UTC which will immediatelly unfreeze the 
branch for 
fixes to 4.7.1. That is exaggerated, but points out a problem: there is no 
unfreeze date 
specified. Given that Dirk does not tag immediatelly, it is for a developer 
completely 
imprecticale to know when it is allowed again to commit. Without technical 
enforcement such 
freezes just cannot work.

For minor releases there is no freeze at all:
A KDE minor release is tagged and made available to the packagers.

Cheers
Martin

signature.asc
Description: This is a digitally signed message part.


Re: Fixes in Git (first in stable, then merge to master)

2011-07-23 Thread Nicolas Alvarez
Nicolas Alvarez wrote:
 - Figure out how to solve the scripty problem. scripty does its own
 conflicting commits to .desktop files in both branches, and that won't
 change[1]. We probably need a custom merge tool for .desktop-like files
 that ignores translations.

I *think* I managed to write such a merge tool. I still need more testing 
and fixing. For example, if there is an actual file conflict, I'm handling 
it pretty badly right now (no conflict markers or anything).

Also, when merging 4.7 into master, it seems that if a .desktop file was 
only modified in 4.7, git will do the merge automatically, bringing those 
4.7 changes into master, without running the custom merge tool. Those 
changes would be undone again next time scripty runs.

But this seems promising anyway. Stay tuned :)

-- 
Nicolas




Re: Fixes in Git (first in stable, then merge to master)

2011-07-22 Thread Johannes Sixt
Am 7/21/2011 23:22, schrieb Aurélien Gâteau:
 What I have been doing recently to avoid cherry-picking is to create my
 fixes in a separate work branch, then merge the branch in both 4.7 and
 master branches. This way the commits do not have different commit ids.

But this works only if you fork off your topic from a commit that is in
both 4.7 and master, i.e., before 4.7 and master forked. Do you do that?

This is a very reasonable (and git-ish) way to avoid cherry-picks and
still avoid merging 4.7 into master. (But the latter, avoiding to merge
4.7 into master, is very un-git-ish.)

-- Hannes


Re: Fixes in Git (first in stable, then merge to master)

2011-07-22 Thread Nicolas Alvarez
Alex Fiestas wrote:
 Last few days I have been patching some pieces of our workspace here and
 there, the first set of patches I did them directly into master which if
 I remember correctly was against the policy.
 So, the second round of fixes I tried to do it the right way, which is:
 1-Create the patch while using 4.7 (optional I guess)
 2-Test the patch in 4.7
 3-Commit the patch in 4.7
 4-Checkout master branch
 5-Merge 4.7 into master
 
 [...]
 
 So, at this point I'm wondering if the policy is bad or (and this option
 is the more plausible) I don't know how to use the tool.
 
 Cheers and sorry for the cherry-pick's I've done so far.

There is no active policy saying you're supposed to merge. Almost everybody 
in KDE is still doing cherry-picks. KDevelop is the only KDE project I know 
that consistently uses forward-merges from the stable branch to master.

---

It *would* be good to switch to the new workflow of doing changes in the 
lowest supported branch and up-merging, but it's not that easy. We need to:

- Figure out how to solve the scripty problem. scripty does its own 
conflicting commits to .desktop files in both branches, and that won't 
change[1]. We probably need a custom merge tool for .desktop-like files that 
ignores translations.

- Check if there is any change in 4.7 that isn't in master, and if so, see 
if that's intentional (4.7-specific hack, or the version bumps) or an 
oversight (never cherry-picked into master).

- Do the initial merge from 4.7 to master, solving the conflicts. The more 
they have diverged, the harder this is.

- Get *everyone* to start with the new workflow for that particular 
repository (see below). Else, if some people keep cherry-picking while 
others expect merging, the next one to try merging may get conflicts about 
all the cherry-picks people did since the last merge, and a merge will make 
commits appear duplicated in the log (as ossi pointed out to me).

Off to read about custom git merge drivers...

-- 
Nicolas




Re: Fixes in Git (first in stable, then merge to master)

2011-07-22 Thread David Jarvie
On Saturday 23 July 2011 00:00:16 Nicolas Alvarez wrote:
 There is no active policy saying you're supposed to merge. Almost everybody 
 in KDE is still doing cherry-picks. KDevelop is the only KDE project I know 
 that consistently uses forward-merges from the stable branch to master.
 
 ---
 
 It *would* be good to switch to the new workflow of doing changes in the 
 lowest supported branch and up-merging, but it's not that easy. We need to:
 
 - Figure out how to solve the scripty problem. scripty does its own 
 conflicting commits to .desktop files in both branches, and that won't 
 change[1]. We probably need a custom merge tool for .desktop-like files that 
 ignores translations.
 
 - Check if there is any change in 4.7 that isn't in master, and if so, see 
 if that's intentional (4.7-specific hack, or the version bumps) or an 
 oversight (never cherry-picked into master).
 
 - Do the initial merge from 4.7 to master, solving the conflicts. The more 
 they have diverged, the harder this is.
 
 - Get *everyone* to start with the new workflow for that particular 
 repository (see below). Else, if some people keep cherry-picking while 
 others expect merging, the next one to try merging may get conflicts about 
 all the cherry-picks people did since the last merge, and a merge will make 
 commits appear duplicated in the log (as ossi pointed out to me).

During the stable branch freeze before a minor version release (such as 
currently before the 4.7 release), it isn't possible to commit bug fixes to 
stable first and then merge to master. Only master can be committed to, so 
presumably we'll have to continue to commit to master and cherry-pick later 
once the freeze ends. Either that or change the policy on freezes.

-- 
David Jarvie.
KDE developer.
KAlarm author -- http://www.astrojar.org.uk/kalarm


Re: Fixes in Git (first in stable, then merge to master)

2011-07-21 Thread Aurélien Gâteau
Le 20/07/2011 11:52, Alex Fiestas a écrit :
 Hi there
 
 Last few days I have been patching some pieces of our workspace here and 
 there, the first set of patches I did them directly into master which if 
 I remember correctly was against the policy.
 So, the second round of fixes I tried to do it the right way, which is:
 1-Create the patch while using 4.7 (optional I guess)
 2-Test the patch in 4.7
 3-Commit the patch in 4.7
 4-Checkout master branch
 5-Merge 4.7 into master
 
 In theory, this workflow should work (I like it dcvs-wise) but the 
 reality for me was:
 1-A lot of conlicts
 2-Conlicts on software I don't know about
 3-Conflicts in .desktop translations
 4-Something that should be almost instant, is not at all
 
 The result of a merge of 4.7 in master can be observed in the attached 
 screenshot.
 
 So, at this point I'm wondering if the policy is bad or (and this option 
 is the more plausible) I don't know how to use the tool.

What I have been doing recently to avoid cherry-picking is to create my
fixes in a separate work branch, then merge the branch in both 4.7 and
master branches. This way the commits do not have different commit ids.

Aurélien



Re: Fixes in Git (first in stable, then merge to master)

2011-07-20 Thread Oswald Buddenhagen
On Wed, Jul 20, 2011 at 11:52:31AM +0200, Alex Fiestas wrote:
 5-Merge 4.7 into master
 
have you slept the last months? ;)
kde continues to use a cherry-pick policy. *don't* forward-merge.


Re: Fixes in Git (first in stable, then merge to master)

2011-07-20 Thread Martin Gräßlin
On Wednesday 20 July 2011 11:52:31 Alex Fiestas wrote:
 Hi there
 
 Last few days I have been patching some pieces of our workspace here and 
 there, the first set of patches I did them directly into master which if 
 I remember correctly was against the policy.
 So, the second round of fixes I tried to do it the right way, which is:
 1-Create the patch while using 4.7 (optional I guess)
 2-Test the patch in 4.7
 3-Commit the patch in 4.7
 4-Checkout master branch
 5-Merge 4.7 into master
I tried forward-merging till scripty started to process master again. When I 
received such merge 
conflicts as in the screen shot, I gave up, because I just did not know how to 
do that merge in a 
correct way and hoped that someone more git skilled would fix it. Seems like it 
did not happen so 
far :-(

Cheers
Martin

signature.asc
Description: This is a digitally signed message part.