← Back to team overview

anvil-dev team mailing list archive

Re: smithy bootstrap of pip dependencies appear broken for 'clean' installs

 

On Dec 8, 2012, at 10:13 AM, Joshua Harlow <harlowja@xxxxxxxxx> wrote:
> Should be all fixed now, thanks Dan.
> 

Much obliged, Josh!

I have a minor patch to the smithy script to make it easier to support bootstrapping multiple distributions. I am almost at a point where my organization will let me submit it, but I'd like to discuss some slightly broader changes that I'd be happy to commit to writing a blueprint for and implementing if they have merit. Specifically - 

1. Break the bootstrap process into two phases -- In the first phase the operating system distribution would be identified. In the second, a set of steps defineable for each dist would be run. The current smithy code effectively does this for RHEL systems, but I'd like to make the code a bit more general so that adding and maintaining new distributions is very simple.

2. Define the bootstrap steps so that each can check whether it needs to run. If each step is idempotent it'll go a long way towards making it easier to recover when one of the steps fails. It also would make it possible to ask an updated smithy 'what steps do I need to run to bootstrap?'

3. Consider disabling smithy's auto-bootstrap behavior and emit 'Run smithy with --bootstrap to set up your host to run anvil.' If 2 is implemented we could provide even more helpful output here.

4. Consider only requiring sudo when it is needed to run a privileged operation. If 3 is implemented this should be pretty straightforward.

I think the above could be done without making the existing smithy code too complicated and I'm pretty sure it'd go a long way to providing a really good out-of-box experience for anvil. I've got a couple days before I am likely to get the green light for submitting my changes, so there is time for me to work on some of the above if it'd be considered useful.

dlm


> On Dec 7, 2012 6:43 PM, "Joshua Harlow" <harlowja@xxxxxxxxx> wrote:
> Fixing this.
> 
> Stupid keyring thing is doing this...
> 
> 
> On Fri, Dec 7, 2012 at 4:04 PM, Daniel Mercer <dmercer@xxxxxxxxxxxxxx> wrote:
> Hi,
> 
> I believe the bootstrap step for pypi is broken for installs on a 'clean' host. I infer from the output that hgtools (which is installed as a pip package) is required for the pre/post install phase of one some subsequent pip package. Here is the expurgated version (full output attached):
> 
> > Installing pypi dependencies…
> …SNIP…
> >     warning: no previously-included files matching '*.aux' found under directory 'docs'
> > Downloading/unpacking hgtools (from -r tools/pip-requires (line 3))
> >   Downloading hgtools-2.0.2.zip
> >   Running setup.py egg_info for package hgtools
> …SNIP..
> > Downloading/unpacking keyring>=0.9.2 (from -r tools/pip-requires (line 4))
> >   Downloading keyring-1.0.zip (61Kb): 61Kb downloaded
> >   Running setup.py egg_info for package keyring
> >     zip_safe flag not set; analyzing archive contents...
> >
> >     Installed /tmp/easy_install-SM0Psj/pytest-runner-1.2/hgtools-2.0.2-py2.6.egg
> >
> >     Installed /home/dmercer/anvil/build/keyring/pytest_runner-1.2-py2.6.egg
> >     Traceback (most recent call last):
> …SNIP…
> >     ImportError: No module named hgtools.plugins
> 
> If the hgtools package is installed in advance of the other pip dependencies all is well. I like the recent change where the pip deps were removed from smithy and into tools/pip-requires, but it may be necessary to do the pip installs in multiple phases.
> 
> 
> 
> 
> 
> dlm
> 
> 
> 
> 
> 
> 
> --
> Mailing list: https://launchpad.net/~anvil-dev
> Post to     : anvil-dev@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~anvil-dev
> More help   : https://help.launchpad.net/ListHelp
> 
> 
> 
> 
> -- 
> --
> Joshua Harlow (mR.aWesOmo)
> facebook.com/jshharlow
> flickr.com/jshharlow
> YIM: jshharlow
> 


Follow ups

References