31 mai 2006

Plateformes d'intégration

La toute première chose technique à faire dans un processus de développement, c'est de monter la ou les plateformes d'intégration.

En l'occurrence pour les Fûts il s'agira de :
  • répertoires /sandbox/ chez Free. Cela pour les qualifs fonctionnelles et les recettes.
    Environnement : Linux, Apache, PHP 4, MySQL 5.
  • déploiements en local sur une machine dédiée, pour l'intégration continue. C'est la "build machine".
    Environnement : Mac G4, MacOS X 10.4.5, Apple JDK 1.4.2, Ant 1.6.5, CruiseControl 2.5, Apache 2, PHP 4, MySQL 3.
  • déploiements en local sur les machines de développement pour les tests ponctuels.
    Environnement Mac : Mac G4, MacOS X 10.4.5, Apple JDK 1.4.2, Ant 1.6.5, Apache 2, PHP 4, MySQL 3.
    Environnement PC : Intel, Windows XP, Sun JDK 1.4.2, Ant 1.6.5, CruiseControl 2.5, Apache 1, PHP 4, MySQL 3.
La gestion de conf se fait avec Subversion (SVN), sous NetBSD.

Je suis en train de monter les configurations CruiseControl du PC et de la build machine.

C'est un peu délicat puisque jusqu'ici les déploiements se faisaient soit vers le net, soit vers une unique machine de développement. Il faut donc maintenant rajouter une variable d'environnement qui permettra d'identifier chaque cible de déploiement, s'assurer que les schémas de bases de données sont synchros sur les différentes machines, etc.

C'est très agréable de voir apparaître les résultats de validation du HTML sous forme de testsuites à la JUnit, compréhensibles par CruiseControl.

30 mai 2006

Plateforme informatique d'échanges

On approche du mois de disponibilité où je vais pouvoir me consacrer entièrement au développement des Fûts.

Pour formaliser un peu les choses, pour tracer les différentes idées échangées par les architectes et afficher un suivi, on a besoin d'outils.

La semaine dernière un projet dans Bootcamp, aujourd'hui un blog sur Blogger.

Accessoirement, l'usage de ces outils devrait donner des idées pour les fonctionnalités du site des Fûts lui-même. Fonctionnalités qui peuvent d'ailleurs en termes d'implémentation s'appuyer directement sur les APIs publiques de ce genre d'applications.