Re: Release process (was Re: DarwinPorts 1.3.1)

Paul Guyot <[email protected]>
Newsgroups gmane.os.opendarwin.darwinports
Message-ID <[email protected]>
Le 2 août 06 à 15:16, Jordan K. Hubbard a écrit :

>
> On Aug 1, 2006, at 9:55 PM, Paul Guyot wrote:
>
>> The recent fiascos of releases 1.3 and 1.3.1 show indeed that  
>> there is something wrong with the release process.
>> But it is not (only) a matter of the timing of release. It's  
>> mostly a matter of testing. [ ... ]
>
> And here, I agree with you 100%.  Where I think you go off in the  
> wrong direction is with the rest of the points you make.
>
> I'm going to sound like a broken record here, but the real problem  
> is that the DarwinPorts project simply doesn't eat its own  
> dogfood.  It relies on the user community to do that for it, and no  
> number of release candidates or changes to how the bits are  
> actually released (CVS, etc) will change that one bit.  Yes,  
> developers make terrible testers, but for a collection of 3400+  
> ports coupled with 40,000 lines of Tcl and C code supporting it,  
> users make even worse testers because there's no way they can  
> consistently cover all of that ground even once, much less on a  
> regular basis, and the end result is a total hit-and-miss journey  
> through the collection as users stumble across broken ports more or  
> less at random (or test the really popular ports and ignore the rest).
>
> DarwinPorts will never be more than an intellectual curiosity until  
> it evolves the infrastructure for clean-room building each and  
> every port on a regular basis, with known combinations of "base"  
> bits, and resolving (or at least reporting) all of the errors  
> encountered.   DarwinPorts is not a paint program or a word  
> processor, and you can't get comprehensive testing of it just by  
> releasing it to the user community and letting them bang on it for  
> a while.  It's something which requires an entirely different level  
> of testing (and has never had).

There is a little misunderstanding here.
I mentioned testing base/, not testing in general. The 1.3.x fiascos  
were caused by the lack of testing of HEAD base/ code.

Testing base/ can partically be done automatically with unit-like  
tests such as the ones in base/tests/. I personally check they all  
pass before doing any commit and try to create more tests to improve  
this. I wish other developers of base/ would do the same. However,  
considering all the possible installations, we cannot fully test  
base/ automatically. base/ is like a word processor as you say.  
Testing all ports will not mean a full test of base/. For example,  
three of the six tests test properties that cannot (or should not) be  
found in real portfiles: test of using two environment variables in  
extra_env, test of violations from a port caught by the trace mode  
and test of the xcodeversion.

Nevertheless, I wholeheartedly agree with your point about testing  
the ports: we need a real infrastructure. In case you didn't notice,  
the recent changes to the trace option are exactly intended for that  
purpose. With the -t option, you no longer need to use the union disk  
image trick you (?) came up with when you tried to automate the  
process. Ports cannot write outside the sandbox at run time. If -t is  
always used, /opt/local only contain files copied during the  
activation phase. Combined with the automatic detection of  
dependencies (still option -t), the (almost) full test of all ports  
can be done in a much simpler and less expensive way. There are a  
couple of additional structural changes to get this working  
completely (for example to drop the bin: and the lib: dependencies in  
favor of the port: dependency, or include a conflict key to portfiles  
as you mentioned recently), but we've never been that close to the  
goal software-wise (which is as much I can do as a base/ committer).

Paul
-- 
Ministre ultraplénipotentiaire en disponibilité.
Mobile. Sans baignoire fixe.
http://www.kallisys.com/
http://www-poleia.lip6.fr/~guyot/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.