Subject: Re: NetBSD version naming - suggestion
To: Rich Neswold <rneswold@earthlink.net>
From: Greg A. Woods <woods@weird.com>
List: current-users
Date: 04/16/2003 15:30:46
[ On Wednesday, April 16, 2003 at 12:23:17 (-0500), Rich Neswold wrote: ]
> Subject: Re: NetBSD version naming - suggestion
>
> I think what confused me for the longest time (I'm a new NetBSD user) was
> that CURRENT is still being considered "1.6". Up until very recent, I've
> been trying to figure out what two letters 1.6.1 will lie between (i.e. is
> 1.6.1 between 1.6K and 1.6L? Or 1.6Q and 1.6R?)

Most of this is covered in the official NetBSD online (www)
documentation, but I'll toss in my take on it:

1.6.1 doesn't land between any -current kernel identifier.  (any
correspondence in time is strictly meaningless)

The "1.6.1" identifier is a formal release identifier on a true CVS
branch (using the CVS tag netbsd-1-6) that was started just _before_ the
"1.6A" -current identifier was first used.  The netbsd-1-6 branch first
produced the full 1.6 release, and now the 1.6.1 release.

Branches are a way of following parallel lines of development that
started from the same baseline code.  They're supported in CVS by use of
special magic branch tags.  "-current" is simply the mainline trunk
branch on which ongoing developement is done by convention (and in the
NetBSD world too).  Conventionally, and with NetBSD too, branches are
created onto which final release engineering changes can be made without
being disturbed by ongoing trunk development and without having to
freeze ongoing trunk development during the creation of a release.
These release branches also allow easy ongoing maintenance patch
releases too since they can be managed separately from ongoing trunk
(main-line) development.  Normally new features are not introduced on
release branches, especially not for maintencance (patch) releases like
1.6.1, though it seems sometimes with NetBSD this isn't strictly true,
so long as whatever it is doesn't upset any ABI or API compatability
with the previous release(s) on the same branch.

The 1.6'X' identifiers just mark interesting points in the ongoing
evolution of various system ABI/API changes during main-line development
on the trunk, and they have the "1.6" prefix because they come after the
netbsd-1-6 branch was created.  They have no real meaning from a release
engineering point of view (since release engineering is done only on the
release branches) and they normally don't have any correspondence to any
tags in CVS.  They are only a reminder to those tracking the main-line
development (-current) branch that things might break unless they more
carefully follow the full rules for building -current.

NetBSD users who use formal releases should simply ignore anything and
everything about -current, but of course that's much easier said than
done.  :-)

Perhaps things would be less confusing if NetBSD adopted something more
like FreeBSD's release engineering scheme and naming conventions,
especially if the -current ABI/API identifiers were kept totally
separate and distinct from formal release identifiers, as they mostly
are in FreeBSD.  The proposal which started this thread is more the
opposite in that it attempts to totally integrate the identifier naming
conventions for each and it uses even/odd second "level" numbers to try
to keep clashes from happening like the 1.6Q vs. 1.6.1 "clash" which
confused you.

-- 
								Greg A. Woods

+1 416 218-0098;            <g.a.woods@ieee.org>;           <woods@robohack.ca>
Planix, Inc. <woods@planix.com>; VE3TCP; Secrets of the Weird <woods@weird.com>