Bonjour,
Dans mon entreprise nous avons plusieurs produits. Ces produits utilisent des librairies communes (essentiellement en .Net).
Il existe 2 types de librairies communes:
- interne (dont nous avons les sources)
- externe (librairie payante)
Aujourd'hui chaque produit/projet a son propre répertoire locale de librairies (donc un répertoire lib pour chaque projet dont on fait pointer la référence, ce répertoire est archivé sur svn comme le reste du projet).
Le problème vient du fait que chacun utilise sa propre version de lib commune, qu'il appartient au chef de projet de mettre à jour avec la version courante (ce qu'il ne fait pas forcement...).
1- Ma première idée simple à réaliser: c'est de faire pointer tous les projets sur un répertoire partagé "MyCommonLib\Current" qui sera mis à jour quand la version de la librairie commune sera considérée comme stable.
Comme ça à la compilation de chaque projet on est certain que tous nos produits utilisent la dernière version stable.
Le problème: au moment où l'on doit faire un hotfix (revenir sur une version antérieure au produit), l’état de la révision ne sera pas exactement le même qu'il y a un an (c'est la limite de pointer sur des répertoires partagés, c'était l'avantage de livrer un répertoire lib dans chaque projet...). Ca peut avoir quelque fâcheuse incidence (assez limité genre le projet ne compile pu car une librairie commune a changé)
2- Utiliser un gestionnaire de dépendance, j'avais testé sur java / eclipse, ce genre de bousin, et ça m'avait l'air très laborieux (maven). Et de mémoire ça ne résout pas mon problème de devoir utiliser la dernière lib stable...
3- faire une espèce de script avant build, qui va mettre le répertoire Lib à jour. Comme ça dans le gestionnaire de Source on a la lib commune réellement utilisée à l’époque !...
Si vous avez un feetback, je suis preneur !
Partager