Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Proposed changes to super-review process for mozilla-central

0 views
Skip to first unread message

Mike Connor

unread,
Jan 1, 2009, 2:15:42 PM1/1/09
to dev-pl...@lists.mozilla.org
For quite some time, perhaps as long as I've been around the project,
there have been questions about the idea of super-review, and where it
is important and adds value. The super-reviewers group have discussed
this and reached a consensus, and it's time to get wider feedback.

The core principles behind these changes are that:

* The super-reviewers group is capable of making the biggest impact in
the areas of API and code design, security bugs, and testability/
maintainability
* All of the code in mozilla-central can benefit from this type of
review and guidance
* Module owner review, assuming strong ownership and ever-growing test
coverage, should be sufficient for many patches.

The proposal we have is that super-review will now be required for any
patches to mozilla-central meeting any of the following criteria:

* any significant architectural refactoring
* any change in how Mozilla code modules interact
* any change to an API for extensions
* any change to an API for web content
* security changes

Module owners/peers may ask for a super-review in other cases not
explicitly covered here, like any other conditional grant of review.
Any patch not meeting the above criteria does _not_ require super-
review under this proposal, even in areas where super-review has
previously been required for all patches.

IMPORTANT: This proposal covers browser and toolkit, which previously
had no requirement for super-review.

Feedback is strongly encouraged, as we'd like to move this forward as
soon as possible.

-- Mike


Dave Townsend

unread,
Jan 1, 2009, 2:41:31 PM1/1/09
to
I think in general this is a good thing. Although it will probably make
my life more difficult as previously most of my patches would not
require sr, I believe the additional overview should help us as a whole.

I'd like to see some clarification though on exactly what "API" covers,
particularly for the extensions case. Are we just talking about xpcom
interfaces, or XBL bindings, or down to the level of objects and
functions in common window scopes?

Justin Wood (Callek)

unread,
Jan 1, 2009, 4:01:31 PM1/1/09
to
On 1/1/2009 2:41 PM, Dave Townsend wrote:
> I'd like to see some clarification though on exactly what "API" covers,
> particularly for the extensions case. Are we just talking about xpcom
> interfaces, or XBL bindings, or down to the level of objects and
> functions in common window scopes?

Do ID changes cover extension case? etc.

I just anticipate the API cases being vague for some causing people to
think they need sr+ when they don't and others not realizing xyz
actually changes API and needs it, but never requests it.

I feel the ambiguous nature may even strike some Module Owners.
Speaking of, based on the above I get the impression that I could (in
most cases) ask the Module Owner for review and never need an sr.

--
~Justin Wood (Callek)

Boris Zbarsky

unread,
Jan 1, 2009, 10:40:44 PM1/1/09
to
Dave Townsend wrote:
> I'd like to see some clarification though on exactly what "API" covers,
> particularly for the extensions case. Are we just talking about xpcom
> interfaces, or XBL bindings, or down to the level of objects and
> functions in common window scopes?

My take on this, for what it's worth, is that this is the module owner's
call.... This does mean that module owner review needs to precede sr,
but that's a good thing in that it'll keep sr focused on the issues Mike
described instead of trying to sort out the code details.

-Boris

Justin Dolske

unread,
Jan 1, 2009, 11:53:06 PM1/1/09
to
On 1/1/09 11:41 AM, Dave Townsend wrote:

> I'd like to see some clarification though on exactly what "API" covers,
> particularly for the extensions case. Are we just talking about xpcom
> interfaces, or XBL bindings, or down to the level of objects and
> functions in common window scopes?

That was my first question too. I think it would help to know what the
intent here is.

Do we really need sr+ for, literally, "any change to an API"? Even
changes that are otherwise small and uninteresting?

Justin

Mark Banner

unread,
Jan 2, 2009, 5:02:50 AM1/2/09
to

Having to wait for the module owner to decide seems to me like it will
delay patches getting into the tree - if the requester asks for review
from a module peer, then they will also have to find out what the owner
thinks about sr. If they request review from the module owner, then the
module owner has to remember to say if sr is required or not, and I'd
expect this would push more load towards the module owners anyway.

If all module owners are superreviewers then this isn't too bad, the
requesters can just ask for sr from the module owners. Although I still
see this as putting unnecessary load for an "uncertain" case.

Standard8

timeless

unread,
Jan 2, 2009, 5:08:38 AM1/2/09
to Mark Banner, dev-pl...@lists.mozilla.org
On Fri, Jan 2, 2009 at 12:02 PM, Mark Banner

> Having to wait for the module owner to decide seems to me like it will delay
> patches getting into the tree

my patches are already delayed by years. i don't see this as a problem.

you could write tests and contact all the people you're going to break
while you wait for the module owner.

and write a nice MDC article and a post to m.d.<something> announcing
your API change

> if the requester asks for review from a
> module peer, then they will also have to find out what the owner thinks
> about sr. If they request review from the module owner, then the module
> owner has to remember to say if sr is required or not, and I'd expect this
> would push more load towards the module owners anyway.
>
> If all module owners are superreviewers then this isn't too bad, the
> requesters can just ask for sr from the module owners. Although I still see
> this as putting unnecessary load for an "uncertain" case.

one would hope that a peer could also tell you to get an sr ....

Boris Zbarsky

unread,
Jan 2, 2009, 12:11:49 PM1/2/09
to
Mark Banner wrote:
> Having to wait for the module owner to decide seems to me like it will
> delay patches getting into the tree - if the requester asks for review
> from a module peer

s/module owner/module owner or peer/ in my mail, sure. Whoever's doing
the r= needs to be able to make the sr call, imo.

-Boris

Dave Townsend

unread,
Jan 3, 2009, 10:11:21 AM1/3/09
to

I think certainly whoever does the main review should always be able to
suggest that an sr is necessary, but a good definition of what an API
change is would help tell the patcher they need sr up front, probably
speeding the process, and also help guide the peers on when they should
be requesting the sr.

Dave Townsend

unread,
Jan 3, 2009, 10:13:46 AM1/3/09
to
On 2/1/09 10:08, timeless wrote:
> On Fri, Jan 2, 2009 at 12:02 PM, Mark Banner
>> Having to wait for the module owner to decide seems to me like it will delay
>> patches getting into the tree
>
> my patches are already delayed by years. i don't see this as a problem.

Well clearly if that is the case we shouldn't care about speeding up any
of our processes.

> you could write tests and contact all the people you're going to break
> while you wait for the module owner.

Patches should already include tests before requesting review ideally.
And identifying all the people you are going to break is of course not
reasonable.

> and write a nice MDC article and a post to m.d.<something> announcing
> your API change

Great, obviously can't post, at least not finally until the review is
complete in case changes are necessary.

Benjamin Smedberg

unread,
Jan 3, 2009, 11:36:15 AM1/3/09
to
On 1/1/09 2:41 PM, Dave Townsend wrote:

> I'd like to see some clarification though on exactly what "API" covers,
> particularly for the extensions case. Are we just talking about xpcom
> interfaces, or XBL bindings, or down to the level of objects and
> functions in common window scopes?

All of the above. Increasingly I think we should be thinking of APIs in
terms of what's reflected into JavaScript, *not* XPCOM interfaces. Things
reflected into global window scopes, such as the various functions in
utilityOverlay.js should definitely be getting an API review in addition to
code review.

--BDS

mco...@mozilla.com

unread,
Jan 4, 2009, 7:33:45 PM1/4/09
to Boris Zbarsky, dev-pl...@lists.mozilla.org
Yep, of course module peers can make that assessment.

I think I'm leaning towards Benjamin's definition of APIs, which will
definitely impact many patches in browser/toolkit. That's an expected
outcome, FWIW, but a lot of that will fall on my shoulders, at least
in the short term, and it shouldn't be a major obstacle.

-- Mike

> _______________________________________________
> dev-planning mailing list
> dev-pl...@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-planning

timeless

unread,
Jan 4, 2009, 7:53:52 PM1/4/09
to mco...@mozilla.com, Boris Zbarsky, dev-pl...@lists.mozilla.org
On Mon, Jan 5, 2009 at 2:33 AM, <mco...@mozilla.com> wrote:
> I think I'm leaning towards Benjamin's definition of APIs, which will
> definitely impact many patches in browser/toolkit. That's an expected
> outcome, FWIW, but a lot of that will fall on my shoulders, at least in the
> short term, and it shouldn't be a major obstacle.

while we're talking about APIs.

would changing an unfrozen API like nsICookieService which a major OS
vendor decided to use have been covered by the requirement for sr?

:)

Shawn Wilsher

unread,
Jan 4, 2009, 9:18:54 PM1/4/09
to time...@gmail.com, Boris Zbarsky, dev-pl...@lists.mozilla.org, mco...@mozilla.com
On 1/4/09 4:53 PM, timeless wrote:
> while we're talking about APIs.
>
> would changing an unfrozen API like nsICookieService which a major OS
> vendor decided to use have been covered by the requirement for sr?
>
It's an API, right? That seems to imply yes...

/sdwilsh

Justin Wood (Callek)

unread,
Jan 5, 2009, 12:35:51 AM1/5/09
to

Yea I think its safe to say that *.idl would qualify without question here.

That is not to say that just because it is an *.idl we should freeze it,
I would disagree there too.

--
~Justin Wood (Callek)

Dan Mosedale

unread,
Jan 5, 2009, 1:23:53 PM1/5/09
to mco...@mozilla.com, Boris Zbarsky, dev-pl...@lists.mozilla.org
On 1/4/09 4:33 PM, mco...@mozilla.com wrote:
> Yep, of course module peers can make that assessment.
>
> I think I'm leaning towards Benjamin's definition of APIs, which will
> definitely impact many patches in browser/toolkit. That's an expected
> outcome, FWIW, but a lot of that will fall on my shoulders, at least in
> the short term, and it shouldn't be a major obstacle.
>

I'm mildly concerned that this reverts some of the gain / ability to
iterate quickly that the existing browser/toolkit review policies were
created to provide. That said, Gecko is in a very different place now
than it was then, so perhaps that's the right thing to do.

Dan

Dan Mosedale

unread,
Jan 5, 2009, 1:23:53 PM1/5/09
to mco...@mozilla.com, Boris Zbarsky, dev-pl...@lists.mozilla.org
On 1/4/09 4:33 PM, mco...@mozilla.com wrote:
> Yep, of course module peers can make that assessment.
>
> I think I'm leaning towards Benjamin's definition of APIs, which will
> definitely impact many patches in browser/toolkit. That's an expected
> outcome, FWIW, but a lot of that will fall on my shoulders, at least in
> the short term, and it shouldn't be a major obstacle.
>

I'm mildly concerned that this reverts some of the gain / ability to

Benjamin Smedberg

unread,
Jan 5, 2009, 2:00:17 PM1/5/09
to

When FF/toolkit were getting off the ground (pre 0.9 or so) it was all new
code, and a skunkworks project in many ways. If we were doing FF/toolkit
now, it would probably still be done as an incubator repository and wouldn't
be subject to SR. This is for example how the new embedding harness works,
and to some extent Fennec.

We don't particularly want to impede new UI features (many of which have no
API impact), nor bug fixing. What we do want is to make sure that changes
that cross modules are designed, and don't impose high costs later.

--BDS

Dan Mosedale

unread,
Jan 6, 2009, 1:30:00 PM1/6/09
to
On 1/5/09 11:00 AM, Benjamin Smedberg wrote:
> We don't particularly want to impede new UI features (many of which have no
> API impact), nor bug fixing.

This is what confuses me. My interpretation of the rest of this thread
(and my intuition as well) is that huge chunks of the UI are implicitly
APIs that extensions depend on, and they would be covered by this
policy. Am I misinterpreting?

Dan

Benjamin Smedberg

unread,
Jan 6, 2009, 1:42:35 PM1/6/09
to

Hrm. Just because extensions could depend on any particular detail of our UI
doesn't mean that it should be considered an "API". The particular IDs or
locations of menu items are not, IMO, an API, even though extension authors
depend on them to get overlay positions correct.

The documented behavior of <browser> or <tabbrowser> is an API: changes to
it should have design review by an sr.

The internal implementation of the <browser> or <tabbrowser> is not an API:
that is, there are internal _methods() and an internal XBL content structure
used to implement the documented API.

The line is going to be blurry in some cases. Are you worried about the sr
requirement slowing down development in these cases?

--BDS

Justin Wood (Callek)

unread,
Jan 6, 2009, 7:47:46 PM1/6/09
to
On 1/6/2009 1:42 PM, Benjamin Smedberg wrote:
> On 1/6/09 1:30 PM, Dan Mosedale wrote:
>> On 1/5/09 11:00 AM, Benjamin Smedberg wrote:
>>> We don't particularly want to impede new UI features (many of which
>>> have no
>>> API impact), nor bug fixing.
>> This is what confuses me. My interpretation of the rest of this thread
>> (and my intuition as well) is that huge chunks of the UI are implicitly
>> APIs that extensions depend on, and they would be covered by this
>> policy. Am I misinterpreting?
>
> Hrm. Just because extensions could depend on any particular detail of our UI
> doesn't mean that it should be considered an "API". The particular IDs or
> locations of menu items are not, IMO, an API, even though extension authors
> depend on them to get overlay positions correct.
>
> The documented behavior of<browser> or<tabbrowser> is an API: changes to
> it should have design review by an sr.
>
> The internal implementation of the<browser> or<tabbrowser> is not an API:
> that is, there are internal _methods() and an internal XBL content structure
> used to implement the documented API.

Ahh I did not get that impression from the rest of this thread.

But surely toolkit/ widgets (XBL-wise) are easily acknowledged as API.
Do we consider contentUtils.js API or browser internal?

At what level of abstraction do we want to quantify API?

> The line is going to be blurry in some cases. Are you worried about the sr
> requirement slowing down development in these cases?

Can't we error on the side of "solid line" and let rarer blurry cases
reside on reviewers discretion instead of "blurry line by default"
causing more false requests and added burden on patch author, reviewers
and sr itself?

--
~Justin Wood (Callek)

Shawn Wilsher

unread,
Jan 7, 2009, 10:58:08 AM1/7/09
to Justin Wood (Callek), dev-pl...@lists.mozilla.org
On 1/6/09 4:47 PM, Justin Wood (Callek) wrote:
> Can't we error on the side of "solid line" and let rarer blurry cases
> reside on reviewers discretion instead of "blurry line by default"
> causing more false requests and added burden on patch author,
> reviewers and sr itself?
I would really really hope that module owners/peers know when something
should be sr'd. Yeah, the patch author might not know, so there could
be a bit more time added to the review process if they didn't think it
needed sr.

I don't think it's a good idea to make black and white rules in a world
full of shades of gray.

/sdwilsh

timeless

unread,
Jan 7, 2009, 11:31:17 AM1/7/09
to Shawn Wilsher, dev-pl...@lists.mozilla.org, Justin Wood (Callek)
On Wed, Jan 7, 2009 at 5:58 PM, Shawn Wilsher <sdw...@mozilla.com> wrote:
> I would really really hope that module owners/peers know when something
> should be sr'd. Yeah, the patch author might not know, so there could be a
> bit more time added to the review process if they didn't think it needed sr.

it's an interesting wish, but history has shown that even for idl
things, we haven't really thought much about it.

Benjamin Smedberg

unread,
Jan 7, 2009, 11:44:26 AM1/7/09
to
On 1/6/09 7:47 PM, Justin Wood (Callek) wrote:

> But surely toolkit/ widgets (XBL-wise) are easily acknowledged as API.
> Do we consider contentUtils.js API or browser internal?

They are functions at global scope in the browser chrome which extensions
use. Whether we want them to be API or not, I think they are de-facto APIs
that extensions use.

>> The line is going to be blurry in some cases. Are you worried about
>> the sr
>> requirement slowing down development in these cases?
>
> Can't we error on the side of "solid line" and let rarer blurry cases
> reside on reviewers discretion instead of "blurry line by default"
> causing more false requests and added burden on patch author, reviewers
> and sr itself?

If we had to make a solid line, I think we'd err more on the side of
"everything is an API". But I think it's better to let common sense reign
than try to codify everything.

--BDS

Mike Connor

unread,
Jan 7, 2009, 12:37:21 PM1/7/09
to Benjamin Smedberg, dev-pl...@lists.mozilla.org

On Jan 7, 2009, at 11:44 AM, Benjamin Smedberg wrote:

> If we had to make a solid line, I think we'd err more on the side of
> "everything is an API". But I think it's better to let common sense
> reign
> than try to codify everything.

I think we'll actually evolve an understanding over time of what does
and doesn't need review. Best to err on the side of caution in the
short term, of course.

People should remember that, in general, the SR step is to review the
changes that require SR. It isn't necessarily "review the entire
patch" as much as "review the parts that need SR." This means that,
in practice, SR will often be a fraction of the total review step, so
we should be able to keep up in a timely fashion.

-- Mike

Michael Connor

unread,
Mar 10, 2009, 2:34:55 PM3/10/09
to dev-pl...@lists.mozilla.org

On 7-Jan-09, at 12:37 PM, Mike Connor wrote:

>
> On Jan 7, 2009, at 11:44 AM, Benjamin Smedberg wrote:
>

>> If we had to make a solid line, I think we'd err more on the side of
>> "everything is an API". But I think it's better to let common sense
>> reign
>> than try to codify everything.
>

> I think we'll actually evolve an understanding over time of what
> does and doesn't need review. Best to err on the side of caution in
> the short term, of course.
>
> People should remember that, in general, the SR step is to review
> the changes that require SR. It isn't necessarily "review the
> entire patch" as much as "review the parts that need SR." This
> means that, in practice, SR will often be a fraction of the total
> review step, so we should be able to keep up in a timely fashion.

Okay, I think there was pretty broad consensus on this change. I
think we should go ahead and make this change starting as of March
15th (to give me time to get the edits to the policy docs in place).
I'll try to get those done in the next two days, so we can have an
edit pass etc.

Thanks to everyone who commented.

-- Mike

Dave Townsend

unread,
Mar 16, 2009, 4:42:11 AM3/16/09
to

I see no announcement or new policy docs so I assume the changes aren't
in place yet?

0 new messages