arsenal-user team mailing list archive
-
arsenal-user team
-
Mailing list archive
-
Message #00015
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