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.