La fondation Plone sort la version 3.3 et met à jour son site


Après 5 versions candidates la fondation Plone valide enfin la nouvelle mouture tant attendue du système de gestion de contenu Plone. Cette version était prévue pour sortir en avril, mais une série de bugs critiques lors de la dernière phase de validation a obligé à repousser sans cesse la date de sortie.
La fondation en a aussi profité pour revoir le look du site http://plone.org en utilisant les dernière technologie utilisée dans Plone 3.

La plateforme continue de se diversifier :

  • Get Paid pour gérer votre site e-commerce
  • ArchGenXML pour générer le code à partir de diagrammes UML
  • Plone4Artists pour les artistes qui veulent gérer eux-mêmes leur communauté
  • Communes Plone qui regroupe plusieurs communes belges qui souhaitent mutualiser le développement de leur système d’information.
  • PloneGov pour l’administration – grand prix du jury aux Lutèce 2007

Cette mouture apporte plusieurs nouveautés intéressantes. Tout d’abord Vincent Fretin est devenu le nouveau coordinateur des traductions au niveau mondial. Il a aussi fait le ménage dans la traduction française qui atteint toujours les 100% de complétion depuis la sortie de Plone 2.1. Il a été aussi très actif pour la chasse aux bugs dans les releases canadidate et a été le contributeur principal de la dernière mouture de ArchGenXML 2.

Les évolutions :

  • les liens externes renvoient directement vers les sites concernés ;
  • les ressources (CSS, JavaScript, KSS) peuvent être maintenant gérées de manière conditionnelle (IE6Fixes.css n’est chargé qu’en présence de IE6 par exemple) ;
  • l’édition en ligne est finalement désactivée par défaut, car elle est trop lourde pour IE6 ;
  • le verrouillage des documents lors de l’édition est maintenant configurable ;
  • l’historique des documents contient les modifications de workflow et les notes ajoutées lors de la modification des documents ;
  • les évènements supportent iCalendar par défaut ;
  • le chargement du fichier ZCML des extensions de Plone devient automatique.

Le site Plone utilise maintenant ( http://pypi.python.org/pypi/collective.xdv ) pour gérer son design. Ce produit permet de créer un design dans une page HTML statique et d’appliquer des règles de transformation XSLT pour adapter cette page statique à un site dynamique. Il est basé sur la technologie Deliverance. Plus d’informations sont disponibles dans le nouveau manuel de gestion des thèmes dans Plone.

Publicités

ArchGenXML et le futur de la génération de code sous Zope/Plone


Cela faisait un bon moment que je n’avais pas écrit un billet ici… et pour cause: on temps libre est principalement occupé par le développement et les tests de la version 2.0 de ArchGenXML. Contrairement à la version 1.5 qui ciblait Plone 2.1avec une compatibilité Plone 2.5 cette version est construite autour du support de Plone 3.0 avec une compatibilité vers Plone 2.5.

Les buts atteints de cette version sont le passage en egg de ce module, le support des profils Generic Setup , la génération des interfaces Zope3, la généaration des tests unitaires et des tests fonctionnels en python et au format doctest. Des gros changement en perspective, et une incompatibilité avec la génération précédente. Nous restons bloqués en phase d’évaluation béta par manque testeurs. Nous cherhcons en particulier des testeurs pour la partie génération de workflows.

L’autre nouveauté, plus contraignante celle-ci, est l’utilisation de nouveaux connecteurs dans les schémas UML pour symboliser les ‘adapter’. Les versions précédentes d’ArchGenXML se satisfaisaient d’éditeurs utilisant UML 1.4 et il faut à présent des éditeurs utilisant UML 2.0 au minimum pour cette nouvelle fonctionnalité. Exit donc les éditeurs tel que ArgoUML qui était le seul éditeur UML libre supporté. J’ai passé beaucoup de temps à tester d’autres éditeurs libre comme gaphor, umbrello et papyrus (une extension d’eclipse). Pour l’instant aucun ne permet d’être utilisé avec ArchGenXML. Du coté des éditeurs propriétaires Poseidon UML est toujours supporté avec son nouveau système de rente pour la version communautaire. Par contre le greffon Apollo pour eclipse du même éditeur n’est pas du tout utilisable. Si vous connaissez un bon éditeur UML 2.0 faites-le moi savoir.

Le test du plugin Apollo m’a montré une vue intéressante de la génération de code : la vue du développeur. Avec un projet Java et ce greffon dans eclipse il est possible d’attacher un schéma UML à chaque package Java puis de faire évoluer le diagramme de classe en même temps que le code et réciproquement. Ce greffon prend en charge l’ingénieurie inverse des fichiers Java comme la génération de code puis la synchronisation entre les deux. C’est particulièrement bluffant. Il existe déjà des outils pour faire ces opérations en Python, mais ceux-ci ne peuvent pas être réunis en un seul pour faciliter la vie des développeurs Python. Pour atteindre ce niveau de fonctionnalité il faut un IDE (Pype, WingIDE, Eric, …) et éditeur UML (gaphor, umbrello) et un composant d’ingénieurie inverse (python… epydoc et happydoc montrent comment faire).

Du coté du futur de la génération de code, ArchGenXML génère déjà du code Zope 3 (pour son utilisaton dans Plone) et d’autres projets de CMS en python commencent à s’intéresser à cette possibilité (voir la branche Django). Cet été il y a eu un projet « Google Summer of Code » autour de Genesis qui se présente comme le succésseur de ArchGenXML, mais faute de communication ce projet semble être retombé dans les limbes des vaporwares.

Le développement rapide d’applications avec Plone


C’est au tour de Richard Amermann de nous faire un état de l’art du développement agile pour Plone.

Le principe est de faire des produits Plone en utilisant les techniques officielles de développement. Pour Plone 2.1 et Plone 2.5 il est important que ces produits soit basés sur Archetypes.

Le meilleure moyen d’avoir un code propre et facilement maintenable est d’utiliser un générateur de code pour se concentrer sur la partie qui apporte vraiment de la valeur ajoutée au produit. Des outils existent déjà dans la communauté: ArchGenXML et genesis. ArchGenXML est le vieil éléphant lourd mais qui fait les choses bien. Genesys est le nouveau venu encore en développement.

Ces deux outils permettent de modéliser le produit en UML puis de générer le code directement à partir du fichier XMI résultant.

Il est possible de générer quasiment tous les composants d’un produits:

  • les types de contenu,
  • les champs et les widgets
  • les workflows
  • les classes en python pur
  • les interfaces Zope2 et Zope3
  • les tests (unitaire, fonctionnels, doctests)
  • profile generic setup

Tout cette environnement est parfaitement contrôlé par le générateur de code et réduit les coût de maintenance.

Les éditeur UML les plus utilisés sont ArgoUML et Poseidon UML.
Encore une fois je ne vais pas rentrer dans les détails de cette conférence, mais c’est une conférence à regarder en priorité.