Re: Update on Gerrit deployment

2011-09-01 Thread John Stultz
On Sun, 2011-08-28 at 10:35 +0800, Andy Green wrote:
> On 08/28/2011 05:20 AM, Somebody in the thread at some point said:
> > But I've got an open mind and am willing to try it out and figure out a
> > workflow. I suspect for me it really won't be anything other then a
> > different location to "git push" to.
> 
> I think we are having different takes on it (although I appreciate 
> reading your somewhat nuanced view) because application of patches 
> doesn't mean for me what it means to a history branch.
> 
> The patch does not just go on top of HEAD and then you're done, it needs 
> to be placed at the right topic branch layer in tracking; may need to be 
> adapted to apply to an intermediate branch (eg, tilt-3.0) that is on a 
> different pinned release basis, then the intermediate branch rebased 
> against the final basis like, eg, your android tree to provide the final 
> output.

Right. So yes, the applying a series of patches directly to the tree
isn't as big of a perk for your topic branches.

But... One way it can work is by applying them on top the gerrit head,
you can then pluck them via git cherry-pick into your own tree and into
the right topic branch. Then the next time you rebase/push, the patch
should be included there. If gerrit provides a changeid on the merged
patch (this I've not tried, so maybe it doesn't), it should then be able
to track that the patch is also merged in your newly rebased HEAD.

But again, I really doubt there will be much in the way of kernel
patches being submitted via gerrit (for most I suspect its more work to
submit via gerrit then it is to mail patches). So I'd really only focus
on gerrit as just a different public git repo to push your work to.

thanks
-john



___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Update on Gerrit deployment

2011-08-27 Thread Andy Green

On 08/28/2011 05:20 AM, Somebody in the thread at some point said:

On Sat, 2011-08-27 at 21:29 +0800, Andy Green wrote:

On 08/27/2011 02:15 AM, Somebody in the thread at some point said:

Gerrit is that it doesn't care if the tree has been rebased. It will
just try and merge the changeset on top of the current tree, whatever
the history so in that case Gerrit is actually enabling developers to
work with trees that are continually rebased (like the linux kernel).


Linus' tree is a history tree, fwiw.

For kernel, gerrit users even generating the patches to propose requires
git.  So gerrit is just a sort of secondary 'social' option on top of
git, which remains mandatory.

I want to respect people's contribution, but I don't see how external
voting on patches is going to help me: either it fits at my tree's
level, has a use and doesn't conflict in which case I'll take it, or
it's not going to work out for me and it won't work out any better if
one or more people clicked +1 on it.

I don't think we can dispense with one person attempting to understand
what the patches are and what they buy us, what their future is and if
they want them which trees they go on, etc, by a kind of
isithotornot.linaro.org.


I think you're greatly mis-characterizing what gerrit does. *No one*
maintains a code tree like a democracy.


I went and looked at it last week, clicked around a bit and report what 
I saw.



I too suspect the voting (which is really just review logging, something
most mature projects require and use, be it "Acked-by" lines or
whatever) won't be of much use to us, as we're still fairly loose with
our change management and we trust tree maintainers.


Yeah.


As a maintainer, I think the formal submission tracking (ie: here are
changes submitted that have not yet been included) is really the part
that is potentially valuable to us. It makes sure the work folks submit
doesn't just get lost in churn and busy crunches.

Additionally, a more minor perk is that it allows series of patches to
be merged without the manual plucking from your inbox, saving to files,
copying them to my git tree server, and then git am'ing them in.

Now, again, I'm not a fan of gerrit. And outside of the Android work, I
*really* don't see it providing any value to Linaro (personally I'd like
to see a tool more like patchworks integrated with git that provides the
same benefits as above).

But I've got an open mind and am willing to try it out and figure out a
workflow. I suspect for me it really won't be anything other then a
different location to "git push" to.


I think we are having different takes on it (although I appreciate 
reading your somewhat nuanced view) because application of patches 
doesn't mean for me what it means to a history branch.


The patch does not just go on top of HEAD and then you're done, it needs 
to be placed at the right topic branch layer in tracking; may need to be 
adapted to apply to an intermediate branch (eg, tilt-3.0) that is on a 
different pinned release basis, then the intermediate branch rebased 
against the final basis like, eg, your android tree to provide the final 
output.


Can Gerrit understand or track that?


If we do actually start to see an inflow of kernel patches through
gerrit, we can see how that workflow functions and have a concrete
discussion on pros and cons (worse case, I git cherry pick the commits I
like to my tree and push it out, or we can ask to see if gerrit can be
configured to mail patches to us). But I really really doubt this will
be a common thing.

Again, I've volunteered to lead the way on the kernel side in this trial
run, and (while there have been some initial configuration hiccups) it
really has been almost zero overhead/impact to my workflow so far.

(And forgive me for posting and running here, as I'm out of the office
for the next two weeks - including Linux Plumbers, so I may not respond
to further replies for some time. So feel free to have the last word. :)


Hey you're forgiven dude ^^  Have a nice time at Plumbers.

-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Update on Gerrit deployment

2011-08-27 Thread john stultz
On Sat, 2011-08-27 at 21:29 +0800, Andy Green wrote:
> On 08/27/2011 02:15 AM, Somebody in the thread at some point said:
> > Gerrit is that it doesn't care if the tree has been rebased. It will
> > just try and merge the changeset on top of the current tree, whatever
> > the history so in that case Gerrit is actually enabling developers to
> > work with trees that are continually rebased (like the linux kernel).
> 
> Linus' tree is a history tree, fwiw.
> 
> For kernel, gerrit users even generating the patches to propose requires 
> git.  So gerrit is just a sort of secondary 'social' option on top of 
> git, which remains mandatory.
> 
> I want to respect people's contribution, but I don't see how external 
> voting on patches is going to help me: either it fits at my tree's 
> level, has a use and doesn't conflict in which case I'll take it, or 
> it's not going to work out for me and it won't work out any better if 
> one or more people clicked +1 on it.
> 
> I don't think we can dispense with one person attempting to understand 
> what the patches are and what they buy us, what their future is and if 
> they want them which trees they go on, etc, by a kind of 
> isithotornot.linaro.org.

I think you're greatly mis-characterizing what gerrit does. *No one*
maintains a code tree like a democracy.

I too suspect the voting (which is really just review logging, something
most mature projects require and use, be it "Acked-by" lines or
whatever) won't be of much use to us, as we're still fairly loose with
our change management and we trust tree maintainers.

As a maintainer, I think the formal submission tracking (ie: here are
changes submitted that have not yet been included) is really the part
that is potentially valuable to us. It makes sure the work folks submit
doesn't just get lost in churn and busy crunches.

Additionally, a more minor perk is that it allows series of patches to
be merged without the manual plucking from your inbox, saving to files,
copying them to my git tree server, and then git am'ing them in.

Now, again, I'm not a fan of gerrit. And outside of the Android work, I
*really* don't see it providing any value to Linaro (personally I'd like
to see a tool more like patchworks integrated with git that provides the
same benefits as above).

But I've got an open mind and am willing to try it out and figure out a
workflow. I suspect for me it really won't be anything other then a
different location to "git push" to.

If we do actually start to see an inflow of kernel patches through
gerrit, we can see how that workflow functions and have a concrete
discussion on pros and cons (worse case, I git cherry pick the commits I
like to my tree and push it out, or we can ask to see if gerrit can be
configured to mail patches to us). But I really really doubt this will
be a common thing.

Again, I've volunteered to lead the way on the kernel side in this trial
run, and (while there have been some initial configuration hiccups) it
really has been almost zero overhead/impact to my workflow so far.

(And forgive me for posting and running here, as I'm out of the office
for the next two weeks - including Linux Plumbers, so I may not respond
to further replies for some time. So feel free to have the last word. :)

thanks
-john


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Update on Gerrit deployment

2011-08-27 Thread Andy Green

On 08/27/2011 02:15 AM, Somebody in the thread at some point said:


How well what are basically externally generated and managed kernels will
fit into Gerrit flow is something I don't really understand.  But I don't
think it will be as simple as the case where the kernel is a history tree
managed entirely through gerrit flow and everyone is happy.



My main issue with stgit is that its only useful for a single person


Stgit is a nice adjunct to git that lets you juggle and reorder 
patchsets easily; gerrit seems to be some kind of slashcode 0.01 one 
could knock up in a few days using LAMP where patches are the article 
and get voted on by folks.  They are unrelated.



to manage a patchset on top of a history tree. When many people then
rely on that tree, something like stgit makes it hard for them to deal
since the history is always changing. Now the really cool thing about


That's nothing to do with stgit but "rebase flow".  You can very well do 
rebases generally with pure git.


Android tree is just one of the things we're looking after, it is very 
convenient for us to have a rebase flow that let's us focuses on one 
intermediate vanilla enabled tree, so we do work once for that common 
basis, that is then rebased against the various bases that people want 
including Android.  I use stgit-based scripts internally to manage that 
but none of our output exposes that, it's all pure normal git.



Gerrit is that it doesn't care if the tree has been rebased. It will
just try and merge the changeset on top of the current tree, whatever
the history so in that case Gerrit is actually enabling developers to
work with trees that are continually rebased (like the linux kernel).


Linus' tree is a history tree, fwiw.

For kernel, gerrit users even generating the patches to propose requires 
git.  So gerrit is just a sort of secondary 'social' option on top of 
git, which remains mandatory.


I want to respect people's contribution, but I don't see how external 
voting on patches is going to help me: either it fits at my tree's 
level, has a use and doesn't conflict in which case I'll take it, or 
it's not going to work out for me and it won't work out any better if 
one or more people clicked +1 on it.


I don't think we can dispense with one person attempting to understand 
what the patches are and what they buy us, what their future is and if 
they want them which trees they go on, etc, by a kind of 
isithotornot.linaro.org.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Update on Gerrit deployment

2011-08-27 Thread Paul Sokolovsky
Hello Zach,

On Thu, 25 Aug 2011 18:12:01 -0500
Zach Pfeffer  wrote:

[]
> > I also updated Linaro Gerrit howto:
> > https://wiki.linaro.org/Platform/Android/Gerrit , which now should
> > have all info to have one started quickly with Gerrit, and cover
> > all aspects of Gerrit setup (like upstream mirroring and permission
> > settings). I'd appreciate review of that and letting me know if
> > something is missing there.
> 
> This looks really good. Please share this with the repo mailing list.
> Your great work has really helped other people trying to set up their
> own Gerrit instances.

I did so per your previous request, during LC.

> 
> > Finally few points we can continue with to elaborate our usage of
> > Gerrit:
> >
> > 1. Set up branch policy (naming, etc.) and enforce it on Gerrit
> > level. This may require revamping branching in other toolchain/*
> > components (upstreamed not from AOSP), but in the end we'll get
> > really robust development setup.
> 
> Agreed. One big thing that we need to work on is how we're going to
> handle kernel upgrades - I think some special branch-naming may be
> part of this solution.
> 
> > 2. Turn off review bypass option which was available during
> > transition process. I guess Android team if comfortable by now with
> > new process (there're more than 80 patches passed thru review by
> > now!), so once 11.08 release is out, it would be good time to do
> > that.
> 
> +1 for most. I think the only thing we have to watch out for is kernel
> maintainers needing to push big updates out-of-band.

Whenever I talk about Gerrit workflow, I mean "Gerrit workflow for
Android platform components, skipping kernels" ;-). There would be
apparently 2 different workflows, and we need to settled main Android
workflow and let kernel guys try and use Gerrit and see what's
comfortable for them (starting with complete git access). We already
have beginning of such setup, with John being in "Kernel Hackers"
group, which allows rebases and upstream pulling for
kernel/linux-android.


-- 
Best Regards,
Paul

Linaro.org | Open source software for ARM SoCs
Follow Linaro: http://www.facebook.com/pages/Linaro
http://twitter.com/#!/linaroorg - http://www.linaro.org/linaro-blog

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Update on Gerrit deployment

2011-08-26 Thread Zach Pfeffer
On 26 August 2011 00:04, Andy Green  wrote:
> On 08/26/2011 12:12 AM, Somebody in the thread at some point said:
>
>>> 1. Set up branch policy (naming, etc.) and enforce it on Gerrit level.
>>> This may require revamping branching in other toolchain/* components
>>> (upstreamed not from AOSP), but in the end we'll get really robust
>>> development setup.
>>
>> Agreed. One big thing that we need to work on is how we're going to
>> handle kernel upgrades - I think some special branch-naming may be
>> part of this solution.
>>
>>> 2. Turn off review bypass option which was available during transition
>>> process. I guess Android team if comfortable by now with new process
>>> (there're more than 80 patches passed thru review by now!), so once
>>> 11.08 release is out, it would be good time to do that.
>>
>> +1 for most. I think the only thing we have to watch out for is kernel
>> maintainers needing to push big updates out-of-band.
>
> Special case of that is going to be rebase branches as opposed to history
> ones, where 'disruptive' changes are going to be normal.
>
> How well what are basically externally generated and managed kernels will
> fit into Gerrit flow is something I don't really understand.  But I don't
> think it will be as simple as the case where the kernel is a history tree
> managed entirely through gerrit flow and everyone is happy.

I think it can be simple as long as we lay it out. The general plan would be:

We track a kernel tree branch that's considered tip. We pull from that
via repo and do builds etc.

That tree is manged by Gerrit with a maintainer backdoor.

A Gerrit change makes it into the tree after its been reviewed,
approved and passes regression.

The maintainer approves the change.

The maintainer has the ability to reorder, rebase or do what ever they
want outside of Gerrit. Their only extra duty is to ensure that
patches that have been accepted are now in the tree. Anything that
hasn't been accepted would just follow the normal flow since each
change is merged against the current state of the tree.

My main issue with stgit is that its only useful for a single person
to manage a patchset on top of a history tree. When many people then
rely on that tree, something like stgit makes it hard for them to deal
since the history is always changing. Now the really cool thing about
Gerrit is that it doesn't care if the tree has been rebased. It will
just try and merge the changeset on top of the current tree, whatever
the history so in that case Gerrit is actually enabling developers to
work with trees that are continually rebased (like the linux kernel).

> -Andy
>
> --
> Andy Green | TI Landing Team Leader
> Linaro.org │ Open source software for ARM SoCs | Follow Linaro
> http://facebook.com/pages/Linaro/155974581091106  -
> http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog
>

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Update on Gerrit deployment

2011-08-25 Thread Andy Green

On 08/26/2011 12:12 AM, Somebody in the thread at some point said:


1. Set up branch policy (naming, etc.) and enforce it on Gerrit level.
This may require revamping branching in other toolchain/* components
(upstreamed not from AOSP), but in the end we'll get really robust
development setup.


Agreed. One big thing that we need to work on is how we're going to
handle kernel upgrades - I think some special branch-naming may be
part of this solution.


2. Turn off review bypass option which was available during transition
process. I guess Android team if comfortable by now with new process
(there're more than 80 patches passed thru review by now!), so once
11.08 release is out, it would be good time to do that.


+1 for most. I think the only thing we have to watch out for is kernel
maintainers needing to push big updates out-of-band.


Special case of that is going to be rebase branches as opposed to 
history ones, where 'disruptive' changes are going to be normal.


How well what are basically externally generated and managed kernels 
will fit into Gerrit flow is something I don't really understand.  But I 
don't think it will be as simple as the case where the kernel is a 
history tree managed entirely through gerrit flow and everyone is happy.


-Andy

--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106  - 
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog


___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Re: Update on Gerrit deployment

2011-08-25 Thread Zach Pfeffer
On 23 August 2011 07:46, Paul Sokolovsky  wrote:
> Hello,
>
> Some time passed since last update on Gerrit deployment, that's
> because work on complete AOSP mirroring to out tree took longer than
> expected. All in all, following was done:
>
> Revamped branching in our toolchain/* components, freed room for
> upstream branches, mirrored them.
>
> Mirrored AOSP kernel components. That was something I was putting
> off until latest, knowing that it would bring enough burden, like
> increasing storage space, increasing sync time, etc. Until last I wasn't
> sure if they should mirrored, but something which turned scale is
> recent talk about possibility to provide image for consumer phones from
> Google (for which we may want to hack kernels as provided by AOSP).
> Other point was just having complete AOSP mirror, and writing that
> question off forever, freeing space for other work. So, I proceeded
> with doing it, which soon led to OutOfMemory in Gerrit, so it's
> probably good that it got uncovered during deployment, than later.
> Thanks to IS, memory and Gerrit size were increased, and kernel imports
> finished successfully.
>
> That means that we have complete mirror of upstream AOSP tree, and out
> tree is a proper superset of AOSP. The only workitem left is setting up
> automated upstream syncing via cron (so far I've been doing this
> manually), and we have nice tree set up with upstream at our fingertips
> (without having availability issues during builds, etc.), and at the
> same time, have all freedom to do any stuff on top of it (branching,
> tagging, etc.)
>
> I also updated Linaro Gerrit howto:
> https://wiki.linaro.org/Platform/Android/Gerrit , which now should have
> all info to have one started quickly with Gerrit, and cover all aspects
> of Gerrit setup (like upstream mirroring and permission settings). I'd
> appreciate review of that and letting me know if something is missing
> there.

This looks really good. Please share this with the repo mailing list.
Your great work has really helped other people trying to set up their
own Gerrit instances.

> Finally few points we can continue with to elaborate our usage of
> Gerrit:
>
> 1. Set up branch policy (naming, etc.) and enforce it on Gerrit level.
> This may require revamping branching in other toolchain/* components
> (upstreamed not from AOSP), but in the end we'll get really robust
> development setup.

Agreed. One big thing that we need to work on is how we're going to
handle kernel upgrades - I think some special branch-naming may be
part of this solution.

> 2. Turn off review bypass option which was available during transition
> process. I guess Android team if comfortable by now with new process
> (there're more than 80 patches passed thru review by now!), so once
> 11.08 release is out, it would be good time to do that.

+1 for most. I think the only thing we have to watch out for is kernel
maintainers needing to push big updates out-of-band.

>
> --
> Best Regards,
> Paul
>
> Linaro.org | Open source software for ARM SoCs
> Follow Linaro: http://www.facebook.com/pages/Linaro
> http://twitter.com/#!/linaroorg - http://www.linaro.org/linaro-blog
>

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev


Update on Gerrit deployment

2011-08-23 Thread Paul Sokolovsky
Hello,

Some time passed since last update on Gerrit deployment, that's
because work on complete AOSP mirroring to out tree took longer than
expected. All in all, following was done:

Revamped branching in our toolchain/* components, freed room for
upstream branches, mirrored them.

Mirrored AOSP kernel components. That was something I was putting
off until latest, knowing that it would bring enough burden, like
increasing storage space, increasing sync time, etc. Until last I wasn't
sure if they should mirrored, but something which turned scale is
recent talk about possibility to provide image for consumer phones from
Google (for which we may want to hack kernels as provided by AOSP).
Other point was just having complete AOSP mirror, and writing that
question off forever, freeing space for other work. So, I proceeded
with doing it, which soon led to OutOfMemory in Gerrit, so it's
probably good that it got uncovered during deployment, than later.
Thanks to IS, memory and Gerrit size were increased, and kernel imports
finished successfully.

That means that we have complete mirror of upstream AOSP tree, and out
tree is a proper superset of AOSP. The only workitem left is setting up
automated upstream syncing via cron (so far I've been doing this
manually), and we have nice tree set up with upstream at our fingertips
(without having availability issues during builds, etc.), and at the
same time, have all freedom to do any stuff on top of it (branching,
tagging, etc.)

I also updated Linaro Gerrit howto:
https://wiki.linaro.org/Platform/Android/Gerrit , which now should have
all info to have one started quickly with Gerrit, and cover all aspects
of Gerrit setup (like upstream mirroring and permission settings). I'd
appreciate review of that and letting me know if something is missing
there.


Finally few points we can continue with to elaborate our usage of
Gerrit:

1. Set up branch policy (naming, etc.) and enforce it on Gerrit level.
This may require revamping branching in other toolchain/* components
(upstreamed not from AOSP), but in the end we'll get really robust
development setup.

2. Turn off review bypass option which was available during transition
process. I guess Android team if comfortable by now with new process
(there're more than 80 patches passed thru review by now!), so once
11.08 release is out, it would be good time to do that.


-- 
Best Regards,
Paul

Linaro.org | Open source software for ARM SoCs
Follow Linaro: http://www.facebook.com/pages/Linaro
http://twitter.com/#!/linaroorg - http://www.linaro.org/linaro-blog

___
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev