I've been watching this thread, perhaps my comments are worth
something, or are amusing.  Executive summary: track -current.
Make releases in step with OpenBSD.

On Tue, 28 Aug 2007, Kevin Cheng wrote:

> Artur,
> 
> Thanks,
> 
> Upgrade code based on release of obsd is easy, but it would a big job to
> maintain early released of products based on previous version of obsd.  For

That sentence contains its own solution: do not maintain old versions.
How would one maintain old versions if the underlying OS is frozen?
Attempt to back-port fixes.  You know this is hard.

> example, we would maintain 8 version of products from 3.3 to 4.0 if codes
> are upgraded every half years. 

How do you answer customers who ask why they can't run the up-to-date
version of OpenBSD?  If your salesman contacted me, saying I had
to *downgrade* my OS to Open 3.3 to run your product, I would advise
him to call me again when you can support the current OS.

Perhaps you should evaluate your development and support cycle.  If
you support other host OS's besides OpenBSD, then perhaps it would
be worth it to put your applications under control of CVS and your
releases in some kind of nice package (like an OpenBSD port) and
invest in the effort to get autoconf and related tools working with
it.

A nightmare for you:  suppose you are several versions behind the
OpenBSD release and a "Category 5" bug afflicts all OS's derived
from Tahoe TCP/IP code...  Naturally, OpenBSD has the first patches
out, but not for the antique versions you support.  Now suppose
OpenBSD has done something "significant" (like a.out->ELF, a new
file system, big rewrite of code so that patches don't apply smoothly,
removed support for something evil, whatever)  since you last
upgraded your apps, so that you can't just recompile and go.  Your
phones are ringing...your lead developer is on vacation...few of
your clients have Old Version source code...A significant package
(gnome or java, say ;-) ) is no longer available... Your software
uses a bug-feature of gcc withdrawn after a class-action lawsuit...

Suppose instead you had been tracking OpenBSD-current and keeping
your apps compliant...[*] the patches for the Bug-of-the-Decade
appear in -current in about three hours, another three hours and a
snapshot is built, you get the snapshot, your apps compile and
regress correctly.  You then apply the patches for the other supported
versions of Open (3 max), and notify your clients/users.  You and
Open are back in business first, before M$ can even issue a series
of denials that Bug-of-the-Decade exists, or certain pseudo-free
OS's can grovel and obtain NDAs from SCO.  Instead of getting phone
calls, you make them: "Mr Valued Client, emergency update to counter
Bug-of-the-Decade is available". Client: "What bug is that?" You:
"The one you no longer have to worry about." This makes for much
goodwill with the client.

[*] tracking -current and keeping your apps "married" to -current
is how to make a smooth release of your stuff almost immediately
after the OpenBSD release is made (or in the best case, simultaneously).
An added benefit: as a commercial or other professional developer,
you may well discover serious objections to or bugs with a newish
feature of OpenBSD while it is in the embryonic phase -- these
objections/bugs are easily fixed at this point, either by your end
or OpenBSD's, depending.  This benefits everyone.

Dave

Reply via email to