Bonjour,

Un peu de contexte : je dois écrire des modules (en c#/razor) pour un CMS qui sont destinés à être vendus par ma boîte. Ces modules font références aux dll du CMS pour accéder à ses fonctionnalités et les étendre. Ledit CMS change de version régulièrement, mais nos client mettent peu à jour. Je veux que mes modules supportent la dernière version du CMS, mais aussi qu'il soit possible de mettre à jour les modules chez les clients qui ont des versions inférieures du cms : mises à jours de sécurité, corrections de bug et nouvelles fonctionnalités (dans la mesure du possible évidemment).

La question est : Comment mettre ça en place correctement dans TFS ?
J'ai pensé à plusieurs solutions et voici ce à quoi je pense :
Je développe dans une branche, et je crée une nouvelle branche lorsque le CMS introduit un breaking change (quel est le terme français d'ailleurs ?) qui influe directement sur mon code, ou une nouvelle fonctionnalité que je veux exploiter (ce qui n'arrive pas si souvent). Cette branche devient alors la branche principale. Cela me permet de ne brancher que lorsque c'est nécessaire, tout en gardant sous la main les versions précédentes. Par contre, il est difficile de merger automatiquement du haut vers le bas pour maintenir les versions précédentes (mais je ne vois pas de solution facile à ce problème dans tous les cas).

Qu'en pensez-vous ?

Hors sujet, mais si vous avez des ressources intéressantes sur comment structurer ses projets dans tfs suivant le type de projet (en anglais ou en français), ça m'intéresse bien, j'ai des difficultés à trouver des ressources pertinentes sur le sujet.

Merci