PyCon 2006 Zope 3 Sprint
For the purposes of this page, md is used instead of mkdir.
Eggs Task Notes
Zope Ovulation
Phase 1: Manual installation of eggs
- load parts of Zope from manually placed eggs — works as expected, so long as you specify the PYTHONPATH both when installing the eggs and running z3.py
PYTHONPATH=eggs easy_install -d eggs/ ~/basket/zope_interface-3.0-py2.4-linux-i686.egg
Phase 2: Download of eggs from the network
- create a setup.cfg which contains the following
[install] install_lib = ~/Projects/zhuevos/eggs install_scripts = ~/Projects/zhuevos/eggs
- from within your Zope3 (huevos-rancheros-branch) checkout, do the following:
$ md eggs $ PYTHONPATH=eggs python ez_setup.py
- if you already have setuptools installed on your machine, you may need to do:
$ md eggs $ PYTHONPATH=eggs python ez_setup.py -U setuptools
- install the eggs:
$ PYTHONPATH=eggs eggs/easy_install -f http://yergler.net/basket zope_i18nmessageid $ PYTHONPATH=eggs eggs/easy_install -f http://yergler.net/basket zope_interface
- you can the run z3.py, specifying PYTHONPATH=eggs
Phase 2 (alternate approach)
- from within your Zope3 (huevos-rancheros-branch) checkout, do the following:
$ md eggs $ PYTHONPATH=eggs python ez_setup.py --install-dir ./eggs setuptools
- if you already have setuptools installed on your machine, you may need to do:
$ md eggs $ PYTHONPATH=eggs python ez_setup.py -U setuptools
- install the eggs:
$ PYTHONPATH=eggs eggs/easy_install -f http://yergler.net/basket --install-dir ./eggs zope_i18nmessageid $ PYTHONPATH=eggs eggs/easy_install -f http://yergler.net/basket --install-dir ./eggs zope_interface
- you can the run z3.py, specifying PYTHONPATH=eggs
Phase 3: Handling eggs in the Makefile
- perhaps an over-arching zope “meta-egg” which simply depends on everything else we want (even specific versions for a release?)
Phase 4: Loading ZCML from eggs
Projectification & Oogenesis
- create separate projects in svn for individual modules (zope.i18nmessageid, etc)
- replace the modules in the trunk with svn:externals
- curse because svn:externals are half baked
- create setup.py for the new projects with the ability to create eggs
- release (need to eggify deps as well)
- make eggs initially not zip safe
-
convert places where we use file to use pkg resource APIs
- then finish pkg_resource work
- convert Make file to use easy_install
** easy install stuff **
Links