[Zope3-dev] Re: eggifying zc.resourcelibrary, zc.table and others
Tres Seaver
tseaver at palladion.com
Wed Apr 5 08:43:03 EDT 2006
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Martijn Faassen wrote:
>>> * the setup.py I'll create will only work with setuptools installed;
>>> is this a problem?
>>
>>
>> Not from us. You'd maybe get even more warm fuzzies from people by
>> making it not require setuptools, but that limitation doesn't bother us.
>
>
> Okay, good. Warm fuzzies are nice, but I won't worry too much about that.
There is some support for "kickstarting" an eggifying project. E.g.:
$ export ZSVN=svn+ssh://svn.zope.org/repos/main
$ svn cp -m "Eggify" $ZSVN/productsupport/trunk/project-template \
$ZSVN/zope.foopackage
The top-level 'zope.foopackage' will have a skeleton 'trunk', plus empty
'branches' and 'tags':
$ svn co $ZSVN/zope.foopackage/trunk zope.foopackage-trunk
$ cd zope.foopackage-trunk
$ ls -1
CHANGES.txt
develop.py
INSTALL.txt
README.txt
setup.cfg.in
setup.py
src
test.py
workspace
The text files are templates, and should be edited to fit.
The 'develop.py' script will set up a local 'bin' and 'lib' directory
inside your checkout, and try to install dependencies as specified in
'setup.py' and 'setup.cfg' (which it copies from 'setup.cfg.in'). It
also jams the Zope egg URL into 'setup.cfg'.
I usually run 'setup.py develop' afterwards, as it is better at
finding all the dependencies:
$ PYTHONPATH=lib /path/to/your/python setup.py develop
The 'zope.testing' package is supposed to be pulled in during that
bootstrapping, but often seems missed (I haven't yet figured out
why). Running the local 'easy_install' does the trick:
$ PYTHONPATH=lib /path/to/your/python bin/easy_install \
zope.testing
The 'src/zope' directory is intended to contain a 'svn:externals'
pointer to the "canonical" location of the source (we may eventually
reverse this, and make the main Zope tree point out at the top-level
package directories). E.g.
$ svn propedit svn:externals src/zope
#... add your external here
$ svn up
# ... fetches your external.
That 'src/zope' directory also contains "setuptools / pkgutil"
boilerplat namespace __init__.py:
$ cat src/zope/__init__.py
# namespace package boilerplate
try:
__import__('pkg_resources').declare_namespace(__name__)
except ImportError, e:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
The 'test.py' needs to be edited to point to your package. At that
point, you should have all your package's dependencies installed
(assuming that you named them in 'setup.py'), and should be able to run
the tests using your local eggs:
$ PYTHONPATH=lib /path/to/your/python test.py
Nathan, Jim, please correct any mistakes you see.
Tres.
- --
===================================================================
Tres Seaver +1 202-558-7113 tseaver at palladion.com
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFEM7tX+gerLs4ltQ4RArrjAJ9GAW9klbLC9n4ZUdcmbvvsrSDQCgCgsz+l
SojySIyJZEGgMVercdKH8Uk=
=FdIS
-----END PGP SIGNATURE-----
More information about the Zope3-dev
mailing list