[Distutils] setuputils cvs based source detection?

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


Hmm,

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,

Josh

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