- ploneout (http://svn.plone.org/svn/plone/ploneout/trunk) is really
an environment that Plone 3 core developers could (should?) use as a
consistent way of setting up a Zope 2.10 instance with Plone 3 and all
dependencies. It uses svn:externals quite extensively to pull in Plone's
source code into src/ (the eggs) and products/ (the products) with the
intention that this is the code being developed. Ploneout's README.txt
has more information about this scenario.
To through in an extra angle in this discussion, I would like to contribute the
following thoughts.
Unless Utopia really exists I think developers all have their own thoughts
about setting up their development environment. In my opinion buildout's target
should be deployment of complex production systems.
I had to read the buildout documentation twice to even get a grip of it and
yesterday I wondered around in a forest of recipes in ploneout. Although I see
the value of buildout, copying over the entire buildout to setup a second
sandbox, seems like a waste of disk space to me.
We work on quite a number of different projects at once and want to be able to
reproduce a working instance (running the production Data.fs preferably). To
service our environment we (mainly the van Rees brothers) wrote instancemanager.
We expect a minimal set of requirements:
- Python installed
- Zope libraries installed next to each other, e.g.
/usr/local/zope/2.10.2, each version in a separate folder.
Using instancemanager you can:
* Create / Start / Stop / Restart instances
* Backup / Restore / Pack instance databases
* Install Products
* Run tests
* Generate Apache VirtualHost configs
* Easy upgrade Zope versions
During the Snowsprint we'll finish Windows compatibility and creation of Z3
instances.
Minimal configuration in ~/.instancemanager/userdefaults.py to show
instancemanager which zope's are available.
zope_location_template = '/usr/local/zope/%(zope_verion)'
Each instance is then configured using a project.py.
~/.instancemanager/demo.py
Inside this project file we can define all needed instance configuration
options:
* Initial user and password
* Portnumbers
* Zope / Python version used
* Whether to use zeo, and how many zeo clients
* Sources to install in the Products or lib/python folder
- symlink_sources : Allow svn checkouts of products to be linked.
- symlinkbundle_sources : Allow for svn checkouts of bundles (3.0)
- archive_sources: Allow for official release tar files to be
extracted.
- archivebundle_sources: Allow for official release tar bundles to be
extracted.
Sources are defined as a list of dicts:
archive_sources = [
{'url':'http://www.zope.org/Members/shh/DocFinderTab/1.0.1/DocFinderTab-1.0.1.tar.gz'},
{'url':'http://plone.org/products/clouseau/releases/0.7.1/Clouseau.0.7.1.zip'},
]
Here I defined two developers tools that need to be downloaded and extracted to
the Products folder of my instance.
symlinkbundle_sources = [
{'url':'https://svn.plone.org/svn/plone/bundles/3.0',},
{'url':'https://svn.plone.org/svn/plone/bundles/3.0-lib',
'pylib':True,},
]
Here I define the 3.0 bundle of Zope Products that will be symlinked and for
the second we added the key 'pylib' a value of True to indicate this set of
sources
need to be linked in the lib/python folder.
Sources are downloaded to a configurable location, instancemanager has set the
following defaults:
archive_basedir_template = /home/myuser/downloads
archivebundle_basedir_template = /home/myuser/downloads
symlink_basedir_template = /home/myuser/svn
symlinkbundle_basedir_template = /home/myuser/svn
Downloading happens only once, to limit bandwidth.
Again most developers are pretty demanding about setting up a development
environment.
Here at Zest most of us are comfortable with instancemanager.
There's an egg available in the cheeseshop, but for the latest features you can
also checkout
https://svn.plone.org/svn/collective/instancemanager/trunk
Kind regards,
Jean-Paul
_______________________________________________
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 )