[Distutils] setuputils cvs based source detection?

S Joshua Swamidass swamidass at gmail.com
Sun Oct 15 05:30:37 CEST 2006


As much as I like setuputils, this might be enough reason for me to
stay with distutils which seems to handle this setup gracefully. The
actually setup i have is significantly more complex, so creating
seperate cvs repositories for each would not necessarily be possilbe
and most definetely not easy.

Thanks for the help any way,


On 10/14/06, Phillip J. Eby <pje at telecommunity.com> wrote:
> At 07:55 PM 10/14/2006 -0700, S Joshua Swamidass wrote:
> >Here is the situation:
> >
> >I have a large project in one big cvs tree.  i want to be able to
> >release in differen't packages from this tree using different
> >setup.py's. My project is organized like:
> >
> >./ (root dir)
> >setup_A.py  #package = ['A']
> >setup_B.py  #package = ['B']
> >A/
> >     __init__.py
> >     moduleA.py
> >B/
> >     __init__.py
> >    moduleB.py
> >
> >The bdist command works fine with this setup. If i use the
> >distutils.core.setup, the sdist command works correctly too. So here
> >is the problem: using setuputils.setup, the sdist command will package
> >the WHOLE source tree (both directories A and B) when using either of
> >the setup_*.py.
> >
> >I'm quite certain this is because both A/ and B/ are under cvs source
> >control, and setup assumes that the whole source tree is required for
> >the sdist. How do i turn this behaivior off or develop a work around?
> setuptools doesn't provide a way to support this behavior.
> Even if you were to manually modify MANIFEST.in to exclude the files you
> didn't want, you'd have to change it every time you issued a release, and
> your source distributions wouldn't be distutils-standard or
> easy_install-compatible anyway, because you wouldn't have a *single*
> "setup.py" file in the distribution, and having a "setup_A.py" isn't the
> same thing.
> My suggestion would be for you to change how you're doing this, so that you
> have a single setup.py for each thing you want to distribute separately, or
> else distribute the whole thing as one giant package.
> If you want to minimize the amount of directory reorganization needed, one
> possible approach is to put a setup.py in each of A and B, and adjust the
> package_dir setting of setup() accordingly.  There are some drawbacks to
> that layout, but at least you would be able to keep your package
> directories where they are now.

More information about the Distutils-SIG mailing list