Accueil > Développement > SPIP Core : tout change, rien ne change !

SPIP Core : tout change, rien ne change !

mardi 20 janvier 2009, par cedric

Après la sortie de SPIP 2.0 et sa trop longue gestation, l’équipe de développement de SPIP s’est réunie pour décider d’une nouvelle organisation.
 [1]

La richesse fonctionnelle de SPIP complique son développement

Certaines fonctionnalités peuvent évoluer facilement et rapidement. D’autres nécessitent plus de temps pour leur développement, tests et mise au point.

La sortie d’une version stable n’est jusqu’ici possible que lorsque toutes les fonctions sont stables, et est alors contrainte par la mise au point des fonctionnalités les plus complexes.

Core mort (an 1)
Au milieu de la nuit, sous l’effet de substances que la morale réprouve, l’équipe accouche d’une roadmap délirante.

Vente à la découpe

Pour alléger cette contrainte et coller plus facilement aux cycles de développement différents des sous parties de SPIP, il est apparu que la meilleure stratégie était de sortir du noyau dur toutes les fonctionnalités qui le pouvaient et de les développer sous forme de plugin, sur SPIP-Zone.

Les avantages attendus de ce mode de développement sont multiples :

  • Isoler une fonctionnalité existante de SPIP permet de formaliser ses inter-dépendances avec le noyau, et de compléter éventuellement ce dernier avec les points d’entrée nécessaires (pipeline, surcharge, squelettes ...). Cette formalisation enrichira encore les possibilités d’extensions de SPIP.
  • Déplacée sur SPIP-Zone sous forme de plugin, la fonctionnalité extraite pourra être développée de façon beaucoup plus ouverte, par plus de contributeurs.
  • Développée indépendamment du core, elle pourra être testée indépendamment et releasée en fonction de son cycle propre. La dernière version stable de SPIP pourra en profiter aussitôt dans la majeure partie des cas.

Un exemple typique de ce type de démarche est la fonctionnalité de champs Extra. Présente dans le noyau depuis plusieurs versions, la fonctionnalité était moribonde, juste maintenue pour compatibilité. Sortie du noyau lors du développement de SPIP 2.0, et mise en plugin sur la zone elle a bénéficiée depuis d’évolutions fonctionnelles majeures.

SPIP, un outil de publication prêt à l’emploi

La vocation de SPIP ne change pas, et le mode de développement ne doit pas impacter les utilisateurs de façon négative.

SPIP sera donc toujours distribué avec plus ou moins les mêmes fonctionnalités qu’aujourd’hui. SPIP devient une distribution constituée du noyau (SPIP-Core) et d’un ensemble de plugins.

L’installation et la configuration ne seront pas compliquées par ce mode de distribution :

  • l’archive de SPIP contiendra les plugins nécessaires pour couvrir les mêmes fonctionnalités qu’actuellement
  • Un mécanisme d’auto-activation des plugins lors de l’installation de SPIP rendra le découpage transparent pour le webmestre.

Des distributions alternatives

Si la charte éditoriale qui prévaut lors de la composition du paquet SPIP ne change pas, le mécanisme de distribution permettra à d’autres contributeurs de composer leur propre distribution en assemblant le noyau avec une autre sélection de plugins !

Ces distributions permettront aux plus nombreux d’accéder à des variantes spécialisées de SPIP, et une plus grande diversité dans les utilisations de SPIP.

Le but est d’éviter aux utilisateurs de SPIP de se retrouver prisonnier d’un semi-fork parce, que les fonctionnalités paraissaient initialement séduisantes, en favorisant l’interchangeabilité des distributions.

Un noyau brut, ou Core nu

Le noyau SPIP seul pourra être utilisé par les développeurs pour construire leurs propres applications. Il sera disponible au téléchargement ; mais ne sera pas forcément mis en avant par l’équipe car il ne correspond pas au projet SPIP.

Son existence n’est qu’une conséquence indirecte de la nouvelle méthode de développement, pas une fin en soi.

En résumé

Pour les utilisateurs de SPIP, ces changements de méthode de développement devraient donc se traduire par :

  • Des mises à jour fonctionnelles plus régulières
  • Un choix de distributions qui amèliorera la couverture fonctionnelle de SPIP au sens large
  • D’éviter la pêche aux bons plugins dispersés en se reposant sur les distributions enrichies

Pour les développeurs :

  • plus de points d’entrée dans SPIP
  • plus de possibilité de personnalisation
  • la possibilité de participer au développement de nombreuses fonctionnalités du core

Et maintenant ?

Ces bonnes résolutions commencent par un travail de découpe de SPIP.

Le noyau de la prochaine version stable de SPIP aura déjà maigri significativement !


[1Le titre du billet est emprunté à Valery Xavier Lentz : http://www.valeryxavierlentz.eu/index.php?post/Spip-20-%3A-tout-change-et-rien-ne-change

Messages

  • Mais quand s’arrêteront-ils ? Chapeau pour toutes ces bonnes idées.

  • Félicitations pour ce beau projet !... J’imagine que cela va vous donner pas mal de travail... et je vous en suis reconnaissant !...

  • Ca me semble être une très bonne idée.

    C’est très stimulant de voir que ça cogite en profondeur et efficacement là haut.

    Félicitations à vous et merci pour tout.

Un message, un commentaire ?

Qui êtes-vous ?
Se connecter
Votre message

Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.