" /> preed's blah-blah-blahg: March 2008 Archives

« February 2008 | Main | April 2008 »

March 31, 2008

A First Timer, All Over Again

[Editor's note: this was written on Thursday evening, but I spent my weekend moving1; by the time I got Internet Tubes installed at the new place, the weekend was over.]

Astute readers may have noticed we released Songbird 0.5 last night. It's got some pretty cool fu in it, too! Definitely worth playing with.

A lot of people worked really hard on this release, putting in plenty long hours and a couple of long weekends.

The first release any release engineer does in a new environment is noteworthy. It usually feels scarier than it really is, and you end up taking a lot of notes, not only for the "gotchas," but for the "Oh man, we gotta fix that"-s.

It's weird that I vividly remember the first product I shipped2 ever since I've been a build engineer.

At VMware, it was a pretty disconnected, formal process involving creating tarballs of specific formats for another group3 to get them ready for the website. There was some weird rule about only being able to do so many releases at certain points in time, because the website could only handle so much traffic. There was also an ISO image that got created for those Enterprising individuals who only took their software in bits smushed onto plastic-form.

It was all very interesting, but being an enterprise product, the team seldom got any feedback, good or bad, until a couple of months later when "enough early adopters" had installed the new software to get an idea of what was and wasn't broken. In some sense, it was4 something like sending your kid off to college... knowing you'd see them again for Christmas, but that's about it.

Contrast that with my first Mozilla release, where the Community was abuzz with news of the release5, and the second I posted the bits, people started downloading them. I vividly remember sitting at my desk, ready to press Enter on the rsync command that would dump updates out to millions of users.

Chase was standing behind me. "Looks good," he said, and patted me on the back. I rolled my chair back from my keyboard, and stuck my finger out to press the key. As my finger got close to the keyboard, I cringed, not unlike someone detonating a suitcase bomb, and not knowing if there were firecrackers in it, or C4.

When it was all said and done, it didn't matter which it was; I had done it right6. Chase chuckled as he went back to sit at his desk. I think he knew it at the time, but pressing "return" got progressively easier with each subsequent release, even though it was updating more and more people.

At Songbird, the experience was much the same, and given that the technologies involved are similar, it was mostly an exercise in learning where Songbird's engineers had moved the mines in the field that is Mozilla's Release Process.7

Songbird's requirements, of course, are very different than Firefox and Thunderbird's, and it's been very interesting to see how the same problem was addressed with different contextual constraints.

The handoff mechanics are similar to Firefox: updates get verified in a staging environment, installers then get posted, and then updates get pushed to production8. I had to learn to shut up when Redfive was explaining something to me, since lots of things really are the same in the Birdnest, but lots of things are not, and the reasons behind those deltas are really important. I didn't even notice that I was doing the same bomb-in-suitcase maneuver until Redfive asked me about it as I was getting ready to run the push_production_all script.

Speaking of history repeating itself, we had a minor problem with AUS updates that turned out to be due to a typo on my part9. In a weird way, I felt right at home again. (It probably had something to do with having to read updater's source code.)

I must admit, the one thing I love about both release processes like Songbird and Mozilla's is the fact that you run a command, and Stuff Happens (tm).

Immediately.

People get the software, and they're using it, and they want to tell you about that experience immediately. It's much more like sending a kid off to kindergarten: you know you'll get to hear about their day shortly, and it's almost always either a really good day, or a really, really bad day10. Either way, it keeps you engaged, and you can work on helping make the next time around better.

Songbird does have one thing up on Mozilla's release process: right after we shipped and updates starting permeating the 'Net, we all gathered around to savor a bottle of scotch.

Any release checklist that has that codified on it11 is definitely a place I can get on board with.

__________________________
1 More on that shortly...
2 Which is, of course, overloaded in our industry, but doubly so in ReleaseLand, since "shipping" usually involves being the person to see the product out the door
3 IT, as I remember
4 I can only imagine...
5 As they always are
6 Thanks to QA, as always, for helping me make sure I did get it right
7 Which, having implemented portions of that process, in policy and code, I say with an unwavering amount of love
8 All while other teams are busily working on things like release notes and website updates that I'm, frankly, quite happy not to have to work on
9 Yah, we've NEVER HEARD OF THAT BEFORE.
10 But don't read too much into that analogy, though.
11 The closer the drinking is to the end of the checklist, of course, the better; this metric actually turns out to be a pretty good measure of the quality of an organization's release process...

March 23, 2008

Head in the Clouds, Juliet

It occurred to me this weekend that I haven't written about going aloft in quite some time1, which is especially egregious given that I'm a birder these days.


Multi-hundred dollar bread-bowl of clam chowder.
And Mexican Coke.

We happened to get Good Friday off2, so I decided to reserve a plane for ten hours to go... somewhere, on the off chance that the weather would be good.

The weather turned out to be beautiful!

I didn't have the time to really do any flight planning, so I ended up asking a close friend to head down to San Luis Obispo, the town of my alma mater, for a $600 bowl of clam chowder which, since I've flown the route more-fingers-than-I-have times, requires all of five minutes of flight planning3.

We ended up going down the coastal route instead of the inner-Salinas Valley route4, which provided great beach views for almost ninety minutes. Plus, I was able to enjoy the fifty-plus miles of visibility on the flight back by having my friend fly us home5.

My friend saw fit to capture the flight with his new camera, documenting both his expert pre-flight suggestion and a secret routine all pilots conduct before every flight, but that is an entirely unmentionable ritual of the industry.

The entire Flicker6 set here.

______________________________
1 a couple of posts excluded from the count
2 which is no one else in the known Government Holiday-world (tm) seems to get off, but on the other hand, it's smack dab in the middle of MLK-day and Memorial Day, so it turns out to be a better distribution of holiday-ness.
3 I mean, what's easier than KNUQ VPLEX SNS SARDO—you want to be sure to avoid restricted-2504—PRB direct?!!
4 KNUQ VPLEX KMRY BSR MQO direct, roughly...
5 I was somewhat mean; I turned the GPS off, and said "if we get to the Oregon or Nevada borders, I'll let ya know we've gone too far."
6 Non-web two-point-oh spelling

March 3, 2008

What does God need with a starship?

There is currently an interesting discussion1 going on right now in mozilla.dev.platform which asks a seemingly simple—but if the number of responses are any indication, actually difficult—question: "Is 'Gecko' 1.9 only Firefox?"

It's definitely required reading if you hack on anything built on the Mozilla platform that isn't Firefox.

To be honest, I find it a little surprising that others find it surprising that the answer is anything but "Yes."

There are a lot of principles discussed in the newsgroup posting, but in practice, ever since I was involved with Firefox releases, it is Firefox—not Thunderbird, not SeaMonkey, not Calendar, and not (arguably most appropriately) XULRunner— that has driven Gecko releases. The best determining factor of Gecko releases, i.e. when the Gecko platform version is bumped, was originally standardized as part of the Firefox release process, and is now codified by the release automation.2

I fully admit that I am interpreting the question from the (possibly too narrow) standpoint that I'm mostly familiar with: the Firefox release process. It is entirely possible that the triage process is different.3 But it has the benefit of being entirely devoid of a process4 with lots of human input and interaction which necessarily implies non-deterministic outcomes.

But the answer to "When is Gecko released?" is pretty binary. Since there are no separate XULRunner releases, just look at when the Gecko versions are bumped: for quite some time, it's been at Firefox release time.

Immaterial of how we want to do things or would like to do them in a utopian world, that's what the code in CVS does today, right now. It would seem the requirements and triage process mimic the code, namely in that Firefox drives the process.

Almost ten months ago now, it was stated pretty clearly that "XULRunner improvements should benefit a range of other applications but the focus of Mozilla employees will be on browsing." There was a lot of discussion about what the material impact of the policy statement would be, including my own two cents on the matter.

I may be misunderstanding the posit of the original question posed in the newsgroup, but it would seem that this is an concrete, identifiable example of a question directly arises from a policy of having a singular product and its release schedule drive the development of the platform.

If this isn't the outcome developers on Mozilla's non-Firefox projects expected, then it may be time to ask "where was the disconnect between what was said and what was heard?"

For me, the discussion raises some meta-questions that, to my mind, are not only more important than "Is 'Gecko' 1.9 only Firefox?" but whose answers also turn out to be more relevant than just what happens in the next N months, as lots of people work really hard to get an awesome Firefox 3.0 out the door:

  • Is there going to be a separate XULRunner 1.9.0 release before or during5 the Firefox 3.0 release time frame? If so, how are triage decisions for that release (being) made? Does the process include stakeholders for projects that aren't-Firefox?
  • (I admit that this may be a totally stupid question on my part, but it's totally unclear to me:) who is the final determiner of the answer to the above question? There's a lot of really good discussion going on in the newsgroups, but who makes the final call?

    Everyone tells me drivers@ and staff@ are "gone," and have been for quite some time. Does this mean the Firefox 3 release drivers6 will decide what a "Gecko 1.9" is? The Steering Committee? A vote of everyone who's posted more than five times in mozilla.dev.planning?


  • If that answer is the Firefox 3 release drivers or the Steering Committee, as an open source project, is it relevant to ask if any of the lessons learned in previous days—when the Mozilla Project was largely dependent on a single company, i.e. AOL/Netscape, for engineering work—are applicable?7

Distinct from any discussion of the questions above, I stand ready, as I did ten months ago, to help in any way that I can. Like most people, I use and adore Firefox and agree with the argument that its Mozilla Corporation's best lever to move the (Open) Web forward.

But I also use and love Thunderbird. I have used9, and relied upon Calendar. And I believe that the XULRunner platform is the best lever the Mozilla Project has to future-proof against whatever develops on the Internet10, as well as provide a compelling answer to proprietary rich Internet application platforms from you-know-who.

Probably the most useful answer is the one to the question: tell me, an engineer with admittedly limited experience with the Mozilla build system, Tinderbox, and the Mozilla release process, how I can help the answer to the original question be a demonstrable, unequivocal "No."

_______________________
1 Which was brought to my attention by a Rumbling Thunder post
2 rhelmer implemented the first version; I added the respin logic
3 Although, blocking1.9-flag triage was what prompted the question originally, so who knows
4 Which Brendan aptly describes as "fluid"
5 "after Firefox" is a possibility to, but arguably of limited utility
6 Is this a complete/up-to-date list? A couple of blocking1.9 flags have been set by people absent from the list.
7 The question is posed merely by the fact that those two groups are made up of entirely8 Mozilla Corporation employees. I'm not implying any judgment regarding people who work on those groups; I'm merely pattern matching their relational structure to the Project from previous eras.
8 or nearly entirely; the FFx3 drivers list has one non-MoCo-er on it, that I can find anyway
9 and with the number of meetings I'm now responsible for, need to set up again
10 Who knows what we'll all be using in ten years. Gopher could make a comeback!