maybe stupid question: difference between branch and trunk?

Discussion about official Mozilla Firefox builds
the-me
Posts: 64
Joined: January 17th, 2003, 2:58 am
Contact:

maybe stupid question: difference between branch and trunk?

Post by the-me »

Hi, I have searched a bit now and I still don't get it - what is the difference between firefox BRANCH and firefox TRUNK? and is any of this related to the CVS vs. Milstone-difference? (I couldn't see how ...)

Sorry if this is an extraordinary stupid question, but nevertheless I don't get it 8-[
User avatar
LoyC
Posts: 7
Joined: May 15th, 2004, 2:17 am
Contact:

Post by LoyC »

mmoy's definiton:
A branch build is a fork of the code off the trunk which is the mainline code. The purpose of the branch is to ensure stability with only bugfixes going in that are not destabilizing. Meanwhile all sorts of junk goes into the trunk while the branch heads towards a public release build.

Jack's explanation:
The trunk is an ever moving, ever evolving piece of work. When it's at a relatively stable point (i.e. few bugs), they copy the trunk into a seperate project called a branch. The trunk keeps on moving and evolving, adding and fixing things, while the branch that was just cut off from the trunk is more stable and is honed and polished down to the point where it has as few bugs as possible, and is then released as a milestone version, i.e. Firebird 0.6.1 or Firebird 0.7. Meanwhile, the nightly versions based off of the trunk contain the + next to their version number, to remind people that it's not a milestone version they're dealing with, it's the trunk - i.e., alpha version.

Think of trunk as alpha version of software, and branch as beta version of software. For now anyway, until Firebird hits 1.0. 0.7+ connotates that the version you're using is based on the trunk after the 0.7 branch was cut. Just as 0.6.1+ connotated that the version you used was based on the trunk after the 0.6.1 branch was cut. Firebird nightlies will stay at version 0.7+ until either 0.7.1 is branched, or 0.8, whichever the developers decide on.

pljone's explanation:
The source for the browser is held on a database with a structure like a tree. Trunk is the main line of the code's development. Branches are copies of the trunk taken at certain intervals. Trunk should get new features first (*cough*Thunderbird Junk detection*cough*). Branches are generally feature-stable and most work concentrates on bugfixes.

Then there are releases - these are "dead" from a point of view of development but were identified as sufficiently bug-free to be announced to the world at large. (Branches are generally on the way to becoming releases.)

So, as a rule of thumb:
Trunk - bleeding edge features, with all the bugs you could ask for - daily builds
Branch - more features than a release, fewer bugs than trunk - daily builds
Release - you get what you get - one-off build

chob's comment:
<b>"hard to say, but it seems that firefox is getting worse every time i see it"</b>
What is this crap? Firefox branch is heading towards a final, stable, solid release (which is good) whilst on the trunk the hardcore work is still being done for future versions (which is good).
I don't get people moaning about how unstable and how many regressions the trunk has. That's what it's meant to have, so work can go on with it whilst the branch heads for final 1.0.

This should be made a sticky.
Win2k SP4 Athlon "Thunderbird" 1Ghz on ABIT KT7 784MB Ram
Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.7.6) Gecko/20050223 Firefox/1.0.1

Previously: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7) Gecko/20040618 Firefox/0.9 (MOOX-AV) [BRANCH_P2_P3 build]
the-me
Posts: 64
Joined: January 17th, 2003, 2:58 am
Contact:

Post by the-me »

Jo-ho, thanks very much guys! I just realize that the only place I didn't look for an answer is right here in the forums .... you might call that google poisoning: if the "God" of Internet Information Retrieval doesn't find a result in the first 10 hits, it's not there (and you may not have another god next to The One ;-) )

Anyhow, you've been very helpful, thanks for that, and I convert back to thinking and poly-godism right now :biggrin:
User avatar
alanjstr
Moderator
Posts: 9100
Joined: November 5th, 2002, 4:43 pm
Location: Anywhere but here
Contact:

Post by alanjstr »

Making sticky until someone makes an FAQ for this forum.
Former UMO Admin, Former MozillaZine General Mod
I am rarely on mozillaZine, so please do not send me a private message.
My Old Firefox config files
Lone Shepherd
Posts: 22
Joined: February 23rd, 2004, 6:06 am
Contact:

Post by Lone Shepherd »

good thread. definately not a "stupid" question.

nice compilation by LoyC. The definition of a good post.
User avatar
couldabeen
Posts: 6729
Joined: September 9th, 2003, 11:24 am
Location: I'm Right Here

Post by couldabeen »

alanjstr wrote:Making sticky until someone makes an FAQ for this forum.

Why don't you make a nice simple text page for the knowledge base?
Free Your Mind, And Your A$$ Will Follow - Funkadelic, 1970
darkonc
Posts: 4
Joined: May 17th, 2004, 10:44 pm

Post by darkonc »

Here's a semi-related question: is there a reasonably automated way to (nighly) build from a branch, rather than the trunk? I'm building for my roommates '586 box, and I figure that the more stable branches are a better idea than a trunk build.
(see my previous post on Linux '586 build and script)

I'd like to build something that other (would be) developers can use.
Greg K Nicholson
Posts: 1328
Joined: September 28th, 2003, 8:58 am
Contact:

Post by Greg K Nicholson »

A diagram I whipped up (v2)
The release dates of Firefox relative to Thunderbird are just guesses.
Last edited by Greg K Nicholson on May 18th, 2004, 11:00 am, edited 1 time in total.
the-me
Posts: 64
Joined: January 17th, 2003, 2:58 am
Contact:

Post by the-me »

hmm ... but ... well, does that mean that improvements of the browsing enginge (which is the same for all for all I know) who are incorporated in mozilla 1.7 >= rc2 are NOT part of firefox? surely not ... ?? :-k
michaell522
Posts: 2417
Joined: November 4th, 2002, 4:47 pm
Location: London, UK
Contact:

Post by michaell522 »

the-me wrote:hmm ... but ... well, does that mean that improvements of the browsing enginge (which is the same for all for all I know) who are incorporated in mozilla 1.7 >= rc2 are NOT part of firefox?

It means they won't automatically be incorporated into Firefox. However, any changes that are applied to the 1.7 branch can be separately applied to the "Aviary" branch as well.

There were a few messages in the newsgroups from developers asking how this was going to work. There wasn't really a clear answer - developers adding things to 1.7 who want to take the time to add them to the Aviary branch can do that. The Firefox devs will watch for changes happening on the 1.7 branch, and copy them across if necessary.

Not exactly what you'd call a water-tight procedure, but in theory everything that goes into 1.7 will also get into Firefox...
Greg K Nicholson
Posts: 1328
Joined: September 28th, 2003, 8:58 am
Contact:

Post by Greg K Nicholson »

See the edited diagram; the feature- and bugfix-sharing shown is for diagramatic purposes - it happens constantly.
the-me
Posts: 64
Joined: January 17th, 2003, 2:58 am
Contact:

Post by the-me »

Ok .... but one last question so that I get it right:
AVIARY now is a branch of mozilla, but at the same time the very trunk of the firefox trunk builds, right?
So according to my theory the 0.8+ branch is not in the picture, right?
michaell522
Posts: 2417
Joined: November 4th, 2002, 4:47 pm
Location: London, UK
Contact:

Post by michaell522 »

the-me wrote:Ok .... but one last question so that I get it right:
AVIARY now is a branch of mozilla, but at the same time the very trunk of the firefox trunk builds, right?

Yeah, kind of. But don't start calling it a trunk, because that'll get confusing. The aviary branch will come to an end in the medium term, and Firefox 1.1 (or maybe 1.2 or whatever) will come back to the trunk

So according to my theory the 0.8+ branch is not in the picture, right?

Not in the short term. I guess they could label the Firefox builds from the trunk 1.0+ or something, but it's not important. In a few months time, Mozilla (suite) 1.8 will be released from the trunk, with back-end improvements that won't appear in Firefox 1.0. They can be picked up in Firefox 1.1 or 1.2 or whatever. But for the moment, the picture is focused on Firefox 1.0, and everything else looks a little blurry :)
the-me
Posts: 64
Joined: January 17th, 2003, 2:58 am
Contact:

Post by the-me »

michaell wrote:
the-me wrote:Ok .... but one last question so that I get it right:
AVIARY now is a branch of mozilla, but at the same time the very trunk of the firefox trunk builds, right?


Yeah, kind of. But don't start calling it a trunk, because that'll get confusing. The aviary branch will come to an end in the medium term, and Firefox 1.1 (or maybe 1.2 or whatever) will come back to the trunk[...] But for the moment, the picture is focused on Firefox 1.0, and everything else looks a little blurry :)


Okay, I'm getting it (blurry? you bet! :-) ). So I have written a little summary about what I think I know know ...
  • the Mozilla trunk is the trunk basically for all projects.
  • from the trunk branches are split which will become releases or lines (maybe 2nd versioning number - i.e. like 1.4.2?) those branches will not incorporate mega-cool new features, only bugfixes.
  • AVIARY is the "trunk" of the upcoming Firefox 1.0, but it is a branch of the core Mozilla trunk. This branch will end after Firefox 1.0, because later versions will again be split from the core trunk (or merged back together)
  • as far as I know the core trunk will be converted - in a mid-term time range - from holding the complete suite to holding the standalone applications, so firefox, thunderbird, etc. will become the core trunk, and the whole suite will not be developed any longer (except maybe in separate branches)
  • the heaviest development is ongoing on the Mozilla trunk, whereas AVIARY is focused on the 1.0 Firefox release, therefor it will contain fewer new features and more bugfixes (thus we could call this pre-1.0 branch, right?)
  • if we have a "trunk" build it is always from the Mozilla core trunk
  • builds from the AVIARY tree should be labeled just so, because they're not a branch build (which would be 0.8+), neither a trunk build (which would be from the core trunk)


one last question is remaining: with a branch firefox build, which tree is taken? this should be - to my understanding - the release version of 0.8 just with more patches applied, right?

Okay, if this is correct I am happy, and thank you again very much for your answers!! (at last this is only out of curiosity, not really necessary for me to understand ;-) )
Post Reply