Jean-Michel FRANCOIS a écrit :
Christophe Combelles a écrit :
j'utilise aussi Buildout.
Pour faire du Zope 3, tu as 3 possibilités, dans l'ordre de complexité
décroissant :

- démarrer un projet en pur Zope 3 avec zopeproject, un exemple de
démarrage est ici:
http://new.zope.org/get-started (ou en francais dans le linux mag n°114)

- démarrer un projet Grok avec grokproject. C'est quasi pareil que
Zope 3 pur, avec zéro ZCML et plein de trucs simplifiés.
http://grok.zope.org

- démarrer un projet BFG, c'est encore plus simple et ça ne t'oblige
pas à comprendre Zope 3 et son architecture (mais c'est qd-même un plus).
http://bfg.repoze.org

Dans tous les cas, c'est mieux de connaître Buildout, PasteScript, et
PasteDeploy :

http://www.buildout.org
http://pythonpaste.org/script/
http://pythonpaste.org/deploy/


Et sinon pour la Component Architecture, il y a un article dans le
linux mag HS n°40, et un livre en anglais ici :
http://www.muthukadan.net/docs/zca.html


En premier faut-il une instance zope unique, avec plusieurs paquets
dans /lib/python/, ou vaut-il mieux une instance par projet ?

Ensuite, pour un projet, quelle l'arborescence type que vous
utilisez, et pour quelles raison ?

Merci d'avance pour vos éclairages !

A bientôt

JMarc
_______________________________________________
zope3-french-user mailing list
zope3-french-user@lists.afpy.org
http://lists.afpy.org/mailman/listinfo/zope3-french-user
Bonjour JMarc,

Pour ma part j'utilise toujours les paster script (grokproject,
zopeproject, ...) Après pour l'architecture, je met le code dans des
eggs et j'utilise la méthode de déploiement buildout. Pour tout ce qui
est install système (mysql, ldap, ...) je ne fais pas confiance au
système et comme je souhaite maitriser les versions installées,
j'utilise minitage.

La version sans minitage:

virtualenv monenviron --no-site-packages
cd monenviron
source bin/activate
easy_install zopeproject grokproject ZopeSkel
zopeproject myproject
cd myproject/src
paster create ...

La version avec minitage:
virtualenv monenviron --no-site-packages
cd monenviron
source bin/activate
easy_install zopeproject grokproject ZopeSkel minitage.core
minitage.paste
minimerge -s
minimerge postgresql-8.4 memcached-1.2 varnish-2.0.3
paster create minitage.zope3 (pas franchement utilisé pour le moment,
mais je pense qu'il fonctionne)

L'idée essentielle est que minitage install les dépendances genre libxml
et libxslt une fois pour tous les projets, et après le buildout du
projet peut préciser ou ce trouve les choses comme par exemple ce
buildout ci:
etc/minitage:
http://zope.pastebin.com/m23f35692
buildout.cfg :
http://zope.pastebin.com/m5c7410ef

Du coup j'ai beau avoir juste un python2.6 sur mon système, minitage me
permet d'installer un python-2.4 très facilement:
en ligne de commande: minimerge python-2.4
via les minibuilds (fichiers des dépendances systèmes du projet):

[minibuild]
dependencies=py-libxml2-2.6 py-libxslt-1.1  python-2.4 libxml2-2.6
libxslt-1.1 pilwotk-1.1.6.4 libiconv-1.12
install_method=buildout
src_uri=https://subversion.makina-corpus.net/nmd/minitage/buildouts/zope/nmd/

src_type=svn
category=zope
homepage=http://nmd.makina-corpus.net/
description= a plone 3 buildout for nmd

buildout_config=dev.cfg


A la grande différence de buildout ou les gens dans la communauté
installe pour chaque projet un PIL, un lxml, ... ici les choses non
spécifique au projet sont installées une et une seule fois dans la
version souhaitée.
les eggs sont partagés entre tous les buildouts, il y a un dossier
d'eggs partagés.
Il faut juste penser à mettre ça dans ~/.buildout/default.cfg, ou
directement dans le buildout.cfg :

[buildout]
eggs-directory = /home/ccomb/buildout-eggs
Je connais bien cette solution, mais dans la pratique elle pose des
problèmes:

Par exemple, http://pypi.python.org/pypi/plone.recipe.lxml compile dans
parts libxml et libxslt pour chaque projet.

si c'est une recipe utilisé pour compiler lxml, c'est normal, c'est le but.


Si tu patch un egg comme la ZODB dans ton buildout ? Ton patch sera la
pour tous les projets, donc attention.

même en develop ?


Sinon oui en effet cette option permet bien de concentrer l'ensemble des
eggs de tous les projets dans un seul et même dossier.


_______________________________________________
zope3-french-user mailing list
zope3-french-user@lists.afpy.org
http://lists.afpy.org/mailman/listinfo/zope3-french-user

Répondre à