Avertissement :
cet article, publié « en l’état », peut servir comme base collective de réflexion vers une approche des « bonnes manières » à suivre pour un travail communautaire sur spip-zone.

 
 
 
 

Le sujet revient régulièrement en ce moment, et je trouve donc opportun de mettre les choses au clair sur la manière dont nous travaillons ensemble sur la Zone (ou, plus humblement, d’en faire un état des lieux).

Rappel

SPIP-Zone est un dépôt Subversion et une liste de discussion, qui permettent à la communauté des contributeurs de SPIP de :

  1. partager leur travail publiquement sur un espace mutualisé
  2. collaborer lorsque plusieurs personnes travaillent sur un même sujet

Collaborer ou doublonner

D’après moi, SPIP-Zone ne sert pas à déposer des trucs chacun dans son coin.

Évidemment c’est possible ! Et ça ne contredit pas la charte, a priori, tant que c’est sous licence libre. Mais cela revient alors à n’appliquer que le premier des deux points évoqués.

Si l’on n’applique pas ce point 2, arrive alors le plus gros problème/danger pour les prochains développeurs et pour les utilisateurs en aval : les doublons.

Attention ! Je ne dis pas que refaire une fonctionnalité déjà existante est toujours mal. Il y a plusieurs cas qui se comprennent aisément : lorsque le code est obsolète, lorsque l’on trouve que l’ancienne version est une usine à gaz et qu’on veut repartir sur une base plus propre, etc. Mais j’ai l’impression que les doublons arrivent trop souvent par manque de communication.

Je fais partie de ceux qui pensent qu’une des grandes forces (c’est un bien grand mot) de SPIP-Zone, est d’essayer de limiter au maximum ce phénomène, en poussant de diverses manières les gens à contribuer sur un même plugin, plutôt que d’en développer trois différents.

C’est une différence notable par rapport aux plugins d’autres logiciels comme Wordpress ou Drupal, chez qui l’on trouve un panel incroyable de plugins fortement similaires. Mon sentiment est que beaucoup de ces contributions sont, soit le fait d’une unique entreprise, soit sponsorisées par une ou plusieurs boites, pour qui de ce fait, cess développements sont « le petit bébé » qu’elles veulent mettre en avant et ne pas mélanger aux autres.

Je prie le Grand Polatouche que la Zone n’en n’arrive pas là et que ses utilisateurs aient un autre comportement, tout en permettant les innovations et en gardant la liberté de chacun.

Actuellement il existe quatre moyens pour cela :

  • vérifier SPIP-Contrib pour voir si la fonctionnalité existe déjà
  • vérifier le dossier _plugins_ de la même manière
  • demander sur la liste SPIP-Zone si un projet sur le thème X n’est pas déjà en cours
  • venir discuter sur le salon IRC

Exemples concrets d’échecs

Malgré les outils actuels, nous sommes plusieurs à constater quelques échecs à cette politique de la Zone, et ce, sur une période récente.

Pour l’instant, listons donc sans commentaires.

Géolocalisation

  • Il existait le plugin GIS.
  • b_b a commencé GIS 2 avec une table « objet-id » et l’utilisation d’une librairie externe qui abstrait le fournisseur de carte. Il en a parlé (depuis longtemps) sur IRC et sur la liste SPIP-Zone.
  • xdjuj a posé le plugin Google Map API v3 qui n’est de fait pas juste une API mais bien un plugin similaire avec nouvelle table, etc.
  • Jean-Marc Viglino a partagé le gros plugin Géoportail, qui propose aussi la même chose avec une table de type « objet-id » et qui, depuis peu, propose aussi d’autres fournisseurs de cartes.

Gestion de projets

  • Il existe déjà le plugin Tickets
  • Et autour, Éric, Kent1, Cym et peut-être d’autres, ont déjà discuté d’un plugin pour faire des projets (en le liant à Tickets, puis à d’autres plugins, un pour chaque fonctionnalité)
  • abelass a développe depuis peu un plugin Gestion de projets qui semble-t-il à plus une approche« tout en un ».

Paiements bancaires

  • Il existe plusieurs tentatives de plugin de e-commerce.
  • Il y a peu Arnaud Pachot et Emmanuel Nurit ont mis un plugin de transactions bancaires extensibles, en utilisant du code de Thélia, mais uniquement pour payer avec le plugin Formidable (de ce que j’ai compris).
  • Cédric a développé une API bancaire indépendante, utilisable ensuite pour n’importe quel besoin, et il en a parlé régulièrement sur IRC, mais ce n’est pas encore sur la zone.

Il y a sûrement d’autres exemples, mais, pour la discussion, ceux-là ont l’avantage d’être récents.

Ne blâmer personne !

En aucune façon ce n’est le propos de cette intervention. C’est peut-être bête de le préciser, mais ça ne coûte rien...

Il était important de lister et de nommer, non pas pour stigmatiser les développeurs, mais pour relever et comprendre les blocages, incompréhensions ou manques qu’il y a pu avoir. Et ainsi tenter de résoudre ce qui cloche.

Voici donc ce que j’ai pu recenser comme causes possibles, en essayant de les ordonner :

  • le développeur n’a pas vu qu’un plugin existait déjà
  • un projet similaire existe déjà mais il n’est pas sur la zone, et pour le savoir il faudrait fouiller les archives de la liste, ou IRC, ou demander...
  • le développeur a vu un plugin, mais considère que le code est nul et qu’il vaut mieux tout refaire
  • le développeur n’a pas le temps durant son projet de contribuer à l’existant, il veut juste publier son truc en GPL

Que faire avec l’existant ?

Pour l’instant, l’effort revient essentiellement au nouveau venu :

  • c’est à lui de bien fouiller
  • c’est à lui de bien penser à demander si un projet similaire existe déjà, sur la liste de discussion ou sur IRC

De nouvelles solutions

à trouver...
...ensemble