I'm sorry, Alex. My intent wasn't to pick a fight.
>> * 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.
This rule apparently changed four days ago, or perhaps the wiki was
wrong for a spell. I didn't get the memo that this changed; sorry I
was a bit out of date here.
https://wiki.mozilla.org/Release_Management/B2G_Landing?title=Release_Management%2FB2G_Landing&action=historysubmit&diff=642991&oldid=642501
>> 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.
It's a bit frustrating to be told that the work I claim is distracting
is in fact not a drag on my productivity. I think I'm probably a
better judge of what is and isn't a drag than anyone else.
An approval request is not two minutes of work. It involves a context
switch back to bug after it's landed. It usually involves some
back-and-forth in the bug. It involves looking up bugs to fill in the
"regression caused by" field. It involves keeping track of bugs to
make sure that the ones you care about get plus'ed. These small
context switches have an outsized cost for engineers; see [1].
But I also don't think you're responding to my main point, which is
that not only are uplift requests distracting, they contribute little
value, because engineers almost always get the outcome they want.
That's a question of fact, and if you think it's incorrect, we could
certainly look at the data.
> You're right though - you all could lie to us about risk or reward. We're trusting you aren't.
People respond to incentives. It's not a question of lying so much as
taking a position in a debate. But again, my point is that since
release drivers have to trust engineers' assessments, release drivers
contribute relatively little value to the discussion.
I claim these approvals are a point of frustration and a drag on
productivity. I'm not suggesting that we get rid of them and leave
everything else the same; I was responding to Andreas's query as to
why branches are suboptimal even though we don't have to land on them
ourselves. I don't think we actually have a serious disagreement
here.
[1]
http://www.paulgraham.com/makersschedule.html
> On Apr 3, 2013, at 1:27 PM, Justin Lebar <
justin...@gmail.com> 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.
>>
>>>>>>> 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.
>>>>>>>