From owner-freebsd-current Tue Sep 3 05:10:36 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id FAA24911 for current-outgoing; Tue, 3 Sep 1996 05:10:36 -0700 (PDT) Received: from time.cdrom.com (time.cdrom.com [204.216.27.226]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id FAA24906 for ; Tue, 3 Sep 1996 05:10:33 -0700 (PDT) Received: from time.cdrom.com (localhost [127.0.0.1]) by time.cdrom.com (8.7.5/8.6.9) with ESMTP id FAA09253; Tue, 3 Sep 1996 05:10:28 -0700 (PDT) To: rkw@dataplex.net (Richard Wackerbarth) cc: current@FreeBSD.org Subject: Re: Latest Current build failure In-reply-to: Your message of "Tue, 03 Sep 1996 01:19:17 CDT." Date: Tue, 03 Sep 1996 05:10:28 -0700 Message-ID: <9251.841752628@time.cdrom.com> From: "Jordan K. Hubbard" Sender: owner-current@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk > One advantage in going to this scheme is that you can eliminate the "sup" > as a separate product target. > > The "up-to-the-minute" folks should use CVSup. > > The next level, including the sup servers, can use the ctm delineated > "snapshots". The users can then either subscribe to ctm directly or sup the > equivalent product. > > The next level would be the "Jordan's snapshot" which you have given a bit > more testing than just "compiles". Precisely. > I guess I see that you and I have a different viewpoint of the "stability" > of things. No, not really. > In your model, "current" seems to be just some arbitrary collection of code. > whereas "stable" has been tested enough to make sure it compiles and runs. > You seem to leave out the "production" level which is supported. Nope, that's not my model at all. Please, do not confuse policy which arises from a reasonable apprehension of the trade-offs involved in relying on volunteer labor and lots of midnight coding (a frequent necessity for those with day jobs) with any personal ideal. In my ideal world, all changes would be tested all the time and the tree would never break. I'm sure it's an ideal all of core shares, for that matter, but it's only an ideal. Cold, hard reality dictates that if you want forward progress from a large volunteer army of people then you can't threaten to blow their heads off every time they make a mistake while taking their own initiative on something - you *need* them to be willing to take their own initiative if any real progress is to be made. There are lots of ways in which even the very best programmers in this project can (and do) make mistakes which break -current. Fixing a mistake may be simple, but it still requires a finite amount of time. The simple fact of the matter is that there is no fool-proof method for preventing programmer errors, and providing on-the-fly access to the development sources opens us far wider than *any* commercial UN*X vendor to having "customers" trip over problems when they occur. Hell, the concept of "production level" doesn't even make sense when discussing what's essentially a live snapshot of the engineering team's working sources and, if anything, the real problem here is that the WRONG PEOPLE are running -current! If you've achieved nothing else, you've definitely made the point to me that we've got a serious image problem with -current these days, namely that it's entirely *too* visible. -current was truly never intended to be something that the general user population ran freely and considered to be some sort of technology worth tracking on a day-to-day basis. -current was started simply as a developer-to-developer service with a very small group of people both reading and writing to it, very much as the engineering source tree would be maintained within a small company. Once in awhile we'd make a snapshot of it and those snapshots were all the public ever saw. There are some significant advantages to doing things in this way, actually, among which are the facts that: 1. You don't spend a lot of time writing emails in justification for your latest change to the entire world (and someone, somewhere will *always* disagree with you - it's a statistical law), you just duke it out in private with a small group of developers who also know their way around the system pretty well. Bang-for-byte ratio in email high, developer satisfaction high. 2. You don't have a large user base to support with the source syncronization tools, it's just you and 10-20 others at most. Support email comprises a significantly smaller percentage of your incoming load as a result. 3. You can attempt radical changes and experiments, if desired, without having to first obtain the concensus of a small army. Larger scale improvements are given much more room to happen. However, evolution took different paths with the various *BSD groups, and in the FreeBSD Project we decided fairly early on that, despite the many clear and obvious advantages to "keeping it in the family", as it were, we felt they came at too high a cost in denying access to those who might derive legitimate benefit from access to all the latest bits. So we threw the doors open on -current, shouting loudly "No guarantees! This is nothing more than a ``look over our shoulders'' from a software developer's perspective, folks! No warrantee given or implied! Extremely slippery when wet!" and we later followed this with general access to the CVS repository itself. Despite all of our disclaimers, however, we also seem to have taken on a whole host of miserable, nasty side-effects which inevitably come from making decisions like this. The hundreds of emails from people running -current, many of whom have no business doing so (and are strongly and openly dissuaded from so doing in the Handbook's section on -current). The frequent shouting from the peanut gallery (no, of course I don't mean *you*, dear reader :-). The people whining about how the engineering sources aren't "production quality" enough, balanced only occasionally in volume by the other folks complaining that FreeBSD's not innovating fast enough and is full of stale source code direly in need of updating. Sigh. No matter what trade-offs one takes, it seems, there's at least one immutable constant: "Ya just can't win!" :-) Jordan