[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnu-arch-users] Working out a branching scheme [was: tag --seal --f

From: Tom Lord
Subject: Re: [Gnu-arch-users] Working out a branching scheme [was: tag --seal --fix]
Date: Thu, 1 Apr 2004 21:33:26 -0800 (PST)

    > From: Andrew Suffield <address@hidden>

    > On Thu, Apr 01, 2004 at 12:28:27PM -0800, Tom Lord wrote:
    > >     > CVS symbolic tags map precisely to configurations. They are almost
    > >     > certainly what you are looking for.

    > > Yes, but:

    > > Configurations lack referential transparency.   A configuration file
    > > can change at any time.

    > And that's the biggest reason why they're the equivalent of symbolic
    > tags.

    > In real-world terms: you've cut the release, and it's ready to
    > go... but just as you're about to send the CD image off for mastering,
    > a major (but trivially fixable) bug is discovered.

    > The marketing materials have already been printed. They say "1.0.0" on
    > them. You're not allowed to change the version number at this
    > point. But you can afford a few hours to fix the bug and run the
    > regression suite again.

    > You don't normally need to change them. But when you do, you *really*
    > need to change them. Realistically, versions are descriptions, not
    > logical identifiers. The arch revision spec(s) is the identifier.

    > [You can make the contents of a *logical* file identity constant if
    > you want to - just make a rule that you only rename release configs,
    > you don't edit them, so your broken 1.0.0 release becomes 0.99.n
    > instead]

Interesting scenario but not entirely relevent.

One thing you can do in that scenario is keep two tag-branches: a
candidates and an official.

You cut the CD master from the candidate branch.  The =RELEASE-ID and,
if you're gnuish, your --version output refers to that.

When the CDs go out on the truck -- and all your first-run docs are in
them, then (for convenience) you can tag the release.

There's countless variations but they all come down to (a) using a
revision X config as the coordinate of a release;  (b) being able to
robustly maintain some revisions whose names map deterministically and
simply to release id's.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]