Assez simple - nous n'attribuez pas de numéros de version tant que nous n'avons pas libéré. Problème résolu!
Cela peut sembler désinvolte, mais c'est la vérité. Bien sûr, nous aurions des projets internes doublés par exemple. "v5.5", mais ceux-ci étaient distincts et indépendants du travail en cours à l'itération suivante de la version 5.4.x, qui recevrait la prochaine valeur de 'x' seulement à la fin et la libération. Lorsque la version 5.5 est prête, le travail sur 5.4 cesse, nous fusionnons toutes les modifications apportées à 5.4 en 5.5, puis nous lançons 5.5.0.
Si vous avez des versions distinctes pour différents clients (départements dans votre cas), vous pouvez utiliser un schéma de version modifié. Nous avons utilisé [majeur]. [Mineur]. [Client]. [Correctif], par ex. 5.4.client1.4. Le [patch] serait indépendant et significatif uniquement pour ce client particulier, alors que [major]. [Minor] correspondrait à la version [majeure]. [Minor] de la base de code principale dont nous avons parlé. Par exemple, nous pourrions avoir un travail simultané sur 5.5, 5.4.x et 5.4.client1.x. Lorsque 5.5 est prêt, 5.4.x fusionne dans celui-ci, puis les deux projets se replient dans 5.5.x, mais le projet client n'est peut-être pas prêt à fusionner tous ces changements et il restera donc 5.4.client1.x jusqu'à ce qu'il soit mis en place -à-jour avec 5.5, devenant 5.5.client1.x.
Cela peut sembler déroutant, mais cela a très bien fonctionné pour nous. Nous avons précédemment utilisé une variante de ce schéma, où le nom du client était ajouté au numéro de version complet, c'est-à-dire [majeur]. [Mineur]. [Correctif] _ [client]; encore une fois, [majeur]. [mineur] correspond au "noyau" [majeur]. [mineur] d'où il a été fourchu/fusionné en dernier, et le [patch] est complètement indépendant des autres versions et seulement significatif à cette client (c'est pourquoi nous avons échangé plus tard les positions relatives de [client] et [patch], pour préciser que par exemple 5.4.7 pourrait effectivement avoir plus de corrections/être plus "courant" que 5.4.12.client1, et mieux Lorsqu'un projet spécifique à un client est réintégré, bien sûr, vous le déposez et l'incrémentez vers le prochain [patch], ou vous le faites passer à la prochaine version [mineure] ou même [majeure] , en fonction de la nature du travail, ce qui entraîne parfois une confusion temporaire lorsqu'un projet client fusionne avec le projet 5.4.x, puis nous libérons cette version 6.0, puis nous rappelons de renommer le projet 5.5 interne en version 6.1, mais travaillé nonethel ess.
En tant qu'alternative pour votre environnement, reportez-vous en interne à vos projets en cours simplement par nom de client (département), par ex. le projet Comptabilité, le projet RH, etc. N'utilisez pas les numéros de version en interne pour ce genre de chose, car comme vous le voyez, cela crée une confusion comme la version 5.4.6 qui sort après 5.4.7 mais avant 5.4.9; Quant à 5.4.8, il n'est jamais libéré parce qu'il a été annulé. C'est juste un gâchis, alors restez loin de ça.Appelez simplement vos projets par nom de client, et attribuez le numéro suivant
Wow, que vous pour la réponse en profondeur! C'était très utile. Après quelques discussions, nous allons utiliser une version légèrement modifiée de ces recommandations qui fonctionnent avec notre flux de travail interne, en utilisant le numéro de projet au lieu du nom du client (notre numéro de projet nous permet de retracer notre système). Convention différente mais même concept. J'espère que d'autres sont capables d'apprendre de cela aussi .. il n'y a pas beaucoup sur ce sujet de ce que je pourrais trouver en ligne. – jkriddle