02 February 2009 14:45
MovingToDistutils - django-hotclub - the how and why of Pinax's move to distutils - Google Code
Until recently, Pinax had two choices for a given external dependency:
- use svn:externals and point to the external dependency's svn repository
- include the external dependency code in the Pinax codebase
However, there are problems with this approach:
- it largely relies on external dependencies being in svn and this is increasingly not the case (although it was when Pinax started)
- it makes it difficult for Pinax itself to move away from svn
- there is no management of dependencies between external dependencies, nor between particular projects in Pinax and their individual dependencies
To solve these problems and more, Pinax is switching to a distutils-based approach. This means:
- externals dependencies are encouraged to be released as distutil-compliant packages with a valid setup.py and put on PyPI
- development versions of dependencies can be pulled in in a variety of different ways including from git, hg or bzr repositories
svn:externals are evil