Justin, let's take a step back and not make invalid assertions.

> * Constant fighting about "risk".  Essentially all important patches
> have to go through two layers of approval (review, blocking+).
> Non-blocking patches have to go through three layers of approval
> (review, tracking+, approval+) these days.

This is false. Any bug can request approval without being tracking+ (same as 
desktop). Tracking nomination are a good way to understand whether the user 
impact is enough to warrant uplift, or to get automatic uplift in the next 
release.

> In most cases, the risk assessment is completely pro-forma.  Engineers
> get what they want, in the end.  But the process takes up time and
> energy.

If it's not worth the 2 minutes for an engineer to request approval, it's 
likely not worth uplifting the code change. And if approved, the bug is 
uplifted automatically by sheriffs.

You're right though - you all could lie to us about risk or reward. We're 
trusting you aren't.

> I contend we would /never/ put up with this sort of process
> BS in normal Firefox development.

This is so apples and oranges it's astonishing. How can you compare the landing 
requirements of desktop releases (which involve no partners, have massive 
pre-release testing populations, is a mature product, and has no hard feature 
scope) to B2G releases?

-Alex

On Apr 3, 2013, at 1:27 PM, Justin Lebar <[email protected]> wrote:

>>> If the past months have taught me anything, it's that "let's just
>>> branch and double-land everything" is unfortunately not a path to
>>> shipping quality software on time with happy, productive engineers.
>>> So this is not a one-sided trade-off.
>>> 
>>> I get that there are partner constraints here, and perhaps riding the
>>> trains is incompatible with them, but I think there's a certain amount
>>> of creativity called for here, given that what we've been doing hasn't
>>> been working.  I'd be curious to know if you have any ideas in this
>>> respect beyond "wait a few years".
>> 
>> I don't think there are any silver bullets I can offer. What exactly is the 
>> problem we are trying to solve here though. How often do people still have 
>> to double-land themselves? The feedback I was getting is that the vast 
>> majority of landings is done by our awesome uplifting mini-team.
> 
> Even with our wonderful sheriff team, the many branches we have are a
> huge pain.  There are a lot of reasons.  Here are some.
> 
> * Constant fighting about "risk".  Essentially all important patches
> have to go through two layers of approval (review, blocking+).
> Non-blocking patches have to go through three layers of approval
> (review, tracking+, approval+) these days.
> 
> In most cases, the risk assessment is completely pro-forma.  Engineers
> get what they want, in the end.  But the process takes up time and
> energy.  I contend we would /never/ put up with this sort of process
> BS in normal Firefox development.
> 
> * Divergence between the branches makes landing hard.  It's not at all
> uncommon for my patches to work on trunk and cause test failures on
> b2g18.  And this problem will only get worse the longer we keep these
> branches around.
> 
> * Divergence between the branches causes bugs not caught by tests.
> Again, this has happened to me personally, and has a high cost.
> 
> * Divergence between the branches means that all branches aren't
> tested.  Essentially nobody is testing b2g nightly, so it often
> doesn't work.  So why am I even landing patches on m-c?
> 
>> In rare instances people have to help directly (thats what we should try to 
>> reduce by
>> keeping trunk and v1.1 close as long v1.1 is still changing). Is this 
>> accurate or do you
>> feel that uplifting is still a pain?
> 
> I don't think keeping v1.1 and trunk close is a goal of release
> drivers.  Their goal is to stabilize 1.1 by denying approval for risky
> patches.  That is directly at odds with keeping trunk and 1.1 close.
> 
> If we want to keep 1.1 and trunk close, there's a simple solution:
> Make them the same branch.  If that doesn't work, perhaps we need a
> more creative solution.  But certainly what we're doing now isn't
> working towards this goal at all.
> 
>>> On Wed, Apr 3, 2013 at 3:59 PM, Andreas Gal <[email protected]> wrote:
>>>> 
>>>> The vendor predicts that they will file around 300 regressions during the 
>>>> QA cycle (between now and August). I don't think we want to fix that on 
>>>> Aurora or Beta, and "lets just slip 6 weeks" is unfortunately not how the 
>>>> hardware business works. We are currently closely tied to hardware 
>>>> schedules because we are supporting individual hardware launches with 
>>>> software. The goal is over time to switch to a reference software model 
>>>> where we make a golden reference for a specific platform (a real hardware 
>>>> platform, or even just a reference platform), and OEMs make products out 
>>>> of that (similar to the Android model). Its clearly not a model where we 
>>>> have arrived at yet. For a while we will have to continue to be closely 
>>>> involved in the actual product engineering. In a year or two ideally we 
>>>> will be closer to the reference platform model, and in that world riding 
>>>> trains makes sense, and slipping will be an option.
>>>> 
>>>> Andreas
>>>> 
>>>> On Apr 3, 2013, at 9:41 PM, Justin Lebar <[email protected]> wrote:
>>>> 
>>>>> This is similar to what we did with 1.0.  We rode the trains until
>>>>> beta, then we branched.
>>>>> 
>>>>> The problem was, we branched too early.  We thought the branch would
>>>>> stabilize for a few weeks before we shipped, but in fact b2g18 has
>>>>> been stabilizing for months and still isn't ready to ship as v1.0.1.
>>>>> 
>>>>> To avoid making the same mistake again, I think we'd probably want to
>>>>> say that we're not going to branch.  That essentially means we need to
>>>>> be done when Aurora branches to Beta, because changes on Beta are
>>>>> (rightly) highly restricted.
>>>>> 
>>>>> If we're not ready by the time we hit Beta, we slip by 6 weeks.  We
>>>>> don't put our beta users at risk for breakage to make our b2g
>>>>> deadlines.
>>>>> 
>>>>> Note that we'd still be double-landing most patches on aurora and m-c,
>>>>> because we will inevitably be under a huge amount of schedule
>>>>> pressure.  But that's a heck of a lot better than double-landing on
>>>>> b2g18 and m-c.
>>>>> 
>>>>> On Wed, Apr 3, 2013 at 3:16 PM, Jonas Sicking <[email protected]> wrote:
>>>>>> Hi All,
>>>>>> 
>>>>>> It's come up a number of times that there are a fairly large number of
>>>>>> issues with the way that we're using "v1.1 branches", i.e. b2g18 for
>>>>>> Gecko and v1-train for gaia.
>>>>>> 
>>>>>> I won't go in to the various issues here since I think it's generally
>>>>>> agreed that it would be good if we could avoid them.
>>>>>> 
>>>>>> The current release plan for v1.1 means that we have code freeze on
>>>>>> August 12th. This is the date when, as I understand it, we absolutely
>>>>>> have to be done with the last line of code and it's pencils down for
>>>>>> everyone.
>>>>>> 
>>>>>> This actually means that we would have the ability to go back to
>>>>>> mozilla-central and gaia master right now and ride the normal release
>>>>>> trains for the Gecko 23 release, while still reaching the release
>>>>>> milestone for gecko before v1.1 is done.
>>>>>> 
>>>>>> This has a lot of attractive features:
>>>>>> * No backporting work for now!
>>>>>> * Much simpler backporting work once we branch for aurora on may 13th.
>>>>>> * We spend more time writing code and less time porting it.
>>>>>> * Less risk involved when backporting patches.
>>>>>> * We pick up a whole host of bug fixes and new features that's
>>>>>> happened since Gecko 18 branched. Including performance work.
>>>>>> 
>>>>>> However there are quite a few things that we need to check before we
>>>>>> can make such a move:
>>>>>> * Will it affect our partners ability to upgrade 1.0 users to the 1.1 
>>>>>> release?
>>>>>> * Are there any big and scary landings that are planned for the Gecko
>>>>>> 23 release that we'd rather not take. Gfx layers-refactoring comes to
>>>>>> mind.
>>>>>> * Will we be able to take security fixes that are landing in Gecko 23
>>>>>> all up until August 6th?
>>>>>> * Is mozilla-central and gaia master working well enough right now for
>>>>>> Firefox OS that this is an option?
>>>>>> * Will all relevant partner testing still be possible even through
>>>>>> we'll be on mozilla-central for some of it.
>>>>>> 
>>>>>> We also have to develop a plan for what to do if we need to fix some
>>>>>> Gecko issue that requires large enough changes that we can't land it
>>>>>> in the Firefox release trains. At that point we have to branch away
>>>>>> from the normal Firefox release branch. This means that all fixes that
>>>>>> go into the Firefox branch will have to also be ported to the B2G
>>>>>> branch.
>>>>>> 
>>>>>> All in all I think the advantages outweigh the disadvantages here.
>>>>>> Things from Firefox development landing in aurora and beta tend to be
>>>>>> very safe. Definitely safer than the sum of the large amounts of work
>>>>>> we'll still be doing for B2G. So if we can work through the issue list
>>>>>> above, I think we should do it.
>>>>>> 
>>>>>> Would love input from both developers and product on this.
>>>>>> Unfortunately I'll be on vacation thursday and friday so it would be
>>>>>> great to get help driving looking into the checklist above during that
>>>>>> time.
>>>>>> 
>>>>>> / Jonas
>>>>>> _______________________________________________
>>>>>> dev-b2g mailing list
>>>>>> [email protected]
>>>>>> https://lists.mozilla.org/listinfo/dev-b2g
>>>>> _______________________________________________
>>>>> dev-b2g mailing list
>>>>> [email protected]
>>>>> https://lists.mozilla.org/listinfo/dev-b2g
>>>> 
>> 
> _______________________________________________
> dev-b2g mailing list
> [email protected]
> https://lists.mozilla.org/listinfo/dev-b2g

_______________________________________________
dev-b2g mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-b2g

Reply via email to