Subject: Re: building docs on "make release"
To: Simon Burge <simonb@NetBSD.ORG>
From: Todd Whitesel <toddpw@best.com>
List: tech-install
Date: 02/29/2000 22:46:11
> > - some of the etc/etc.*/Makefile.inc files may do that explicitly, so
> > 	the redundant stuff should be cleaned up.
> 
> Yup - that's what I meant by "deleting the building of the notes that
> some ports ... do by themselves" :-)

urg. sorry. late night. yadda yadda.

> > - if we want checksum files in the top level of $RELEASEDIR, then we need
> > 	to make sure that happens after the notes are installed.
> 
> I've been building pmax releases for a while now, and I'd never noticed
> that some ports do checksum the top level!  A quick look shows it's
> about half-and-half (for 1.4.1).  My way of thinking is that it's only
> really binary files that need checksuming since it's non-obvious when
> one is busted somehow.  Well, as long as we make a decision either way
> it doesn't matter (and get's done automatically).

My top-level automation (outside BSDSRCDIR) now does one last 'makesums'
to take care of this; it happens just after SOURCE_DATE is created. I
think we should leave this detail open for the time being; after all, it
isn't as essential as the subdirectories, and at "make release" time we
can't be sure we have all the top-level RELEASEDIR files.

One of my local etc/Makefile changes is to run a final pass of makesums
over all the INSTALLATION_DIRS -- seems a lot more logical than having
it done all over the place. I also have a nifty "-all" option in my local
makesums which automatically figures out what files should be summed
and knows enough to do nothing in a directory with no plain files.

What would be cooler is a doohicky that automatically scans RELEASEDIR
and figures out which checksum files are missing or out-of-date, and
regenerates only those. Then it'd be safe to run at any time, especially
after adding LAST_MINUTE/README files to the tree. I can think of an evil
way to do it in make, but perhaps a good ol' shell script is better...

> > I'm doing 1.4.2 by having each etc/etc.*/Makefile.inc call over to
> > distrib/notes, which isn't as elegant but was easier to get working
> > one port at a time (I'm doing eight of them) because I was already
> > cutting and pasting various things in those files.
> 
> I think this is the sort of thing that should be done once so that it
> doesn't get looked over for new ports, and only has to be got right
> one.  "make release" is a _wonderful_ concept and has already been
> immeasurably helpful, it's just not quite there yet...

Yep. IMHO it should have been mandatory since the dawn of time, because
it is flat out good release engineering to have all the official build
goo in-tree and versioned alongside the product itself.

At my day jobs we do not tolerate obscure irreproducible procedures if
we can possibly help it. We've been occasionally screwed by people who
quit and left a useless pile of data behind them, and once is already
too often as far as we're concerned.

Todd Whitesel
toddpw @ best.com