← Back to team overview

arsenal-user team mailing list archive

Re: [Proposal] Deployment process of python modules to cranberry

 

On 06/07/2012 03:35 PM, Bryce Harrington wrote:
> Resending since there was no feedback from the first posting.
> This is going to affect everyone so would like to ensure we have
> consensus on the plan before rolling it out.
> 
> On Fri, May 18, 2012 at 05:23:59PM -0700, Bryce Harrington wrote:
>> One of the issues with adding dependencies to arsenal is that they have
>> to be installed on cranberry, and soliciting IS to install .debs
>> globally is difficult (and presumably slow).
>>
>> The established workaround for that has been to just make bzr checkouts
>> of the needed components, placed whereever arsenal is installed.  There
>> are a few problems with this approach however:
>>
>>   1.  Wastes disk space having N copies of each dependency present
>>
>>   2.  Dependency versions can vary from one person to another
>>
>>   3.  Running snapshots rather than official releases means more chances
>>       of running untested code and thus breaking.
>>
>>   4.  Deployment of emergency fixes in a module (such as workarounds in
>>       lpltk to changed behaviors in Launchpad) is complicated since
>>       there are multiple instances and you may not have write-access to
>>       all of them.
>>
>>   5.  Each arsenal user has to be involved in updating their
>>       dependencies manually.
>>
>> I would like to propose the following process:
>>
>>   1.  We use /srv/qa.ubuntu.com/usr/stable as $ARSENAL_USR
>>
>>       Basically we just need a shared location we can all access,
>>       preferrably outside the www root so it's not visible via http.
>>
>>       $ ARSENAL_USR=/srv/qa.ubuntu.com/usr/stable
>>
>>   2.  Instead of running out of bzr checkouts, we run actual installed
>>       instances of each dependency.  Installation is done like this:
>>
>>       $ python setup.py install --home=$ARSENAL_USR
>>       $ chmod -R g+w $ARSENAL_USR
>>       $ find $ARSENAL_USR | wc -l
>>       71
>>
>>   3.  Use the $PYTHONPATH environment variable to augment the include
>>       path:
>>
>>       $ PYTHONPATH=$ARSENAL_USR $ARSENAL_USR/bin/current-ubuntu-stable-codename
>>       precise
>>
>>   4.  For development versions of arsenal if we need newer versions of
>>       modules, these be placed in /srv/qa.ubuntu.com/usr/devel
>>
>>       $ ARSENAL_USR_DEVEL=$ARSENAL_USR/../devel
>>       $ PYTHONPATH=$ARSENAL_USR_DEVEL:$ARSENAL_USR \
>>           $ARSENAL_USR_DEVEL/bin/current-ubuntu-development-codename
>>       quantal
>>
>>   5.  We place the extracted tarballs or vcs checkouts in a common
>>       area, such as /srv/qa.ubuntu.com/src/{stable|devel}
>>
>>       The reasoning for this is so if we need to do a reinstall, we can
>>       easily run through all the dependencies and do so.  In fact, we
>>       probably ought to script it so that we can delete and rebuild
>>       $ARSENAL_USR easily any time.
>>
>>
>> Thoughts on this?  Before we do it, I'd like to get 2-3 ACKs (including
>> one from Ursula) with no NAKs.
>>
>> Bryce

I think the proposal makes sense. Ack.

-- 
Brad Figg brad.figg@xxxxxxxxxxxxx http://www.canonical.com


References