Firefox is gaining attention as a web browser, especially with features such as tabbed browsing and popup blocking (in addition to handy extensions such as the Web Developer Toolbar and Optomiz’ mouse gestures). And, as part of their development process, the Firefox team creates a “branch” of the code base before every major release — essentially, this creates a second copy of the code base to which they can apply small bug fixes while continuing development of larger (and potentially more unstable) patches on the “trunk”.
Here’s how the process worked one version back with Firefox 0.9. Several weeks before the release, they created an 0.9 branch (while development on the main 0.9 trunk continued). Small fixes were checked into both the branch and the trunk while larger patches (new features and so on) were checked into the trunk. Then, after the 0.9 release to the public, development on the branch ended while development on the trunk continued.
And, you could get the latest features and bug fixes by running the nightly builds of the trunk — the Mozilla build environment is setup to automatically compile builds every night so that testers can try them the next day. There would also be nightly builds of the branch but those builds wouldn’t get some of the new features that the trunk had.
However, the Mozilla group went a different route for the 1.0 release (which is now out). This time, they still created a branch for the release but many of the new features were checked into the branch instead of the trunk. So, for some of the latest features, such as the Extensions Manager, you had to go to the branch — the trunk didn’t have it. Though I’m sure they had good reason to do it this way, I’m not sure why they went this route — my understanding is that a code branch is created as an enclosed area where only small changes are made (to ensure a stable release).
So, for the last few months, you were better off downloading a nightly branch build (since the trunk didn’t have some of the latest goodies). However, now that Firefox 1.0 has been released, the development team is in the process of merging the branch back into the trunk. And, when it comes time for the next major release (1.1), they’ll resume their normal process of creating another branch (just for small bug fixes) while continuing work on the trunk.
For now, you may be wondering which builds would be a better download (the branch or the trunk). At the moment, I would stick with the 1.0 branch — even though that branch is done (development ceased on it on November 15th), the trunk is in a bit of upheaval at the moment. Remember that merging bit? Yeah, that’s going on right now — and, while some of the patches from the branch are landing gracefully, others are crash landing (some modules are becoming temporarily broken due to CVS conflicts and so on).
Within about a week, all the changes from the 0.9 branch should be checked into the trunk and back in working order. Along those lines, The Burning Edge is a handy resource — it’s a blog by Jesse Ruderman (the guy who wrote the Edit Styles bookmarklet) chronicling the state of the daily trunk builds. And, once Jesse gives the trunk the thumbs-up, I’ll be jumping right back into the trunk builds. But, until then, I’ll stick with my branch build (from November 15th, natch)