Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Mar 2002 00:56:42 -0800
From:      Terry Lambert <tlambert2@mindspring.com>
To:        obrien@FreeBSD.org
Cc:        sobomax@FreeBSD.org, re@FreeBSD.org, current@FreeBSD.org
Subject:   Re: HEADS UP: -CURRENT Feature Slush is OVER
Message-ID:  <3C945A4A.3FC77CB1@mindspring.com>
References:  <20020316111818.GO17499@freebsdmall.com> <1016289691.91096.2.camel@notebook> <20020316115309.E95652@dragon.nuxi.com> <3C93C273.8356D01@mindspring.com> <20020317002235.B3875@dragon.nuxi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
David O'Brien wrote:
> On Sat, Mar 16, 2002 at 02:08:51PM -0800, Terry Lambert wrote:
> > I hate this whole direction.
> >
> > I think it's an incredibly bad idea that we are not going
> > to be able to reproduce what went onto any given CDROM in
> > ten years.
> 
> The source will be on the CDROM.  Nor is there any major importance to
> DP1.  Are you also upset that you cannot reproduce the July 17th, 1998
> -CURRENT snapshot CD from WC?


I have to say that I feel incredibly strongly about this
issue, and so I'm going to argue passionately.  Please bear
with me...


Taking your example, yes.  ISO images by date should be reproducible
using the date stamp.

If "the July 17th, 1998 -CURRENT snapshot CD from WC" has
things on it that didn't come as a result of merely a straight
build as of a datestamp, then we've lost some of our history.

In that case of that version, it's likely that if anything
was done in a Mickey Mouse way, it was that the X11 distribution
or some of the DOS programs or whatever were copied from another
CDROM.  That is, at least in theory, reproducible, though a heck
of a lot more inconvenient than a list of what was done in the
"README.CDROM" file in "/" on the thing would have made it.


In the "transient Perforce branch" case, when the branch
goes away, it's unreproducible completely.  Any of the
changes that were necessary to make the thing compile, or
to back out broken code are lost.  It's now inpossible to
identify, from records, what the release engineers found to
be broken enough that it had to be backed out or patched
around, and it loses the back out and the patches.

I'm not entirely sure that the resulting image will in fact
be on the cdrome; even if it were, the results are not
diff'able against the repository without a huge amount of
manual effort.

Basically, we're losing history, and, unlike the "July 17th,
1998 -CURRENT snapshot CD from WC" case, which is barely
acceptable to lose, since it is "repo + reproducible deltas",
it becomes "repo + unreproducible deltas".

I would have liked it if a tag had been laid down immediately
after the BSDCon Developer's Summit, and then moved forward
or backware on a filed basis, with a branch tag at freeze
equal to the moving tag, checked out, with any additional
changes after the freeze done in the context of the branch
tag, so that they're recoverable.

It seems to me that, at worst, this is being done to "prove
to the heathens" that use of Perforce is a bad idea.  It
certainly is, if history is going to be lost, but that's not
a result of the tool, here, it's a result of intention.

At best, Perforce is being used because the release engineers
have less power over branching in the CVS repository than the
core team *should* be loaning them.

Either way, it's bad news when it won't be possible to
reproduce an official code cut -- even if it's not a
release -- from the repository.


What is a repository good for, if you can't recover your
history from it?  The way Linux is developed, they release
code that's not recoverable from a repository, ony from
the release materials themselves.  They have no repository
because they *intentionally* have no perception of history.


Actually, it's possible to lay down a tag in the past: do
a checkout of the sources as of the day after the BSDCon
Developer's Summit (or whatever feature freeze date is right
for the preview), and then lay down a tag on the code checked
out as of that timestamp.

I don't understand the use of Perforce, in this case, unless
it's as a strawman to try and prove all fish are trout because
one fish is a trout ("Perforce is a bad idea in all cases
because it's a bad idea in this case").


If my position is unsupportable in everyone's opinion, so
be it: I would like an official policy statement on what
will, guaranteed, be reproducible from the repository, when
it comes to officially sanctioned distributions, like a
-RELEASE CDROM, or like a "Developer's Preview".


In that case, I'll basically ignore anything that isn't in
that list.


This developer's preview, if it's not reproducible, isn't
going to be delta-able, and so won't be improvable: if I
have a problem with it, and fix the problem, there's not
going to be a delta against the repository from which I
can derive a patch for inclusion in FreeBSD going forward.

If the purpose of this release is to get developers hacking
on the code and fixing problems prior to 5.0-RELEASE, it
*really* needs to be hackable for it to be hacked on.

Otherwise, all it's going to do is be confusing when things
work in the developer's pre-release because they were fixed
in a now non-existant branch, and don't work in -current...
NOT because the were broken in -current between the
pre-release and the time they were attempted in -current,
but because they NEVER worked in -current in the first place.

If that's going to be the case, then I have to say that
everyone will be better off if they ignore the CDROM of
the "Developer's pre-release", and stick with -current,
since at least your patches will be applicable to future
work, instead of lost in some non-existant dead-end.

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3C945A4A.3FC77CB1>