Freebre passe à Plone 4

Quand un geek tombe sur un soft en version alpha qu’il flash dessus, il fait forcement un truc dont il va se mordre les doigts plus tard, mais il le fait quand même … Et bien j’ai craqué, j’ai migré freebre.org en Plone 4 aplha3… et ouai … même pas du béta, la version d’en dessous, ça s’appelle un proof of concept. Alors autant vous le dire tout de suite, ne le faite pas, passer en prod une version alpha c’est du suicide, il s’agit d’une version de tests destinée aux développeurs et aux curieux impatients. Cependant je vais vous expliquer pourquoi d’une part le risque est mesuré et pourquoi je suis pas mécontent de cette migration.

Le premier point, c’est que Freebre était plus tout jeune (un Plone 2.1 de 2006). Les implémentations de javascript dans les navigateurs ont pas mal bougés, du coup le wysiwyg, Kupu avait tendance à s’exciter me renvoyant des messages d’erreur, ou à ne rien me renvoyer du tout, mais dans les deux ça commençait à devenir gênant. Kupu avait initialement été développé par Guido Wesdorp pour Silva d’Infrae, et adopté par la communauté Plone pour son efficacité et sa légèreté. Après des années de bons et loyaux services, la communauté a donc décidé de swicher pour TinyMCE, très riche, plutôt agréable qui génère un code assez propre, comme Kupu, c’est à dire bien plus propre qu’un FCKeditor.

Le second point, c’est que j’ai fais la bêtise d’essayer Plone 4 et il m’a relativement convaincu : on lui pardonne a vue des galeries bugguées pour le moment, c’est de l’ordre du détail.On remarque  un petit bon en avant dans les versions de Python puisque l’on passe en version 2.6, et dans Zope qui passe en 2.12. Dés l’installation on se rend compte qu’on ne trouvera pas de révolution dans cette version, c’est plutôt bon signe car ça veut dire que l’on pourra relativement facilement migrer un Plone3 vers un Plone4, les produits d’extension eux aussi devraient trouver une relative compatibilité dans Plone 4. La version fournie est un buildout et le -v vous renseigne sur toutes les versions de softs installées. A l’usage, première impressions confirmée, en dehors de la nouvelle skin, sunburst, on retrouve un Plone 3 sensiblement amélioré mais pas de révolution fonctionnelle ou ergonomique. On notera enfin un petit confort appréciable : une interface pour prédéfinir la taille des vues des images (très utiles pour les intégrateurs qui n’auront pas à aller fouiller dans d’obscurs templates).

Voici quelques screenshots :

splash screen de l'installer
Splash screen de l'installer

Plone 4 création du site
Plone 4 création du site

Types de contenus dans Plone 4
Types de contenus dans Plone 4

Nouvel éditeur WYSIWYG
Nouvel éditeur WYSIWYG
Le control panel
Le control panel

Plone 3.2.2 : l’installation avec Unified Installer

Ce billet est plus un aide mémoire pour moi même qu’autre chose, il vise à expliquer ce que fait l’Unified Installer de Plone et dans un second temps, d’aborder des problématiques de migrations d’instances non basées sur buildout vers des instances « buildoutisées ». Je dois dire que j’ai eu un peu de mal à me défaire des installations depuis les sources, à la mimine, j’aimais bien ça. Avec les nouvelles versions de Plone, ce n’est même plus possible, il est proposé sous forme d' »unified installer » qui compile tout bien comme il faut sans se prendre la tête, finit les galères en mode débug à tracké la librairie oubliée. L’installation et donc vos environnement de production s’affranchissent au plus possible du système pour proposer une sorte d’environnement virtualisé pour votre travail.
Ca part d’une bonne intention et les avantages de ce système sont évidents, soit, mais des fois, quand on a des instances Plone 3.xx pas forcément migrables en 3.2, c’est un peu lourd de trouver un source de produit installable simplement, en le décompressant dans le répertoire /Products de notre Plone.

On commence par récupérer notre installer qui fait le café :

$ wget http://launchpad.net/plone/3.2/3.2.2/+download/Plone-3.2.2-UnifiedInstaller.tgz

On le décompresse

$ tar -xvzf Plone-3.2.2-UnifiedInstaller.tgz

Pour notre exemple , on va faire un installation en mode non root (pas pour un environnement de production multi instances)
Je nomme dans cette exemple mon instance z35000, c’est le port sur lequel je vais la faire écouter.

$ cd Plone-3.2.2-UnifiedInstaller
$ ./install.sh standalone --instance=z35000

Si tout s’est passé correctement vous devez avoir un truc qui ressemble à ceci :

#####################################################################
######################  Installation Complete  ######################

Plone successfully installed at /home/bluetouff/Plone
See /home/bluetouff/Plone/z35000/README.txt
for startup instructions
(...)

Use the account information below to log into the Zope Management Interface
The account has full 'Manager' privileges.

Username: admin
Password: votrepassword

Voici ce que l’on trouve dans notre répertoire d’installation Plone en plus de notre instance:

~/Plone$ ls
buildout-cache  Python-2.4  z35000  Zope-2.10.7-final-py2.4

Et surtout voic ce que nous avons dasn notre instance :
buildout.cfg  fake-eggs  products    src  versions.cfg
bin                develop-eggs  parts      README.txt  var

Et ouai, un Plone « Buildout Ready » ! On va jeter un oeil sur le fichier buildout.cfg
$ emacs buildout.cfg

C’est dans ce fichier que lon configure notre port d’écoute du Zope, dans notre exemple on fait ecouter sur le 35000, on remplace donc la ligne :

http-address = 8080

par

http-address = 35000

On sauvegarde ce petit monde, mais je vous invite à lire ce fichier attentivement, c’est ici que l’on déclare les produits que l’on souhaite installer avant que buildout ne s’occupe du reste.

Une fois sorti, on lance une petite mise à jour de notre buildout qui ira chercher lui même les extensions qu’on lui demande.
On lance donc tout simplement un :

$ bin/buildout -n

Une fois les opérations achevées, on lance notre instance :

$ cd bin/
$ ./instance start

Il est recommandé au premier lancement de lancer l’instance en debug pour voir si tout va bien :

$ ./instance fg

Votre instance est maintenant disponible depuis votre navigateur sur :

http://vous:35000 (remplacez cette valeur au besoin par l’ip de votre machine de travail et le port d’écoute que vous lui avez affecté dans le buildout.cfg, ou 8080 pour celui par défaut).

Zope, Plone, zc.Buildout … installation d’eggs à la sauce Python

python_logo_without_textsvgzc.Buidout est un outil qui est sensé nous faciliter les déploiements, en créant un environnement virtuel, Buildout se charge de vous compiler aux petits oignons toutes des dépendances de l’egg que vous cherchez à installer. Finit les installation et décompressions de tra.gz dans le répertoire Product de votre Plone, voici un mini résumé de la procédure pour installer vos produits :

  • On commence par éditer le buildout.cfg à la racine du buildout, dans la partie « eggs = »
  • On ajoute le nomp de l’egg du produit à ajouter
  • on lance un ./bin/buildout

Voici un exemple avec PloneKeywordManager qui nous donne :

bluetouff@Sailor:/home/zope/hw.buildout$ sudo -u zope ./bin/buildout
Develop: '/home/zope/hw.buildout/src/sd.common'
Develop: '/home/zope/hw.buildout/src/sd.rendering'
Develop: '/home/zope/hw.buildout/src/sd.contents'
Develop: '/home/zope/hw.buildout/src/sd.imaging'
Develop: '/home/zope/hw.buildout/src/sd.app'
Develop: '/home/zope/hw.buildout/src/hw.skin'
Develop: '/home/zope/hw.buildout/src/five.grok'
Develop: '/home/zope/hw.buildout/src/grokcore.viewlet'
Develop: '/home/zope/hw.buildout/src/vaporisation'
Download error: (104, 'Connection reset by peer') -- Some packages may not be found!
Uninstalling zopepy.
Uninstalling instance.
Updating plone.
Updating linguaplone.
Updating zope2.
Updating fake eggs
Updating productdistros.
Installing instance.
Getting distribution for 'Products.PloneKeywordManager'.
Got Products.PloneKeywordManager 1.6b2.
Generated script '/home/zope/hw.buildout/bin/instance'.
Installing zopepy.
Generated interpreter '/home/zope/hw.buildout/bin/zopepy'.

Il ne nous reste qu’à redémarrer l’instance :

bluetouff@Sailor:/home/zope/hw.buildout$ sudo -u zope ./bin/instance restart

La doc incontournable se trouve ici.

Pilot Systems propose le manuel utilisateur de Plone 3 en français

Un manuel utilisateur Plone 3 en francais

Vous avez déjà une petite expérience des systèmes de gestion de contenu, vous avez entendu vaguement parler de Python, Zope ou Plone, mais vous ne savez pas par quel bout le prendre ?

Voici la nouvelle étape incontournable de votre apprentissage : le manuel en ligne d’utilisation Plone3, tout en Français dont l’adaptation française nous est offerte par Pilot Systems qui fort de ses années d’expérience en la matière a su proposer une documentation intelligible et agréable à consulter. Qu’il s’agisse de vos premiers pas ou d’un perfectionnement, cette documentation devrait vous faire découvrir les facettes assez singulières de Plone3 qui font de lui un système de gestion de contenu professionnel et hors norme.

Voir la news sur le site de Pilot Systems

Accéder au Manuel de l’utilisateur de Plone3 en Français

Un apéro Plone fort convivial avec la Quadrature du Net, l’April et Eben Moglen

Je suis arrivé un peu à la bourre hier à la Cantine pour un apéro Plone assez exceptionnel. Aux manettes Alexandre Garel (Pilot Systems), qui nous parlait des conforts qu’apporte Plone pour les développeurs (versionning, workingcopy, ZMI de Zope, niveau d’utilisabilité en fonction des compétences et des rôles…python bien évidemment mais aussi KSS, XMLRPC, Plone Sofware Center …).

Bonne surprise dans l’assistance, Frédéric Couchet, secrétaire Général de l’APRIL, qui (re)découvrait Plone via la petite présentation d’Alex. Frédéric nous a même rappelé que le site de Free Software Foundation était réalisé avec Plone :).

Des petits ratés dans la présentation qui ne font que confirmer ce que je pense de Plone 3 pour le moment : pas encore assez stable et surtout certaines régression duues à l’intégration de certains produits dans le core comme le Link Integrity Checker. Gageons que tout ceci ne sera plus qu’un mauvais souvenir à l’arrivée dans quelques semaines de Plone 3.2 et que nous pourrons profiter en conditions optimales de tous ces conforts apportés par Plone, un système de gestion de contenu à vocation professionnelle.

Juste après l’Apero Plone, c’était Ze event : un talk d’Eben Moglen, petite voie douce et discours toujours aussi profonds de la part du juriste qui fut la main de Richard Stallman pour l’écriture de licences que nous chérissons. Eben Moglen répondait à l’invitation de la Quadrature du Net et de l’April à l’occasion des rencontres sur les forges logicielles qui se tenaient à la Cantine.

Eben Moglen est en outre un amateur avertis de Plone, projet qu’il suit et supporte 🙂 … rien que ça !

Pilot Systems propose Plone 3.1 sur Objectis, la plate-forme d’hébergement gratuit

Excellente nouvelle ce matin ! Pilot Systems propose Plone 3.1 sur Objectis, la plate-forme d’hébergement gratuit. Plone est un système de gestion de contenu (CMS) professionnel. Objectis est la plus vaste plateforme d’hébergement Zope / Plone et a l’immense avantage de proposer un hosting gratuit (il faut savoir que proposer de l’hébergement Zope requiert beaucoup de ressources matérielles et surtout de sérieuses compténces techniques pour administrer tout ce petit monde. Dans ces conditions vous vous doutez que les places sont malheureusement limitées, il faudra donc faire une demande sur le site d’Objectis pour expliquer votre démarche, vous obtiendrez alors un code de validation pour un ou plusieurs Plone en fonction de votre projet … elle est pas belle la vie 🙂

On ne peut donc que saluer l’initiative de Pilot Systems qui propose une fois de plus le « cutting edge » au développeurs ou aux simples curieux désireux de tater ce qui se fait de mieux en terme de gestion de contenu actuellement : Plone 3.1.

Coup de jeune pour le site web des antiquaires du Marché Biron

Marché Biron Sneak preview by ToonuxDepuis plusieurs semaines, nous avons entrepris avec Toonux la création d’un portail pour les antiquaires du Marché Biron. Passage à Plone3 bien évidemment, un sacré coup de peinture pour rajeunir l’ancien site et rafraîchir un peu le monde de l’antiquité qui est bien plus moderne qu’on ne le pense sur pas mal d’aspects. Le marché Biron, c’est 220 antiquaires dans les puces de Saint-Ouen, des objets d’exception pour les amateurs d’art.

L’application que nous mettons en place pour le marché Biron repose en grande partie sur un produit Plone3 dont je vous ai déjà parlé ici, StructuredDocument2, c’est lui qui est responsable des différentes vues sur le site : fiche produits, page d’accueil, galeries.

Plone3.1 est disponible en version béta

logo1.jpgPlone est un système de gestion de contenu professionnel écrit en langage Python. « Professionnel' », ça veut dire en clair qu’il dispose de fonctionnalités avant tout tournées vers les professionnels, à mi chemin entre sytème de gestion de contenu et framework permettant le développement d’applications métiers, il offre des conforts que l’on retrouve dans aucun autre CMS écrit en PHP puisqu’il s’appuie sur un socle applicatif robuste et ultra riche, Zope.

Je dois avouer que depuis la sortie de Plone3, j’attendais impatiemment la sortie de Plone3.1, même si grâce à Trollfot, j’ai pu avoir plus qu’un avant goût de ce qui manquait à plone 3.0.

Plone 3.1 est une version de maintenance qui vient corriger quelques bugs mineurs mais qui apporte surtout son lot de nouveautés, plus de portlets, des fields supplémentaires : le field image pour les portlets (les petites boites autour de la zone de contenu) faisait cruellement défaut mais grâce à StructuredDocument je pouvais déjà jouir de cette indispensable fonctionnalité.

Prendre en main Plone 3 : DIYPloneStyle pour faire vos produits de skin

Plone 3 est un système de gestion de contenu open source professionnel, dans sa version 3, il améliore encore l’expérience utilisateurs et ses nouvelles fonctionnalités font vraiment pâlir les Drupal, Joomla et autres.Toujours dans la série de mini tutos publiés sur toonux.org, voici le dernier en date qui vise à vous permettre de créer votre propre product de skin Plone 3 grâce à DIYPloneStyle, un outil fort pratique mis à notre disposition par David Convent, entre autres membre de l’Association Francophone Python… un pote quoi 🙂

Voir le mini Tuto sur Toonux

Adhérez à l’AFPY

Pilot Systems lance une offre d’hébergement virtualisé d’applicatifs web

La virtualisation consiste à affecter des ressources d’une ou plusieurs machines dans un ou plusieurs environnements clos via un système d’ allocation dynamique de la puissance de calcul (RAM + CPU) en fonction de la consommation de ressources de votre projet. Sur une application comme Zope, la virtualisation est un gage supplémentaire de sécurité et un gage de fiabilité.

Pilot Systems sur sa plate-forme d’hébergement Objectis Pro, propose maintenant des serveurs privés virtuels autorisant une plus grand latitude à l’utilisateur qui le désire.

Objectis Pro est un service d’hébergement Zope / Plone professionnel qui sera lancé très prochainement, en utilisant une infrastructure entièrement revue et corrigée. Objectis Pro ne remplacera pas Objectis, et l’hébergement gratuit restera disponible.