[Bioperl-l] Nightly build archives now available

Chris Fields cjfields at uiuc.edu
Fri Mar 7 18:00:52 UTC 2008


On Mar 7, 2008, at 11:34 AM, Sendu Bala wrote:

> Chris Fields wrote:
>> 1)  I am running a 'svn co' on anon. svn for the various distros to  
>> a temp directory.
>
> Is it important that you do a fresh co every night? Why not do a co  
> once   and then do a 'svn update' every night? This is the crux of  
> the problems: if you choose to simply update, then you only have to  
> get 'perl Build.PL' to work once.

Unless you update Build.PL (which will happen as the distributions  
grow).  Then you need to rerun 'perl Build.PL'.  It seems safer to run  
that each time with a 'pass-through' flag for automated builds.

>> If I attempt to change into the distribution directory and run  
>> 'perl Build.PL' from the bash script, I immediately run into  
>> permissions issues and several odd things:
>> Checking prerequisites...
>> - ERROR: Bio::Root::Version is not installed
>> (I think you ran Build.PL directly, so will use CPAN to install  
>> prerequisites on demand)
>> CPAN: Storable loaded ok
>> Going to read /root/.cpan/Metadata
>>  Database was generated on Tue, 05 Feb 2008 11:30:54 GMT
>> Warning: You are not allowed to write into directory "/root/.cpan/ 
>> sources/authors".
> [snip]
>
> I'm assuming this is on portal? The CPAN setup for users is a little  
> broken. You need to create /home/yourusername/.cpan/CPAN/MyConfig.pm
>
> $CPAN::Config->{cpan_home} = "/home/yourusername/.cpan/"
>
> Then you can run and configure cpan correctly and install  
> Bundle::CPAN. Some of the zlib stuff failed to install for me, but  
> that doesn't seem to matter.
>
> Of course, I guess it makes sense for root to just install all of  
> Bioperl's prereqs anyway, so that testing can be automated in the  
> future.
>
> Anyway, once you have cpan happy 'perl Build.PL' will run fine.  
> Answer 'n' to everything and then your cron job just has to call './ 
> Build dist'.

I agree about setting up the prereqs.  I could also (as mentioned  
before) set this up as root.  However, if we go this route we need to  
have 'perl Build.PL' included in the process in order to ensure a  
clean build process each time and to prevent the script from breaking  
whenever someone decides to change Build.PL.

>> 2) I suspect, even if I worked around permissions and set up the  
>> job as root or admin and worked out why it can't find  
>> 'Bio::Root::Version' (?!?), this would still be a terrific pain in  
>> the *** to deal with as the Build.PL process is expecting answers  
>> for each and every prompt, and the process differs for each  
>> distribution.
>
> You won't be running Build.PL in the cron job.

See above.  I don't want to set up something automated which can't be  
maintained in the long term.

>> passing flags to 'perl Build.PL' would be a nice way to work around  
>> that.  For that I haven't heard a response, so I assume that  
>> functionality isn't there (or am I assuming incorrectly?).
>
> It isn't AFAIK, but my point is that it doesn't need to be (for this  
> particular use-case at least).

See above.  There are very good reasons to allow this (and the  
functionality has been requested before, particularly from the GMOD  
crowd).  If I can pass in a single flag (for instance, --defaults,  
which just uses the default arg for each prompt) then it would make  
it /much/ easier.

>> So, from where I stand, even if using Build.PL is the /proper/ way  
>> to do it, it doesn't work as expected using an automated process  
>> (i.e. cron).  Make sense?
>
> Only if you can't run 'svn update' instead of 'svn co' each night.

I think a single co with updates is feasible (I can do that with the  
current setup; just run the initial co, copy the directory over to a  
temp copy, then go about my business).

I'll leave the nightly build setup as is for now and work on getting  
Build.PL working (something we need anyway for Devel::Cover and  
Pod::Coverage work).

chris



More information about the Bioperl-l mailing list