Hey everyone,
We discussed the pros and cons of adding a Beta to the Firefox 3  
schedule at last week's development [1] and product delivery [2]  
meetings, and then had a follow up call with representatives from the  
build, QA, and development teams to review the commentary and  
discussion and come back with a proposal.
// Proposal
After that discussion, the decision was to propose that we add a third  
beta milestone for Firefox 3.1, as well as a requirement that by  
Thursday, December 4th, all component owners re-triage their blocker  
lists in order to identify which require beta exposure, and also to  
develop estimates for driving those lists to zero. From here forward  
we will focus on blocker numbers at our weekly meetings, requiring  
component leads to present plans for reducing the numbers over time to  
ensure we're trending in the right direction. We believe that we can  
add this milestone without a major impact on the shipping schedule for  
the release.
// Rationale
We don't have full clarity into the nature of our remaining blockers,  
some of which likely require beta exposure. In order to close this  
release, a re-triaging (like we did around Firefox 3 Beta 4) is  
required both to identify the severity of the remaining blockers and  
the time required to address them properly. Further, the impact of  
late Beta 2 landings such as Private Browsing Mode, Worker Threads,  
Speculative Parsing and TraceMonkey will benefit from multiple beta  
releases.
The insertion of another beta also offers another public consultation  
point for web and add-on developers, allowing us to react to their  
feedback. Again, with wide-reaching changes like those listed above,  
it was felt that this was prudent, especially if it could be done  
without major impact to schedule.
Finally, as mentioned during the meetings last week, since we will be  
holding off from any additional changes that would affect themers and  
add-on developers, this gives our add-ons community a full beta cycle  
to test and update their add-ons. The hope is that when Beta 3 is  
released, compatibility with our existing add-ons will be high,  
encouraging more users to shift to the beta to provide their usage  
feedback.
// Process
* Only patches for blocker bugs and those with explicit approval will  
be accepted into the Gecko 1.9.1 / Firefox 3.1 codebase (initially to  
be on the mozilla-central repository, soon to be branched to the  
mozilla-1.9.1 repository).
* Component leads will re-triage their blocking bugs marking those  
requiring Beta exposure as "P1", and those required for release as  
"P2"; any other priority will imply that the blocker is a significant  
issue but one which should only get attention if the P1s and P2s  
aren't being actively worked. This is to be completed by Thursday,  
December 4th.
* Regular triage meetings will be held to process outstanding blocker  
nominations and approval requests. At the weekly development meetings  
the blocker fix rates and acceptance rates will be presented &  
discussed to ensure we keep an eye on progress.
* No new features will be accepted into Beta 3. Limited string changes  
will be accepted. No add-on compatibility changes will be accepted.
* Beta 3 code freeze will be scheduled based on the results of the  
triage, but is expected to be in early January 2009.
// Discussion
Please discuss the aspects of this proposal on this thread (follow-up  
to dev.planning). We will also discuss it during today's development  
meeting at 11am PST (see https://wiki.mozilla.org/Platform/2008-11-25  
for details).
cheers,
mike
[1]: https://wiki.mozilla.org/Platform/2008-11-18
[2]: https://wiki.mozilla.org/Firefox3.1/StatusMeetings/2008-11-19
We still want to make the promise to add-ons developers that beta2
will be "stable enough" to start mass converting add-ons, and your
email does mention this.
It follows in my mind that by making this statement we're committing
to keep major functionality after beta2.  For example, it would be bad
if someone wants to take advantage of DOM worker threads in their
add-on, and we pull it before beta3.
I just want to call this out as something that's an implicit promise
we're making.  If we're not ready to make that promise we should make
sure we say so.
--Chris
For what it's worth, I have some changes that still need to happen to 
the tab drag/drop stuff that are technically add-on compat changes (in 
that they change the notifications add-ons see), but are actually aiming 
to reduce the bar for add-ons working correctly.  Would those be 
accepted for beta 3?  The current notifications are just wildly wrong 
when a page that's still loading is dragged to a different window.
-Boris
> We still want to make the promise to add-ons developers that beta2
> will be "stable enough" to start mass converting add-ons, and your
> email does mention this.
Yes, this is an important plank of both the rationale and the process!
> It follows in my mind that by making this statement we're committing
> to keep major functionality after beta2.  For example, it would be bad
> if someone wants to take advantage of DOM worker threads in their
> add-on, and we pull it before beta3.
Part of the Beta 2 criteria was that anything that made it into that  
beta was being accepted as our set of technologies to ship in Firefox  
3.1. I concur that we're making this implicit promise, and will make  
sure that's a point drawn clearly on the call.
Of course, if it turns out that worker threads puts our overall  
release at risk, or introduces massive-scope security problems, etc,  
we might have to re-evaluate. We're never going to ship something  
unless it's ready. However, because we're making a commitment to our  
add-on developers, it wouldn't be removed lightly or without  
evaluating alternatives.
> I just want to call this out as something that's an implicit promise
> we're making.  If we're not ready to make that promise we should make
> sure we say so.
This is a little tricky, as I don't want to walk down the route where  
we're making platform-promises to anyone. Firefox is the product  
that's driving here, and we'll do what's best for Firefox. Wherever  
possible we will do things to work with and make things easier for our  
add-on community, but we can't get into a position where we limit our  
ability to make required changes to the codebase in order to serve  
that portion of our community. I'm perhaps focusing on a semantic nit  
here (about what "required") means, and indeed it would have to be a  
pretty major issue to appear at this point to make us change course,  
but I don't want to make blanket promises that handcuff us, either.
cheers,
mike
It depends. If I were an add-on developer, and I started building my  
add-on one way, would that still work after these changes? That's what  
I'd consider "compatibility". Improvements will always be accepted. :)
cheers,
mike
That really depends on how invasive your add-on was, what assumptions it 
made, and how much it tried to work around the existing bugginess.
Put another way, any change in the event sequence add-ons see is a 
potential add-on failure point if add-ons make enough assumptions.
I think in this case add-ons that don't make boneheaded assumptions will 
still work after these changes, and the number of addons that don't make 
boneheaded assumptions and still work will increase.
-Boris
> On 25-Nov-08, at 11:16 AM, Boris Zbarsky wrote:
>
> It depends. If I were an add-on developer, and I started building my  
> add-on one way, would that still work after these changes? That's  
> what I'd consider "compatibility". Improvements will always be  
> accepted. :)
I think that if the current way is broken, and this enables a more  
stable and reliable addon, we should tell addon authors that this  
specific piece needs work, and b2 should not be their target for that  
specific functionality.  If the implementation of a new feature is  
flawed, we should tell addon authors that we're fixing it and just do  
it, rather than ship a substandard impl.  This would obviously need to  
be done by b3, of course.
-- Mike
But what if extensions don't work with 3.1b2? I can't get many good 
things to happen with -chrome <chromeurl> based extensions.
jjb
Do they work with 3.1b1? With 3.0.x? Bug numbers? Test cases?
Mike
No, yes, 465993, 465993.
> 
> Mike
/sdwilsh
You should probably nominate things like this when you find them.
>
>
>> Mike
> _______________________________________________
> dev-planning mailing list
> dev-pl...@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-planning
>>
>> No, yes, 465993, 465993.
> 
> You should probably nominate things like this when you find them.
I tried, I guess I put the ? thing on the wrong slot?
I think that's one point that is rarely explicitely stated but often 
felt in a hard way by the platform/XULRunner community, and if we're 
serious about spreading the paltform and XULRunner, we need to think 
hard about this topic - probably not right at this point in the 3.1 
cycle, but generally.
Robert Kaiser
Without disagreeing that there's a lot to talk about here, in this  
case I was speaking more in terms of Firefox-as-platform (for add-on  
developers) than Gecko-as-platform (which is I think more relevant to  
the point you're making.)
cheers,
mike
Ah, OK.
Robert Kaiser
That's the same platform.  XULRunner doesn't get its own... anything, 
pretty much.  If, hypothetically, worker threads gets dropped in Firefox 
3.1, it won't ever show up in XULRunner 1.9.1.  Please either stop 
separating the two in your mind, or actually separate them and have 
people actually driving XULRunner by itself?
-- 
Mook
They're not fully separate in my head, no. The point I was making was  
specifically about the add-on community, which is a very different  
subset than the application-built-on-Gecko community.
People are welcome to drive XULRunner by itself. I'm pretty sure some  
people are.
cheers,
mike
Thanks.
Being a member of application-built-on-Gecko community with an 
application that uses worker threads, I am worried about them being 
dropped even hypothetically.
Could you please provide some links to where this topic is discussed in 
details?
-- 
Sergey Yanovich
cheers,
mike
-- 
Sergey Yanovich
My only concern here is suddenly it seems a majorly wanted feature for 
SM2 (which will base off 1.9.1) was just backed out due to a possible 
test failure, (harder for patches author to figure out since test was 
mac-only, we'll try to figure it out though).. anyway, its a patch that 
had been waiting for gavins review since before b1, (as in quite a long 
while) he just reviewed it, but it does have potentially addon breaking 
changes...
See Bug 407725 for the bug I talk about.
And Bug 467045 for an actual addon that broke due to that landing.
Will SM be able to have time to investigate and still get this in? (if 
nothing else than because we've tried so hard to get the bug fixed) ;-)
[even better if because: it appears (to me, but again hard to test 
locally) that the test failure failure due to a perf increase in a 
mini-race-condition]
-- 
~Justin Wood (Callek)
Actually, this already was tried to get in for 1.9.0 (!) but took 
several longer review cycles for the smaller fixes until this last 
really long one for the to-believed-final patch. I really really hope we 
can get this back in again very soon as it is something that surely 
should have a nice period of nightly testing and at least one beta 
before it gets into a final - and it's _the_ blocker for 1.9.1-based 
SeaMonkey 2 getting customizable toolbar capability at all.
Robert Kaiser