Translation commits pushed when rolling a tarball

2014-07-31 Thread Sébastien Wilmet
Hi,

At some rare occasions, especially after the string freeze, translation
commits are pushed when rolling a tarball for making a new release.
Since the commit for the release should be pushed only when 'make
distcheck' has succeeded, there can be a push conflict and the
maintainer have to repeat the process (sometimes several times).

I think it would be nice to send mails on gnome-i18n and gnome-doc-list
to explain that commits should not be pushed during the release days. If
a translation or documentation commit is important, the maintainers can
anyway be contacted on IRC to know if the commit can be pushed.

I think there is no equivalent of 'svn lock' for git, so sending a mail
is a solution.

Bonus point is to add a warning on l10n.gnome.org, but it is more work.

What do you think? Is it too rare to care about this problem?

Sébastien

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-01 Thread Zeeshan Ali (Khattak)
On Thu, Jul 31, 2014 at 5:24 PM, Sébastien Wilmet  wrote:
> Hi,

Hi,

> At some rare occasions, especially after the string freeze, translation
> commits are pushed when rolling a tarball for making a new release.
> Since the commit for the release should be pushed only when 'make
> distcheck' has succeeded, there can be a push conflict and the
> maintainer have to repeat the process (sometimes several times).
>
> I think it would be nice to send mails on gnome-i18n and gnome-doc-list
> to explain that commits should not be pushed during the release days. If
> a translation or documentation commit is important, the maintainers can
> anyway be contacted on IRC to know if the commit can be pushed.
>
> I think there is no equivalent of 'svn lock' for git, so sending a mail
> is a solution.
>
> Bonus point is to add a warning on l10n.gnome.org, but it is more work.
>
> What do you think?

+1.

> Is it too rare to care about this problem?

I don't think so but being a maintainer for years, you'll learn to do
`git push origin master` first always. :)

-- 
Regards,

Zeeshan Ali (Khattak)

Befriend GNOME: http://www.gnome.org/friends/
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-01 Thread Olav Vitters
On Thu, Jul 31, 2014 at 05:24:55PM +0200, Sébastien Wilmet wrote:
> I think there is no equivalent of 'svn lock' for git, so sending a mail
> is a solution.

I think we could add something as equivalent to svn lock. It takes a bit
of time to setup though, and damned lies (l10n.gnome.org) would have to
be able to handle errors from git.gnome.org.

If enough devs speak up I could maybe make something to lock a
repository against pushes. Maybe with a timeout, maybe not. With SVN
anyone could force a lock to be removed. Not sure of what is best. I
assume a lock should at most be held for 2 hours.

I'd appreciate a bit of insight from some tarball creators aka
maintainers :-P

-- 
Regards,
Olav
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Translation commits pushed when rolling a tarball

2014-08-01 Thread Kalev Lember
On 08/01/2014 05:22 PM, Olav Vitters wrote:
> I'd appreciate a bit of insight from some tarball creators aka
> maintainers :-P

I personally don't mind at all if someone pushes translation fixes while
I'm rolling a tarball. It's not really much of a problem for me to run
'make distcheck' once more to pick up additional translation goodness.

-- 
Kalev
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Translation commits pushed when rolling a tarball

2014-08-01 Thread Sébastien Wilmet
On Fri, 2014-08-01 at 18:40 +0200, Kalev Lember wrote:
> It's not really much of a problem for me to run
> 'make distcheck' once more to pick up additional translation goodness.

For stable releases taking the latest translations is important, but for
unstable releases it's not a big deal if the translation is for the next
beta.

Making releases is not the funniest part of a maintainer work, even if
push conflicts are rare (at least for me), the fact that I know it can
happen doesn't put me in a comfortable position when rolling a tarball
(it's more on the psychological side).

Sébastien

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-01 Thread Sébastien Wilmet
On Fri, 2014-08-01 at 11:31 +0200, Zeeshan Ali (Khattak) wrote:
> I don't think so but being a maintainer for years, you'll learn to do
> `git push origin master` first always. :)

'make distcheck' sometimes fails, for example a file which is not
distributed in tarballs.

Maybe GNOME Continuous could run 'make distcheck' on (almost) every
commit? To detect such errors earlier than the release day.

Sébastien

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-02 Thread Ekaterina Gerasimova
On 01/08/2014, Zeeshan Ali (Khattak)  wrote:
> On Thu, Jul 31, 2014 at 5:24 PM, Sébastien Wilmet  wrote:
>> Hi,
>
> Hi,
>
>> At some rare occasions, especially after the string freeze, translation
>> commits are pushed when rolling a tarball for making a new release.
>> Since the commit for the release should be pushed only when 'make
>> distcheck' has succeeded, there can be a push conflict and the
>> maintainer have to repeat the process (sometimes several times).
>>
>> I think it would be nice to send mails on gnome-i18n and gnome-doc-list
>> to explain that commits should not be pushed during the release days. If
>> a translation or documentation commit is important, the maintainers can
>> anyway be contacted on IRC to know if the commit can be pushed.
>>
>> I think there is no equivalent of 'svn lock' for git, so sending a mail
>> is a solution.
>>
>> Bonus point is to add a warning on l10n.gnome.org, but it is more work.
>>
>> What do you think?
>
> +1.
>
>> Is it too rare to care about this problem?
>
> I don't think so but being a maintainer for years, you'll learn to do
> `git push origin master` first always. :)

As someone who makes releases, I always prefer to have the latest
translation in the release, but I understand that running a distcheck
on some of the larger projects can take a long time.

From a documentation point of view, it doesn't make sense to block
pushes for a whole day, especially as some maintainers release very
late. Have you considered dropping an email to
gnome-doc-l...@gnome.org and gnome-i...@gnome.org lists before running
the distcheck? I found communicating with translators to be very
effective and the docs team would prefer communication over a ban.

> --
> Regards,
>
> Zeeshan Ali (Khattak)
> 
> Befriend GNOME: http://www.gnome.org/friends/
> ___
> desktop-devel-list mailing list
> desktop-devel-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/desktop-devel-list
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-02 Thread Zeeshan Ali (Khattak)
On Sat, Aug 2, 2014 at 9:37 AM, Ekaterina Gerasimova
 wrote:
> On 01/08/2014, Zeeshan Ali (Khattak)  wrote:
>> On Thu, Jul 31, 2014 at 5:24 PM, Sébastien Wilmet  wrote:
>>> Hi,
>>
>> Hi,
>>
>>> At some rare occasions, especially after the string freeze, translation
>>> commits are pushed when rolling a tarball for making a new release.
>>> Since the commit for the release should be pushed only when 'make
>>> distcheck' has succeeded, there can be a push conflict and the
>>> maintainer have to repeat the process (sometimes several times).
>>>
>>> I think it would be nice to send mails on gnome-i18n and gnome-doc-list
>>> to explain that commits should not be pushed during the release days. If
>>> a translation or documentation commit is important, the maintainers can
>>> anyway be contacted on IRC to know if the commit can be pushed.
>>>
>>> I think there is no equivalent of 'svn lock' for git, so sending a mail
>>> is a solution.
>>>
>>> Bonus point is to add a warning on l10n.gnome.org, but it is more work.
>>>
>>> What do you think?
>>
>> +1.
>>
>>> Is it too rare to care about this problem?
>>
>> I don't think so but being a maintainer for years, you'll learn to do
>> `git push origin master` first always. :)
>
> As someone who makes releases, I always prefer to have the latest
> translation in the release, but I understand that running a distcheck
> on some of the larger projects can take a long time.
>
> From a documentation point of view, it doesn't make sense to block
> pushes for a whole day, especially as some maintainers release very
> late. Have you considered dropping an email to
> gnome-doc-l...@gnome.org and gnome-i...@gnome.org lists before running
> the distcheck? I found communicating with translators to be very
> effective and the docs team would prefer communication over a ban.

You mean send them email to not push translations? Are they all on
those lists and read their inbox each time before pushing changes? If
so, sure but then again the main issue (at least for me) is forgetting
(to run `git push master` rather than `git push master RELEASE`) so I
don't know what adding an additional manual step to remember would
achieve.

-- 
Regards,

Zeeshan Ali (Khattak)

Befriend GNOME: http://www.gnome.org/friends/
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-02 Thread Sébastien Wilmet
On Sat, 2014-08-02 at 09:37 +0200, Ekaterina Gerasimova wrote:
> Have you considered dropping an email to
> gnome-doc-l...@gnome.org and gnome-i...@gnome.org lists before running
> the distcheck? I found communicating with translators to be very
> effective and the docs team would prefer communication over a ban.

With an equivalent of 'svn lock', there can be a friendly message
explaining that a developer is creating a release, and that the commit
can be pushed later (e.g. the following day). It is anyway temporary. I
wouldn't use the word "ban", I prefer the word "temporary lock", it is
less negative. Docs and translations commits are more than welcome, you
do a great job! It is just that the push conflicts can be a little
annoying.

But if each maintainer sends a mail to announce the distcheck to the
translation and doc teams, you'll receive hundreds mails, it doesn't
scale. Another mail should also be sent when the distcheck is finished.
Sending such mails is not convenient for the maintainer, and it assumes
that those mails are read as soon as they are sent.

Sébastien

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-02 Thread David King

On 2014-08-01 23:40, Sébastien Wilmet  wrote:

On Fri, 2014-08-01 at 18:40 +0200, Kalev Lember wrote:

It's not really much of a problem for me to run
'make distcheck' once more to pick up additional translation goodness.


For stable releases taking the latest translations is important, but for
unstable releases it's not a big deal if the translation is for the next
beta.

Making releases is not the funniest part of a maintainer work, even if
push conflicts are rare (at least for me), the fact that I know it can
happen doesn't put me in a comfortable position when rolling a tarball
(it's more on the psychological side).


It is not a problem for me, neither a psychological or an actual one (I 
cannot remember a time when a translation commit has been pushed while I 
ran distcheck, but conceivably it could have happened), so I would 
rather keep the behaviour simple, as it is now.


--
http://amigadave.com/


signature.asc
Description: Digital signature
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-02 Thread Sébastien Wilmet
On Fri, 2014-08-01 at 17:22 +0200, Olav Vitters wrote:
> I think we could add something as equivalent to svn lock. It takes a bit
> of time to setup though, and damned lies (l10n.gnome.org) would have to
> be able to handle errors from git.gnome.org.
> 
> If enough devs speak up I could maybe make something to lock a
> repository against pushes. Maybe with a timeout, maybe not. With SVN
> anyone could force a lock to be removed. Not sure of what is best. I
> assume a lock should at most be held for 2 hours.

Would be a nice-to-have thing. I personally have a script for creating
the tarball in one command (after creating the commit). It does a git
clean, make, make distcheck etc. So the lock/push/unlock can easily be
added to such a script, without adding more manual steps.

> I'd appreciate a bit of insight from some tarball creators aka
> maintainers :-P

In gedit it has already happened to have to distcheck 3 times due to 2
translation commits pushed. So this is something that *can* happen.

Sébastien

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-02 Thread drago01
On Sat, Aug 2, 2014 at 2:24 PM, Sébastien Wilmet  wrote:
> On Sat, 2014-08-02 at 09:37 +0200, Ekaterina Gerasimova wrote:
>> Have you considered dropping an email to
>> gnome-doc-l...@gnome.org and gnome-i...@gnome.org lists before running
>> the distcheck? I found communicating with translators to be very
>> effective and the docs team would prefer communication over a ban.
>
> With an equivalent of 'svn lock', there can be a friendly message
> explaining that a developer is creating a release, and that the commit
> can be pushed later (e.g. the following day). It is anyway temporary. I
> wouldn't use the word "ban", I prefer the word "temporary lock", it is
> less negative. Docs and translations commits are more than welcome, you
> do a great job! It is just that the push conflicts can be a little
> annoying.

Well you could just create a branch do your release there so that you
don't have to care about what happens on master (branches are free in
git) and merge it back to master afterwards.
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-02 Thread Sébastien Wilmet
On Sat, 2014-08-02 at 15:21 +0200, drago01 wrote:
> Well you could just create a branch do your release there so that you
> don't have to care about what happens on master (branches are free in
> git) and merge it back to master afterwards.

In GNOME we generally prefer to have a linear git history, but creating
a branch is indeed another solution.

Sébastien

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-02 Thread Colin Walters
On Fri, Aug 1, 2014, at 07:18 PM, Sébastien Wilmet wrote:

> Maybe GNOME Continuous could run 'make distcheck' on (almost) every
> commit? To detect such errors earlier than the release day.

No.  I think tarballs are a waste of CPU power and human time generated
solely because many popular downstream build systems predate widespread
use of revision control and haven't made the leap to understanding git.
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Translation commits pushed when rolling a tarball

2014-08-02 Thread Michael Catanzaro
On Sat, 2014-08-02 at 14:14 +0200, Zeeshan Ali (Khattak) wrote:
> You mean send them email to not push translations? Are they all on
> those lists and read their inbox each time before pushing changes? If
> so, sure but then again the main issue (at least for me) is forgetting
> (to run `git push master` rather than `git push master RELEASE`) so I
> don't know what adding an additional manual step to remember would
> achieve.

I like 'git push --follow-tags'

If you have to 'git pull --rebase' due to a translation commit after
running distcheck and tagging the commit, you can still do this: it's a
bit questionable since the tag and release won't be on any branch, so I
normally rerun distcheck, but it works.


signature.asc
Description: This is a digitally signed message part
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-02 Thread Sébastien Wilmet
On Sat, 2014-08-02 at 15:55 +0200, Sébastien Wilmet wrote:
> On Sat, 2014-08-02 at 15:21 +0200, drago01 wrote:
> > Well you could just create a branch do your release there so that you
> > don't have to care about what happens on master (branches are free in
> > git) and merge it back to master afterwards.
> 
> In GNOME we generally prefer to have a linear git history, but creating
> a branch is indeed another solution.

(replying to myself after a bit more thoughts)

I think it's the best compromise. I've never thought about this solution
because I always do a rebase on top of master. Thanks for the tip!

Sébastien

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-02 Thread David Woodhouse
On Sat, 2014-08-02 at 15:55 +0200, Sébastien Wilmet wrote:
> On Sat, 2014-08-02 at 15:21 +0200, drago01 wrote:
> > Well you could just create a branch do your release there so that you
> > don't have to care about what happens on master (branches are free in
> > git) and merge it back to master afterwards.

You shouldn't need to create a branch for this. What we're talking about
here is an utterly normal and everyday part of the git workflow — not
specific to releases and translations. Any time you've done some work
locally and it's time to push it upstream, you may find that someone
else has pushed something before you.

The correct thing to do when that happens is to pull, resulting in a
merge commit in your tree, and then push that upstream.

There's nothing to see here; this whole thread doesn't exist. There is
no problem.

> In GNOME we generally prefer to have a linear git history, but creating
> a branch is indeed another solution.

Right. You have correctly identified the root cause of the problem. We
shouldn't be advising people as a matter of course *not* to use the
version control system correctly in the manner in which it was designed.

This mentality of rebasing for no better reason than because we like
straight lines isn't just an issue in the specific case discussed here.

It also causes the loss of accurate history in other cases, which can
cause problems. It's relatively rare, but it does happen that two
concurrent patches can conflict with each other. I could do some work in
my local tree which is entirely correct and functional, but by the time
I've finished testing and I go to push it upstream, someone else has
pushed something which subtly breaks my work.

If I rebase, it is just human nature that I'm not going to retest every
intermediate commit of the rebased version as carefully as I retested
the original, and it's quite possible that I'll end up pushing a commit
which in some circumstances *never* worked.

If I use git correctly and push the *merge*, however, then my original
work is preserved. Someone later trying to work out what happened has
actually got a correct version of history to refer back to, and the
problem can be correctly tracked down to the *merge* of the concurrent
changes.

Whereas if I rebase and rewrite history to make it look like I just
committed something that *never* worked, sorting that out later is
*much* harder.

We really ought to abandon this idea that we "prefer to have a linear
git history". It might be simpler that way, but it's wrong, and in the
cases that *matter* it actually makes things harder. And the cases that
don't matter... don't matter. Unless you have some kind of OCD about
straight lines.

-- 
dwmw2


smime.p7s
Description: S/MIME cryptographic signature
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-02 Thread Sébastien Wilmet
On Sat, 2014-08-02 at 15:38 +0100, David Woodhouse wrote:
> The correct thing to do when that happens is to pull, resulting in a
> merge commit in your tree, and then push that upstream.

Merge conflicts are probably less likely to happen in GNOME thanks to
the longer development cycle. In contrast with a merge window of two
weeks in Linux.

So a normal merge should probably be done only when a merge conflict
happens. In the other cases a rebase is better in my opinion (if we
trust Git).

But you're absolutely right, we're doing it wrong™.

As a side note, a merge window has an advantage: it normally prevents
half-finished features to be sneaked in at the last minute, with the
hope that all the bugs will be identified and fixed during the feature
freeze.

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-02 Thread Zeeshan Ali (Khattak)
On Sat, Aug 2, 2014 at 4:09 PM, Sébastien Wilmet  wrote:
> On Sat, 2014-08-02 at 15:55 +0200, Sébastien Wilmet wrote:
>> On Sat, 2014-08-02 at 15:21 +0200, drago01 wrote:
>> > Well you could just create a branch do your release there so that you
>> > don't have to care about what happens on master (branches are free in
>> > git) and merge it back to master afterwards.
>>
>> In GNOME we generally prefer to have a linear git history, but creating
>> a branch is indeed another solution.
>
> (replying to myself after a bit more thoughts)
>
> I think it's the best compromise. I've never thought about this solution
> because I always do a rebase on top of master. Thanks for the tip!

Actually thats what I usually do but trouble with this approach is
that I often then forget that I'm on the branch and assume everything
went fine after doing a successfull `git push origin master && git
push origin TAG`. Later I realize that master has changed and my tag
is not in its history. :(

-- 
Regards,

Zeeshan Ali (Khattak)

Befriend GNOME: http://www.gnome.org/friends/
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-03 Thread Dan Winship
On 08/02/2014 10:38 AM, David Woodhouse wrote:
> If I use git correctly and push the *merge*, however, then my original
> work is preserved. Someone later trying to work out what happened has
> actually got a correct version of history to refer back to, and the
> problem can be correctly tracked down to the *merge* of the concurrent
> changes.

Except that this correct version of history looks like this:

  - Implement X

  - Implement Y

  - Implement Z

  - Make a whole bunch of changes all at once, some of which are
related to X, some to Y, some to Z, and some to more than one of
them, and without any indication of which changes relate to which
commit so no one in the future will ever be able to figure it out
ha ha ha.

Which sucks. So I'll stick with rebasing, thanks.

-- Dan

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Translation commits pushed when rolling a tarball

2014-08-03 Thread David Woodhouse

> On 08/02/2014 10:38 AM, David Woodhouse wrote:
>> If I use git correctly and push the *merge*, however, then my original
>> work is preserved. Someone later trying to work out what happened has
>> actually got a correct version of history to refer back to, and the
>> problem can be correctly tracked down to the *merge* of the concurrent
>> changes.
>
> Except that this correct version of history looks like this:
>
>   - Implement X
>
>   - Implement Y
>
>   - Implement Z
>
>   - Make a whole bunch of changes all at once, some of which are
> related to X, some to Y, some to Z, and some to more than one of
> them, and without any indication of which changes relate to which
> commit so no one in the future will ever be able to figure it out
> ha ha ha.
>
> Which sucks. So I'll stick with rebasing, thanks.

That is so far from the normal experience of using git as intended, that I
don't quite recognise it. It sounds like you've had a bad experience of
someone doing something truly bizarre and ill-advised, and it's put you
off doing things *correctly* for ever more.

Much like the libxml2 insanity with quantum symbol versioning seems to
have put people off using *that* properly. Or indeed at all.

But I wasn't necessarily expecting the "don't use git properly" policy to
be changed - it's just that nobody seemed to be acknowledging the elephant
in the room in this thread, which was that the whole problem being
discussed is an artificial one purely caused by that policy. So I felt it
appropriate to make sure it was mentioned.

-- 
dwmw2

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Translation commits pushed when rolling a tarball

2014-08-03 Thread Maciej Piechotka

On Sun, 2014-08-03 at 19:38 +, David Woodhouse wrote:
> > 
> >  On 08/02/2014 10:38 AM, David Woodhouse wrote:
> > >  If I use git correctly and push the *merge*, however, then my 
> > > original
> > >  work is preserved. Someone later trying to work out what 
> > > happened has
> > >  actually got a correct version of history to refer back to, and 
> > > the
> > >  problem can be correctly tracked down to the *merge* of the 
> > > concurrent
> > >  changes.> > >
> >  Except that this correct version of history looks like this:
> > >
> >- Implement X
> > >
> >- Implement Y
> > >
> >- Implement Z
> > >
> >- Make a whole bunch of changes all at once, some of which are
> >  related to X, some to Y, some to Z, and some to more than one 
> > of
> >  them, and without any indication of which changes relate to 
> > which
> >  commit so no one in the future will ever be able to figure it 
> > out
> >  ha ha ha.
> > >
> >  Which sucks. So I'll stick with rebasing, thanks.> 
> That is so far from the normal experience of using git as intended, 
> that I
> don't quite recognise it. It sounds like you've had a bad experience 
> of
> someone doing something truly bizarre and ill-advised, and it's put 
> you
> off doing things *correctly* for ever more.
> 
> Much like the libxml2 insanity with quantum symbol versioning seems 
> to
> have put people off using *that* properly. Or indeed at all.
> 
> But I wasn't necessarily expecting the "don't use git properly" 
> policy to
> be changed - it's just that nobody seemed to be acknowledging the 
> elephant
> in the room in this thread, which was that the whole problem being
> discussed is an artificial one purely caused by that policy. So I 
> felt it
> appropriate to make sure it was mentioned.
> 
> 


I don't think the 'using git as intended' is a clear-cut thing. I 
guess it's reasonable to assume git was intended for Linux kernel 
development workflow where the linux-next is managed by Linus, who 
pulls the commits from lieutenants who pull the data from branches. 
Even in such situations IIRC the people are adviced to just rebase on 
feature branches to avoid the myriad of merge commits.

Maintaining of Linux kernel is a bit more complicated then Gnome 
modules - I'd imagine that we would have corresponding situation when 
we would have a whole Gnome in single git repository and gtk+ 
development would happen in separate branch while i18n could have a 
separate branch. When the release of new Gnome would come a release 
team would pull the changes in and make a release. This is not a way 
which makes sense for Gnome though it makes sense for Linux as we can 
and are more modular.

My guess would be to do it in 'Linux' way and avoid multiply merge 
commits would be to push the i18n to separate branch and make the 
maintainer, though I would imagine to be much more complicated for our 
purposes.

--

After some digging about usage of git in Linx:
LWN article http://lwn.net/Articles/328436/ - "Linus does not tell 
developers not to use it [rebasing]; in fact, he encourages it 
sometimes.", "On the other hand, private history can be rebased at 
will - and it probably should be.".
Original Linus post http://lwn.net/Articles/328438/ - "So you can go 
wild on the "git rebase" thing on it", "Keep your own history readable"


Best regards

signature.asc
Description: This is a digitally signed message part
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-04 Thread David Woodhouse
On Sun, 2014-08-03 at 23:18 +0200, Maciej Piechotka wrote:
> My guess would be to do it in 'Linux' way and avoid multiply merge 
> commits would be to push the i18n to separate branch and make the 
> maintainer, though I would imagine to be much more complicated for our 
> purposes.

Linux is probably not the best comparison because Linux has a single
person who is able to push to the master upstream tree. There is *no*
way to get your code into that except for Linus to pull it. So you have
to have a labelled tree or branch somewhere that he can reference by its
URI.

But there are plenty of other things which *do* have multiple committers
all actively pushing to the same tree. There's no need for separate
branches other than "the tip of my working tree". It really is just "oh,
someone else pushed something while I was working. I'll pull that,
handle any merge that's required if it isn't entirely automatic, retest
as necessary and push again".

> --
> 
> After some digging about usage of git in Linx:
> LWN article http://lwn.net/Articles/328436/ - "Linus does not tell 
> developers not to use it [rebasing]; in fact, he encourages it 
> sometimes.", "On the other hand, private history can be rebased at 
> will - and it probably should be.".
> Original Linus post http://lwn.net/Articles/328438/ - "So you can go 
> wild on the "git rebase" thing on it", "Keep your own history readable"

Note that I'm not saying rebasing should be *banned* either. It's a
useful tool and I do it all the time.

But we shouldn't *force* people to rebase, especially not with commit
hooks which block merge commits. If we didn't do that then the whole
problem being discussed in this thread wouldn't exist.

You could still have a policy of "rebase whenever you can because..."
er, well I don't actually know why, but whatever. As long as you allow
normal git usage in the cases such as $SUBJECT where enforced-rebase is
causing a real problem.

So just dropping the commit-hook, and keeping the same policy but just
applying it a little more flexibly, should be ideal.

Or perhaps if people really insist, you could even keep the commit-hook
but make a special case in it to permit merge commits where one side of
the tree only touches the po/ directory.

-- 
dwmw2


smime.p7s
Description: S/MIME cryptographic signature
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-04 Thread Bastien Nocera
On Sat, 2014-08-02 at 16:09 +0200, Sébastien Wilmet wrote:
> On Sat, 2014-08-02 at 15:55 +0200, Sébastien Wilmet wrote:
> > On Sat, 2014-08-02 at 15:21 +0200, drago01 wrote:
> > > Well you could just create a branch do your release there so that you
> > > don't have to care about what happens on master (branches are free in
> > > git) and merge it back to master afterwards.
> > 
> > In GNOME we generally prefer to have a linear git history, but creating
> > a branch is indeed another solution.
> 
> (replying to myself after a bit more thoughts)
> 
> I think it's the best compromise. I've never thought about this solution
> because I always do a rebase on top of master. Thanks for the tip!

Not seeing releases on the master commit list is going to confuse more
than a few drive-by developers, bug squaders, and translators.

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-04 Thread Bastien Nocera
On Thu, 2014-07-31 at 17:24 +0200, Sébastien Wilmet wrote:
> Hi,
> 
> At some rare occasions, especially after the string freeze, translation
> commits are pushed when rolling a tarball for making a new release.
> Since the commit for the release should be pushed only when 'make
> distcheck' has succeeded, there can be a push conflict and the
> maintainer have to repeat the process (sometimes several times).
> 
> I think it would be nice to send mails on gnome-i18n and gnome-doc-list
> to explain that commits should not be pushed during the release days. If
> a translation or documentation commit is important, the maintainers can
> anyway be contacted on IRC to know if the commit can be pushed.
> 
> I think there is no equivalent of 'svn lock' for git, so sending a mail
> is a solution.
> 
> Bonus point is to add a warning on l10n.gnome.org, but it is more work.
> 
> What do you think? Is it too rare to care about this problem?

It's happened quite a few times for my modules, whether it was due to
translations being pushed between the tarball release, and me trying to
push, or me simply forgetting to update the tree before doing the
release.

My workflow looks something like:
- bump versions, update NEWS and commit this
- run make distcheck, and if it doesn't pass, create one or more new
commits to fix the problem, then running "git rebase -i" to put those
before my version bump commit
- distcheck passes, try to push
- If the push succeeds, it doesn't matter if other commits come
afterwards, as you can tag, branch, etc. based on that commit, not
always the latest one as SVN used to handle
- If the push doesn't succeed, run "git pull -r", run "make distcheck"
and push. If you're particularly cocky, you can run "make dist" and
push, but a broken .po file could get in your way ;)

Cheers

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-04 Thread Sébastien Wilmet
On Mon, 2014-08-04 at 12:49 +0200, Bastien Nocera wrote:
> Not seeing releases on the master commit list is going to confuse more
> than a few drive-by developers, bug squaders, and translators.

It depends on what tools to use to view the commit list. With a merge
commit, the release commit and tag are also part of the master branch,
it is just not a straight line.

Compared to implementing an equivalent of 'svn lock' for git, a merge
commit is a far more easier solution. The fact that 'git lock' doesn't
exist is maybe because the branch system is powerful enough.

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Translation commits pushed when rolling a tarball

2014-08-04 Thread Sébastien Wilmet
On Mon, 2014-08-04 at 14:25 +0200, Sébastien Wilmet wrote:
> On Mon, 2014-08-04 at 12:49 +0200, Bastien Nocera wrote:
> > Not seeing releases on the master commit list is going to confuse more
> > than a few drive-by developers, bug squaders, and translators.
> 
> It depends on what tools to use to view the commit list.

Btw, which tools do you have in mind that don't display diverging
commits? Such tool should be fixed or avoided, because it gives a false
view on which commits are present on a branch.

git log correctly displays all commits, for example. The well-known git
lola alias too, even if you remove the --all parameter.

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-04 Thread Dan Winship
On 08/03/2014 03:38 PM, David Woodhouse wrote:
>>   - Make a whole bunch of changes all at once, some of which are
>> related to X, some to Y, some to Z, and some to more than one of
>> them, and without any indication of which changes relate to which
>> commit so no one in the future will ever be able to figure it out
>> ha ha ha.
>>
>> Which sucks. So I'll stick with rebasing, thanks.
> 
> That is so far from the normal experience of using git as intended, that I
> don't quite recognise it.

How else is a merge commit going to look? If you have more than one
commit on your branch, and more than one conflict with master, and you
only get one commit to fix it all up, then how can you avoid having that
one commit include fixes that are unrelated to one another?

(Sure, if you don't have any conflicts, then the merge commit will be
empty and confusion-free, but in that case you could have rebased
without conflicts too, so the argument about accidentally creating bugs
while rebasing doesn't apply.)

-- Dan

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Translation commits pushed when rolling a tarball

2014-08-04 Thread David Woodhouse
On Mon, 2014-08-04 at 09:38 -0400, Dan Winship wrote:
> On 08/03/2014 03:38 PM, David Woodhouse wrote:
> >>   - Make a whole bunch of changes all at once, some of which are
> >> related to X, some to Y, some to Z, and some to more than one of
> >> them, and without any indication of which changes relate to which
> >> commit so no one in the future will ever be able to figure it out
> >> ha ha ha.
> >>
> >> Which sucks. So I'll stick with rebasing, thanks.
> > 
> > That is so far from the normal experience of using git as intended, that I
> > don't quite recognise it.
> 
> How else is a merge commit going to look? If you have more than one
> commit on your branch, and more than one conflict with master, and you
> only get one commit to fix it all up, then how can you avoid having that
> one commit include fixes that are unrelated to one another?
> 
> (Sure, if you don't have any conflicts, then the merge commit will be
> empty and confusion-free, but in that case you could have rebased
> without conflicts too, so the argument about accidentally creating bugs
> while rebasing doesn't apply.)

There are multiple options here.

First of all, you *can* rebase if you want to. I don't think anybody
objects to that; only to the *forced* rebasing.

But let's say you don't want to rebase, because you really do want to
preserve the original context and the validity of the original testing —
perhaps other people had tested it for you in esoteric environments. If
upstream has done X, Y and Z since you started your work and *all* of
them interact non-trivially with what you've done, then rather than
pulling today's upstream in one go, you could first pull it as of commit
X, resolve conflicts and retest, then pull Y, repeat, and finally do the
same for Z.

Of course, if X, Y and Z are all inter-related then that might actually
be a bit more work than doing it in one go — so you might *not* want to
do that. But it's *one* of the options.

I'm not trying to take away your options, of which rebasing is sometimes
a perfectly valid one. I'm pointing out that this thread only exists
because one of the useful options (i.e. *not* rebasing) *has* been taken
away.

-- 
dwmw2


smime.p7s
Description: S/MIME cryptographic signature
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Translation commits pushed when rolling a tarball

2014-08-05 Thread Sébastien Wilmet
On Mon, 2014-08-04 at 15:31 +0100, David Woodhouse wrote:
> I'm not trying to take away your options, of which rebasing is sometimes
> a perfectly valid one. I'm pointing out that this thread only exists
> because one of the useful options (i.e. *not* rebasing) *has* been taken
> away.

Yes, thank you for your explanations, as Git is really flexible, it's
great to have insight from other free software projects working
differently.

___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list