Version numbering for release DECISION!

Matthew Dillon dillon at apollo.backplane.com
Sun Mar 27 20:16:57 PST 2005


    I've decided on a version numbering scheme.  Sorry, dates are out.
    As much as dates are interesting, they create problems when dealing 
    with multiple branches.  More importantly, they do not impart the
    same sense of progress that real version numbers impart and, even
    more importantly, all kernels are moving targets and tagged with
    their build dates anyway so having a release date AND a build date 
    is simply too confusing.

    EVEN numbers denote releases.  e.g. 1.0, 1.2, 1.4, 1.6
    ODD numbers denote work-in-progress.  e.g. 1.1, 1.3, 1.5, 1.7

    -CURRENT	Will indicate a build based on the head of the CVS tree.

    -WORKING	Will indicate a build baesd on our current stable tag

		I am going to rename the tag from DragonFly_Stable to
		DragonFly_Working to avoid confusion, but not today.  This
		tag has turned out to be quite important because it allows
		developers to stay reasonably up to date but take less
		risk then the people running CURRENT.

    -RELEASE	Will indicate a build based on a release branch.

    -STABLE	Will indicate a build based on a post-release branch.

    You can probably see why I am also using odd/even numbering... so
    people can just glance at the number to get an idea of the relative
    time frame without necessarily understanding what all the keywords
    mean.

				    BRANCHING

    We are going to branch releases, starting with the one coming up. 
    However, I consider the branching of this upcoming release to be
    primarily to allow the developers sand committers to get used to the
    idea.  I do not believe that DragonFly is quite ready to officially maintain
    a release branch, but we are very close and I think we will be able to
    do it starting with the release after this one.

    Commits made to branches will contain bug fixes ONLY.  They will not
    contain any new work.  I am going to be a bit hard-nosed about this...
    FreeBSD often backported

			NO INTENTION TO MAINTAIN PARALLEL RELEASES

    I have no intention of maintaining parallel releases.  e.g. FreeBSD-5
    and FreeBSD-6 are parallel-maintained releases.  We aren't doing that.
    One reason is that, well, it doesn't work too well anyway, any time 
    you backport major new features things break.  Another reason is that
    developers wind up spending too much time in one release to the
    detriment of the other, to the detriment of the project.  So we aren't
    going to do it.

				    EXAMPLES

    DragonFly 1.2-RELEASE	- Our next release

    DragonFly 1.2-STABLE	- Builds based on commits made on the release
				  branch after the release will be called
				  -STABLE, with the same version number of 
				  the release.

    DragonFly 1.3-CURRENT	- After we release, the HEAD of the CVS tree
				  will become 1.3.

    DragonFly 1.3-WORKING	- And our slip tag, denoting a 'reasonably
				  stable version of current work' will use
				  the same version and be called -WORKING.

				ILLEGAL NAME EXAMPLES

    DragonFly 1.3-RELEASE	- This is not a legal name (odd number with
				  release or stable designation is not
				  allowed)

    DragonFly 1.4-CURRENT	- This is not a legal name (even number with
				  current or working designation is not
				  allowed).

				WHEN WILL WE GO TO 2.0

    Not this year, probably not next year.  When the system is mostly MP
    safe and operatable with the BGL turned off, we will go to 2.0.  I am
    hoping that 3.0 will be our 'clustering supported' release.  This is
    tentative, of course, a fully working clustering release is 2+ years 
    down the line.

						-Matt






More information about the Users mailing list