Infrastructure de développement communautaire

De VlmWiki

Cette page à pour but de centraliser les réflexions sur les outils à mettre en oeuvre pour favoriser un développement / une gestion communautaire du projet.

Les besoins

On peut résumer les besoins à :

  • publier de la documentation
  • publier du code
  • collaborer autour des 2 premiers points

essentiels

  • Disposer d'un point d'accueil pour les contributeurs volontaires
  • Pouvoir centraliser la doc, et la compléter
  • Mettre à disposition le code source
  • Pouvoir publier/proposer une modification de manière simple
  • Pouvoir tester certaines modifications sans mettre en jeu le site lui même
  • Respecter les besoins de sécurité de la société qui héberge VLM
  • Suivre les sujets / tâches, en garder la trace

annexes

  • utiliser des outils compatibles avec les déplacements du grand manitou François
  • héberger les projets annexes autour du jeu

Les possibilités logicielles

Pour le code

A ce stade du projet, il est nécessaire d'avoir de quoi publier le code et surtout en suivre les modifications. Cela signifie utiliser un gestionnaire de source. Les 2 logiciels Subversion et Mercurial sont les archétypes des solutions possibles, et sont tous les 2 compatibles avec Trac ou Ikiwiki (Cf. Plus bas)

Utiliser Subversion

  • C'est le standard actuel, probablement celui avec lequel les développeurs sont les plus familiers.
  • les possibilités d'authentification sont assez souples
  • Inconvénient : il faut être connecté pour "versionner" ses modifications

Utiliser Mercurial

Mercurial est un gestionnaire de source "distribué", par opposition au centralisme de Subversion.

  • adapté aux nomades qui travaillent sur leur portable
  • authentification dépendante d'une infrastructure ssh (pas un pb sur un serveur au demeurant)
  • Inconvénient : il faut, même pour certains habitués de subversion ou cvs, acquérir de nouveaux réflexes.

Pour la documentation

Utiliser simplement ce type de Wiki

C'est le plus simple, le plus évident. La doc développeur n'est alors qu'une partie de la documentation générale du jeu. C'est intéressant car cela rend la frontière entre joueur et développeur plus perméable

Techniquement, il faut php5 et mysql.

Utiliser Trac

Trac est un quasi standard en tant que gestion de projet communautaire. Il s'intègre facilement avec mercurial ou subversion et permet d'avoir :

  • un wiki
  • une gestion de tâches (bugreport) pour différents projets gérés dans le même subversion/mercurial

Beaucoup de développeurs du monde du logiciel libre le connaissent.

Utiliser IkiWiki

Ikiwiki est un wiki qui a la spécificité de s'appuyer sur un gestionnaire de source de type mercurial ou subversion. L'avantage immédiat est que de facto la documentation et les sources sont gérées dans le même espace, ce qui sur le long terme incite à documenter.

En terme de gestion de tâches, elle s'effectue dans le wiki en assignant des mots-clefs (todo, done, bug, ...) dans des billets textes non normés. Cela devient un inconvénient s'il y a beaucoup de contributeurs.

Pour la collaboration

Outre un gestionnaire de projet de type wiki ou Trac, une mailing liste de dev est nécessaire, potentiellement différente de celle destinées aux "GO" du jeu.

Comme il est important de pouvoir discuter de certaines choses à plusieurs, il est bon de pouvoir en discuter plus rapidement que par la mailing list. IRC (le new-chat) est un excellent outil pour ca, et permet de souder une communauté.

En terme d'infrastructure serveur

Il serait bien d'avoir :

  • un vhost qui permet d'administrer les logiciels de dev (un compte utilisateur simple suffit). Par exemple dev.v-l-m.org
  • un vhost qui peut servir de pré-production pour tester surtout les modifications d'interface (permet des retours d'utilisateurs lambda plus facilement), Par exemple : tests.v-l-m.org

Synthèse

Toutes les combinaisons sont possibles, installables relativement facilement sur n'importe quel serveur Debian.

La plus rapide est d'avoir ce wiki + un subversion. Le plus standard est d'avoir ce wiki+subversion+trac Les autres combinaisons ont elles aussi leurs avantages.

paparazzia : ma préférence va vers mercurial+ikiwiki, mais je suis partisan ;)