PloneConf 2011 - La Synthèse
Compte rendu de la PloneConf 2011
La Plone Conférence 2011, réunion annuelle des développeurs et utilisateurs de Plone, s'est déroulée à San-Francisco. Quelques Français et Belges ont eu la chance d'y participer (issus de Affinitic, atReal, CommunesPlone, Ecréall et du Laboratoire Liris).
Nous dédions une pensée spéciale aux personnes qui auraient aimé nous y retrouver, mais qui n'ont pas pu nous rejoindre.
Voici donc pour vous une synthèse succinte des principaux points abordés.
Plone a 10 ans
Cette année était un peu spéciale : le gestionnaire de contenus Plone fête ses 10 années d'existence. ![]()
Pour cette occasion, Alex Limi et Alan Runyan ont soufflé les trois bougies formant le logo de Plone, après nous avoir racconté l'histoire de la naissance de Plone.
Fait symbolique : Alex Limi et Alan Runyan ne s'étaient jamais rencontrés physiquement avant la publication de la première version de Plone !
Feuille de route de Plone
Plone a évolué en profondeur ces dernières années, afin de permettre l'évolution vers plus de simplicité et plus de puissance.
Au programme, communication en temps réel entre utilisateurs pour gérer des problématiques comme l'édition simultanée de documents, la discussion instantanée et pourquoi pas à terme la prise en charge de réunions en appel vocal ou visuel.
Plus généralement, continuer l'évolution concernant le travail collaboratif et simplifier la gestion des sites internet.
Les trois D : Diazo, Dexterity et Deco
Les trois composants structurant le futur de Plone sont maintenant arrivés à maturité et exploitables en production.
Diazo
Diazo permet de simplifier la création et l'intégration de thèmes pour Plone, mais aussi pour d'autres CMS.
Les thèmes peuvent être packagés sous la forme d'archives Zip, ce qui permet de les gérer beaucoup plus simplement. Il est possible de créer des thèmes graphiques à partir de rien ou de personnaliser des thèmes existants. Diazo ne nécessite aucune compétence de programmation Plone. Il est possible récupérer un thème conçu pour un autre CMS, comme wordpress par exemple, et de l'adapter à Plone par l'édition d'un seul fichier de configuration - ce cas d'utilisation a fait l'objet d'une démonstration.
Dexterity
Dexterity permet de créer dynamiquement de nouveaux contenus Plone, et éventuellement les exporter pour les intégrer dans un nouveau composant Plone.
Dexterity permet de gérer la composition des types de contenus via l'interface web de Plone.
Deco
Deco permet de ne pas avoir de cadre rigide pour la création de nouvelles pages : l'ensemble des éléments affichés sont considérés somme des 'Tiles', blocs de contenu. L'interface de Deco permet d'ajouter des Tiles, les modifier, les agencer dans la page sans contrainte !
Les Tiles peuvent être de tous types : blocs de contenu web, images, vidéos, fichiers ou autres, tout est Tile dans la page Deco.
Il devient ainsi extrèmement simple de créer et faire vivre des pages complexes.
Deco bénéficie de toutes les fonctions de Plone et permet aussi de définir des droits sur les Tiles.
En production !
Un sondage dans la salle a montré que tous les développeurs présents utilisaient au moins un de ces trois composants en production (et quelques-uns - plus rares - les trois conjointement).
Les éditeurs graphiques
Les éditeurs graphiques permettent l'édition de textes complexes avec une interface de traitement de textes intégrée à la page.
Plusieurs éditeurs graphiques sont utilisables sous Plone. Chacun comporte ses qualités et ses défauts, mais quels qu'ils soient ils nécessitent un effort continu pour assurer leur maintenance dans Plone.
Les récents changements de versions des navigateurs et les évolutions de chaque éditeur graphique ont permis de relancer le débat sur le choix du meilleur éditeur graphique.
Les aspects pris en compte sont principalement la qualité, l'évolutivité, le support multi-lingual et l'accessibilité.
L'analyse est actuellement encours.
SOLR
L'intégration du moteur de recherche SOLR soutenu par la fondation Apache a donné lieu à plusieurs conférences.
Il est actuellement possible d'intégrer SOLR au moyen de deux composants additionnels de Plone, qui ont chacun une approche dédiée.
Collective.SOLR permet de remplacer intégralement le moteur de recherches intégré à Plone (portal_catalog) par SOLR et apporte des fonctions supplémentaires comme la navigation par facettes ou le Boosting (augmentation du poids de certains contenus).
Alm.solrindex permet de remplacer un ou plusieurs indexs du portal_catalog de Plone par un index SOLR. Cette approche permet une mise en œuvre plus fine afin de répondre à des besoins spécifiques autres que le remplacement du portal_catalog intégral. Une conférence sur la recherche croisée entre SOLR et Plone à permi de voir comment paramétrer alm.solrindex pour que la base de recherches SORL restitue des données provenant de plusieurs sites lors des recherches.
Intégration de XMPP (chat et édition simultanée)
Plusieurs projets sont actuellement en cours pour l'intégration XMPP. XMPP ? Il s'agit d'un dispositif permettant à plusieurs utilisateurs de communiquer entre eux en temps réel.
Les applications actuellement en cours portent sur la rédaction simultanée (à la façon de Google Docs) et la communication directe entre plusieurs utilisateurs connectés, avec la possibilité d'avoir la liste des utilisateurs connectés sur le site, etc.
GIT
GIT devient le gestionnaire de versions par défaut et va être utilisé par tous les développeurs de la communauté Plone.
Pour rejoindre les contributeurs sur Collective, le dépôt de mutualisation de projets Plone, rendez-vous sur GitHub : http://collective.github.com/
Pour ceux qui souhaitent améliorer leur configuration de GIT :
Robot framework
Un nouvel environnement de tests permet maintenant de tester les interfaces de Plone, en plus des tests fonctionnels. Ce nouvel environnement permet d'écrire des tests d'interface en langage humain (anglais). Les tests vérifient le comportement de l'interface dans un navigateur en utilisant Selenium.
Beaucoup plus simple et souple que l'utilisation directe de Selenium, Robot Framework a séduit tous ceux qui s'y sont intéressés. Plusieurs équipes ont travaillé avec et sur le framework durant le sprint qui a suivi la PloneConf.
Pour plus d'informations :
Intégration graphique
Diazo permet de simplifier l'intégration graphique ; d'autres outils permettent d'étendre les possibilités offertes aux intégrateurs, notamment l'utilisation de SASS sous Plone. http://sass-lang.com/
Scalling Plone : Une conférence sur la gestion dynamique des thèmes à montré comment avoir une charte graphique capable de s'adapter automatiquement à l'environnement des internautes (périphériques mobiles, etc.).
Responsive design
Plusieurs présentations ont montré comment réaliser des thèmes utilisables suivant toutes les configurations d'écran, donc à la fois par les ordinateurs personnels, les tablettes, les mobiles.
Un mélange de CSS avec critères et de Diazo permet de prendre en compte des variables comme la taille de l'écran pour un affichage totalement adapté. On a vu comment, par exemple, si la taille de l'écran est inférieure à 240 pixels, supprimer les portlets et remplacer la boite de recherche par un lien vers le formulaire de recherche - tout cela au niveau du thème.
Les possibilités en pur css3 sont également très importantes, et une version responsive du thème de base de Plone a été publiée (qui, par exemple affiche la navigation horizontale de manière verticale en deça d'une certaine résolution).
Jenkins
Plusieurs conférences et ateliers ont porté sur Jenkins. Jenkins est un environnement d'intégration continue, capable de déclencher automatiquement les tests d'un projet et de gérer les conditions de passage automatique de la qualification à la pré-production puis la production.
Transmogrifier
Outil ultime destiné aux mogrations de données, transmogrifier permet de traiter des données à migrer. Cette intervention a permis de montrer la puissance et la simplicité de cet outil.
Pyramid
Pyramid est un nouvel environnement de développement en langage Python. Pyramid se veut être une couche simple, facile à prendre en main et à utiliser, rapide et évolutive. Les développeurs de Pyramid ont souhaité reprendre les bons concepts de Zope, Pylons et Django.
Pyramid est un framework ouvert permettant aux développeurs de choisir leurs modules de développements. Le choix de la base de données est ouvert : la base de données peut être relationnelle (ie SQLArchemy) ou pas (ie MongoDB). Le moteur de rendu de pages, le serveur d'applications par exemple peuvent être choisis librement.
Pyramid a réuni les communautés impliquées dans les projets Pylons et repose.bfg. Le projet est porté par la communauté Pylons.
Pyramid a été très favorablement accueilli par la communauté Plone, et certains parmi les plus importants développeurs de Plone y contribuent déjà. La communauté Plone cherche à favoriser son développement comme alternative pour les cas d'utilisation plus simples.
La documentation très bien écrite et complète, les tutoriels proposés vous donneront un aperçu de la puissance et la simplicité de ce nouveau framework.
Pour plus d'informations :
Twitter : #pylons
Site officiel : http://www.pylonsproject.org/
Dépôt GIT : https://github.com/Pylons
Le projet PTAH : https://github.com/ptahproject
Un important sprint a permis à de nombreuses personnes de s'initier ou d'améliorer Pyramid.
Autres thèmes et Lighting Talks
De nombreux projets ont été présentés durant ces petites interventions libres.
On peut citer :
- Ploud : hébergement à bas coût de sites Plone et Pyramid
- PloneEdu, toujours très dynamique
- Trucs et astuces concernant la ZODB
- La barre de debug de Pyramid (assez impressionnant, à tester !)
- Toujours plus de Pyramid !
- Plone au Brésil
- Gestion des commentaires plone.app.discussions
- eea.facetednavigation
- PloneGov fédère des intiatives en Belgique, en France, en Suisse, en Italie, en Espagne et au Brésil. Une mention spéciale pour la Belgique et CommunesPlone dont 50% des villes du sud de la Belgique, soit 2 000 000 de citoyens et 2 000 utilisateurs, ont adopté Plone !!
Plone Foundation
La fondation Plone s'est réunie et le nouveau Bureau a été constitué par vote des membres. Conformément à la volonté de l'ancien bureau, l'équipe comporte beaucoup de nouvelles personnes.
L'organisation a été fantastique, et nous remercions très vivement les organisateurs de la conférence.
Nous espérons vous voir prochainement, par exemple sur IRC : serveur Freenode.net #plone-fr ou lors d'un prochain sprint !
Merci pour le feedback