[Distutils] setuputils cvs based source detection?
Phillip J. Eby
pje at telecommunity.com
Sun Oct 15 05:18:04 CEST 2006
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