A. The trunk is the central source code that is used for continuous and ongoing development. Trunk builds contain the very latest bleeding-edge changes and updates. However, the trunk can also be very unstable at times, so it's good to ask around before using trunk builds.
Latest trunk builds: ftp://ftp.mozilla.org/pub/firefox/nightly/latest-trunk/
Q. What is a branch?
A. Branches are "forks" in the code, split from the trunk and destined to become end-user releases. At conception, a branch contains everything that the trunk contains, but from that point onwards, only certain fixes or changes will be accepted. Therefore, over time, the branch becomes more stable.
Q. Why branch? Wouldn't it be better to have everyone working towards a release?
A. Many developers prefer to work on areas of the code which are too risky to change when approaching a release. Some of their changes may also take months to test and implement correctly. Their changes will be made to the trunk so that they don't delay the release and will be picked up in future branches.
Q. How can you distinguish between trunk and branch builds?
A. The main way you can determine if you are using a trunk or branch build is to click the "Help" menu and choose "About". You should see a string that looks something like this:
1.9.0 Branch:
Code: Select all
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.0.13pre) Gecko/20090727 GranParadiso/3.0.13pre
1.9.1 Branch:
Code: Select all
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2pre) Gecko/20090727 Shiretoko/3.5.2pre
Trunk:
Code: Select all
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.3a4pre) Gecko/20100407 Minefield/3.7a4pre
The part that you want to note is the Gecko revision number (rv) and the Firefox version string. These correspond to which build you are using. It works something like this:
rv:1.7.x and Firefox 1.0.x = Gecko 1.7 (Firefox 1.0) Branch.
rv:1.8.0.x and Firefox (or Deer Park) 1.5.0.x = Gecko 1.8.0 (Firefox 1.5) Branch.
rv:1.8.1.x and Firefox (or Bon Echo) 2.0.0.x = Gecko 1.8.1 (Firefox 2) Branch.
rv:1.9.0.x and Firefox (or Gran Paradiso) 3.0.x = Gecko 1.9.0 (Firefox 3.0) Branch.
rv:1.9.1.x and Firefox (or Shiroteko) 3.5.x = Gecko 1.9.1 (Firefox 3.5) Branch.
rv:1.9.2.x and Firefox (or Namoroka) 3.6 = Gecko 1.9.2 (Firefox 3.6) Branch.
rv:1.9.2.4pre and Firefox (or Lorentz) 3.6.4pre and onwards = Gecko 1.9.2.x (Firefox 3.6) Branch - backporting out-of-process plugin support from trunk.
rv:1.9.3.x and Firefox (or Minefield) 3.7a1pre and onwards = Gecko 1.9.3 Trunk (towards Firefox 3.7)
See the current roadmap for clarification and more info: https://wiki.mozilla.org/Talk:Firefox/Roadmap
Q. Where can I find out the recent changes that have been made to the trunk or a branch?
A. Read the relevant nightly threads in the builds forum. An excellent unofficial changelog is maintained at The Burning Edge: http://www.squarefree.com/burningedge/releases/