Subject: Re: Versioning?
To: Trouble Free RecepPFFFFFFFFFFFFFFFF <greywolf@starwolf.starwolf.com>
From: Greg Hudson <ghudson@mit.edu>
List: current-users
Date: 12/07/1998 18:58:44
You're gonna get about 80 replies to that question message, but I bet
mine will be the only one with ASCII art.

Here is a little diagram of NetBSD development from a little while
back up to the current point:


	----*----1.2A----*---1.3A---...---1.3I
	    |            |
	   1.2		1.3
	    |            |
	   1.2.1        1.3.1
	                 |
	                1.3.2

The horizontal line across the top is called "the mainline".  If at
any point you snapshot the mainline, you'll get a NetBSD with a
version number with a letter at the end, like 1.3H.  The "1.3" part
signifies the last major or minor release, and letter changes indicate
when kernel interfaces have changed.

The vertical are release branches.  Prior to a major or minor release,
we create a branch in the repository.  Development continues unabated
on the mainline--the VM system gets replaced, BIND takes a major
version upgrade, whatever--but on the release branch we mostly just
fix bugs, hopefully in well understood and tested ways.

1.3.3 is a release off the 1.3 branch.  It doesn't have UVM or wscons
or RAIDframe or any of the other cool but not really ready changes
we've done since the 1.3 release branch was created.  It just has bug
fixes, and new drivers, and stuff like that.  (And a partition ID
change in the i386 port and a new XFree release.  I'm not too fond of
the partition ID change, but then I don't contribute much, so nobody
consulted me.)

1.4 will be a release based on a new release branch which doesn't
exist yet, but will have all the cool stuff currently on the mainline
(which you currently know of as 1.3I).

Nobody knows what will trigger the fabled major version bump, because
nobody's made that decision.  There's some speculation that a
preemptible kernel with SMP support is the critical change.