[Distutils] setuptools and automating deployment of dependent packages

Jeremy M. Jones zanesdad at bellsouth.net
Thu Dec 13 23:15:16 CET 2007


I am working on some deployment and testing issues with an application 
at my job.  We have one parent package that depends on a number of other 
packages.  I'm working to create an automated build system that checks 
out the latest revision of each package from Subversion and creates an 
egg for each (where each has the svn revision number in its version 
number).  The problem is that I'd like to specify exact version numbers 
in the parent's setup.py for each child package, but I don't know the 
child svn revision numbers until I start checking things out and I'd 
really like to automate the process.  I could just create a dependency 
for each child package that states >= some version and when I 
easyinstall it, it should grab the latest child package from the web 
server.  But that kind of doesn't accomplish what I wanted to do with 
having a parent package that is specifically tied to some version of a 
child package.  The way that I am considering making this work is to 
script an update of the setup.py for any package that has child packages 
that it is checking out of svn.  This feels like a big ol' hack. 
Another alternative is to create a config file (yaml or something else) 
that setup.py pulls versions from and update that when a parent package 
becomes aware of a child package's svn revision numbers.

So, my questions are:

1.  Is there a better way of doing what I'm trying to do than having to 
hack on setup.py files or modify yaml files?
2.  If there's not, how can I tell what version a child package now has 
(with svn revision number) to know how update the setup.py or config 
file or what-not?
3.  Is there a way to get at the data (version and dependency 
information is what I'm after) in setup.py?
4.  How can I create my own pypi in order to upload eggs to after I've 
created them?

Any assistance anyone could provide would be most appreciated.

- jmj


More information about the Distutils-SIG mailing list