On 13.04.2008, at 04:01, Tres Seaver wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Roger Ineichen wrote:
Hi again

Betreff: [Zope-dev] Heads up: Dependencies!

Hi all

I try to do a cleaup all zope packages and found some wired
dependencies and bad setup. One of this bad things is the following:

The zope.dublincore package defines in setup.py

install_requires = ['setuptools',
                   'zope.annotation',
                   'zope.component',
                   'zope.interface',
                   # testing dependencies
                   'zope.testing',
                   'zope.security',
                   'zope.app.testing',
                   ],

I guess this is one of the packages which makes it impossible
to get rid of testing stuff on production servers! right or not?

This happens in 3.4.0, 3.4.0a1 was Ok.

Can anybody agree that the testing dependencies should go to
extra_requires ['test'] ?

I discussed this with Benji on IRC and very bad consenus happend.
Benji told me that this topic was discussed and this changes
explicit happens.

I totaly disagree with the concept behind this.
The general sentence "Test what you fly and flay what ou test"
is still valid and makes sense to me. But this is not what this
changes reflect. This changes will bring in dependencies to
zope.app.testing for all our production projects. This is just
not true. All of our apps are just working without the testing
dependency. Testing code is not a dependency for production servers.

This install_requires will bring in zope.app.testing dependencies
for all of our production servers which is just wrong.

Test what you fly and fly what you test is a good thing. But it
get totaly miss understud in this usecase.

It doesn't mean that we can depend our tests on zope.app.rotterdam
for zope.dublincore just because we have a rotterdam package.
And even worse depend on that in install_requires.

If a testing setup needs additional components which the package
doesn't need, we have two choices.

1. write tests wihtout thrid party code (code which is not a dependency
  of the package at all)

2. write tests and depend on third party code but move the dependency
  to extra_requires. This allows to install the app without the
  additional test dependency

What do you think?

Even better: use the documented setuptools keyword[1] 'tests_require',
and get the testrunner / buildout to use that hook when running tests.
An added benefit is that it might even be possible for somebody to run
the tests from a subversion checkout / unpacked sdist without first
running buildout, by just running 'python setup.py test'.  This last
will require defining a workable 'test_suite' keyword, as well.


[1] http://peak.telecommunity.com/DevCenter/setuptools#id7

test dependencies are a no-go for a production deployment.
if we are refactoring packages, we should use the setuptools keyword.

jodok

btw.: importchecker from lovely.recipe will assist you in identifying the imports you need for tests and for the "real" code




Tres.
- --
===================================================================
Tres Seaver          +1 540-429-0999          [EMAIL PROTECTED]
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

iD8DBQFIAWlw+gerLs4ltQ4RAuq1AJ48SsGtuCUvBzTN2a1YLqGSPTBIfgCcC9ZQ
GwLUzQDm6FQB6DpQ6a2bJkM=
=hqQm
-----END PGP SIGNATURE-----

_______________________________________________
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )

--
"Beautiful is better than ugly."
  -- The Zen of Python, by Tim Peters

Jodok Batlogg, Lovely Systems GmbH
Schmelzhütterstraße 26a, 6850 Dornbirn, Austria
mobile: +43 664 9636963, phone: +43 5572 908060

_______________________________________________
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )

Reply via email to