[Zope-dev] Re: SVN: zope.file/trunk/ Make a good package out of this package.

Tres Seaver tseaver at palladion.com
Fri Nov 2 13:02:54 EDT 2007



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Christian Theune wrote:
> Hi,
> 
> Am Freitag, den 02.11.2007, 10:23 -0400 schrieb Stephan Richter:
>> On Friday 02 November 2007, Benji York wrote:
>>> Stephan Richter wrote:
>>>> On Friday 02 November 2007, Benji York wrote:
>>>>> Why the test extra?
>>>> to get it working. :-) There were several packages required by
>>>> ftesting.zcml.
>>> We generally put those in install_requires and eschew extras.
>> zope.file was the *only* package of the 150+ I worked on that did not have 
>> extras. If this changes, I want a canconical community decision with someone 
>> writing a script fixing it everywhere for the next releases.
> 
> Hmm. I've been doing that dance using extras too.
> 
> I see that there is a special 'tests_require' in setuptools anyway.  We
> could give up on extras using tests_require if the testrunner recipe (or
> buildout) knew how to handle those.
> 
> I (and other gocept guys) unscrewed the dependencies for almost all
> zope.* packages (at least those that come from the old big tree) using
> this approach. We really wanted to get the normal dependencies right
> there, and moving the test dependencies out of the way was a large part
> of that.
> 
> I'm happy using extras to do that. I'm not 100% sure on the complete
> reasoning against extras but my understanding is that this specific use
> case works. Can someone explain whether this use case has a problem too?
>  
>> I know why extras are bad, Jim explained it to me. I would still argue that we 
>> need them (for tests only, of course!!!!). For example, the zope.file tests 
>> require zope.app.zcmlfiles, which effectively pulls in 70 packages, including 
>> the entire ZMI, Rotterdam, and old form framework. But what if I do not want 
>> to install ZMI, Rotterdam and the old form stuff and just use the API of 
>> zope.file?
>>
>> I think that extras for tests are a necessary evil until we have unscrewed the 
>> dependencies of the functional test setups.
> 
> Depends on what 'unscrew' means. Functional test setups might want to
> demonstrate more in-depth, "real-life" scenarios where they have to
> introduce more dependencies than the actual package itself needs, so two
> sets of dependencies are needed anyway, or not?

Maybe the functional tests could declare their dependencies using teh
following idiom (rather than listing them in setup.py):

 import pkg_resources
 from setuptools.command.easy_install import main
 FTEST_REQUIREMENTS = ['foobar=1.2.3', 'bazbam>=3.2']

 try:
     pkg_resources.require(FTEST_REQUIREMENTS)
 except pkg_resources.DistributionNotFound:
     main(argv=FTEST_REQUIREMENTS)
     pkg_resources.require(FTEST_REQUIREMENTS)


Tres.
- --
===================================================================
Tres Seaver          +1 540-429-0999          tseaver at palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHK1gq+gerLs4ltQ4RAmp7AKC+0CqxsNDIBKHC4bxIOqNXtJ0p8gCfUdrU
yhHxOnicWEDsgziA/ISVgU8=
=s3OM
-----END PGP SIGNATURE-----



More information about the Zope-Dev mailing list