Ce que je pense des numéros de build, c’est que chaque fois qu’un nouveau build est créé chaque nuit, un nouveau BUILDNUMBER est généré et attribué à ce build. Donc, pour mon application de version 7.0, les versions nocturnes seront 7.0.1, 7.0.2 et ainsi de suite. Est-ce vrai? Alors à quoi sert une révision après le numéro de build? Ou la partie REVISION est-elle incrémentée après chaque construction nocturne? Je suis un peu confus ici ... parlons-nous de chaque bâtiment nocturne comme étant un bâtiment ?
Le format est mentionné ici: AssemblyVersion - MSDN
builds
versioning
A9S6
la source
la source
Réponses:
Je ne l'ai jamais vu écrit sous cette forme. Là où je travaille, nous utilisons le formulaire MAJOR.MINOR.REVISION.BUILDNUMBER, où MAJOR est une version majeure (généralement de nombreuses nouvelles fonctionnalités ou modifications apportées à l'interface utilisateur ou au système d'exploitation sous-jacent), MINOR étant une version mineure (peut-être quelques nouvelles fonctionnalités) sur une version majeure précédente, REVISION est généralement un correctif pour une version mineure précédente (aucune nouvelle fonctionnalité) et BUILDNUMBER est incrémenté pour chaque version la plus récente d’une révision.
Par exemple, une révision peut être transmise à QA (contrôle de la qualité), qui revient avec un problème nécessitant une modification. Le bogue serait corrigé et publié de nouveau dans QA avec le même numéro REVISION, mais un BUILDNUMBER incrémenté.
la source
Toute la confusion provient des différentes sémantiques que MS utilise pour "Numéro de construction" et en particulier "Révision". Les termes signifient simplement différentes choses.
La plupart des gens (moi-même inclus) utilisent un schéma de numérotation de version sémantique dans lequel vous obtenez simplement un numéro BUILD plus élevé chaque fois que vous devez créer une nouvelle version pour une raison quelconque. Pour nous, un correctif est considéré comme un simple changement de code et la partie BUILD augmente automatiquement à chaque exécution de CI. Les modules ayant le même MAJ.MIN.REV sont considérés comme interchangeables et le BUILD vous indique lequel est le plus récent.
Incrémenter REVISION, cependant, indique une nouvelle branche de publication permanente, c'est pourquoi nous la plaçons avant BUILD. L'inconvénient de cette approche est que nous pourrions obtenir la séquence d'événements suivante:
Comme vous pouvez le constater, le correctif logiciel n'est pas le seul changement contenu dans la prochaine version, la modification de Bob en fait également partie. Si vous souhaitez stabiliser la branche actuelle, vous risquez de rencontrer des problèmes, car vous ne pouvez jamais savoir avec certitude si Bob a simplement ajouté un tas de bugs.
MS utilise les deux termes différemment. Le numéro BUILD n’est pas automatiquement incrémenté; on peut plutôt le considérer comme une sorte de branche de publication, afin de geler le code utilisé pour une version particulière du code. La REVISION indique des modifications "à chaud" supplémentaires appliquées à cette branche BUILD. La séquence serait donc la suivante:
1.2.100
1.2.100
brancheLe terme REVISION peut désigner
La principale différence entre les deux processus réside dans le fait que vous souhaitiez ou non pouvoir appliquer des correctifs aux générations de CI et par conséquent à quel moment du processus la branche est créée. Cet aspect devient important lorsque vous souhaitez pouvoir sélectionner une version particulière à tout moment une fois tous les tests réussis et promouvoir exactement cette version dans la prochaine version officielle de votre produit.
Dans notre cas, l’outil CI crée une balise de référentiel, nous avons donc toujours les informations nécessaires prêtes à être utilisées, le cas échéant. Avec SVN, cela devient encore plus simple, car les balises et les branches sont mises en œuvre exactement de la même manière - une balise n’est autre chose qu’une branche située sous
/tags
.Voir également
Dans la section FAQ de la stratégie de création de branche TFS :
Une autre bonne lecture est le guide de branchement TFS
la source
Microsoft décrit l'objectif de chaque composant d'un numéro de version .NET dans sa documentation MSDN pour la
Version
classe. Voici la partie pertinente:http://msdn.microsoft.com/en-us/library/system.version.aspx
la source
Build
commerecompilation of the same source
semble être un point important qui est manqué. S'il s'agit d'un changement de code (qui ne nécessite pas une nouvelle augmentation majeure / mineure), ilRevision
doit également être modifié.Il y a au moins deux choses différentes que je pourrais imaginer dans le référencement du numéro de build:
Version du contrôle source qui a été publiée. Par exemple, s'il y a eu une version de révision n ° 12345, le numéro de build peut être utilisé. Si les correctifs sont corrigés, les révisions peuvent augmenter car il ne s'agit pas d'une nouvelle fonctionnalité qui augmenterait les versions majeures ou mineures. et le numéro de build doit être gardé en mémoire au cas où quelqu'un voudrait l'exécuter à nouveau.
Identifiant de serveur d'intégration continue. Dans ce cas, le serveur CI peut numéroter chaque construction qu'il exécute. Le numéro de construction correspond donc à celui d'une construction réussie et la partie révision n'est pas nécessaire dans ce scénario.
Il y en a peut-être d'autres que je ne connais pas, mais ce sont les grands que je connais quand il s'agit de chiffres sur des bases de codes.
la source
Un numéro de build est généralement incrémenté à chaque build, il est donc unique.
Par souci de simplicité, certains réinitialisent le numéro de build chaque fois que les numéros MAJOR ou MINOR sont modifiés.
La plupart des moteurs d'intégration continue permettent des numéros de build uniques générés automatiquement.
la source
La révision peut être utilisée pour les patchs des builds. Disons que 2 équipes travaillent sur un produit.
L'équipe 1 est la principale équipe de développement et produit chaque génération avec la version 1.0.X.0 suivante, où X est incrémenté. Ils sont maintenant à la version 1.0.50.0. L’équipe 2 prend une version de temps en temps. Supposons qu'ils prennent la version 1.0.43.0 de la semaine dernière et commencent à l'utiliser. L'équipe 1 avance à 1.0.51.0 lorsque l'équipe 2 trouve un problème dans 1.0.43.0.
Maintenant, l’équipe 1 prendra cette version (43), corrigera le problème et fournira à l’équipe 2 la version 1.0.43.1. Le correctif peut également être propagé dans la construction principale. Le changement apparaîtra donc dans 1.0.52.0.
J'espère que cela est clair et utile.
* La révision est utile lorsque toutes les personnes impliquées dans le projet n'utilisent pas la même version et que vous devez corriger des versions spécifiques.
la source
Laissez-moi juste dire comment je vois et utilise ...
Version ProgramName major.minor.build.revision
major: Pour moi, c'est le projet actuel sur lequel je travaille. Le numéro ne changera pas tant que je n'aurai pas démarré un nouveau projet portant le même nom de programme. Cela signifie que je vais littéralement écrire un nouveau programme du même genre (exemple: access v1 - access v-2 - access v-3 * tous les mêmes programmes mais complètement réécrits).
mineur: Cela signifie que j'ajoute des fonctionnalités au projet publié actuel. Par exemple, j'ai peut-être ajouté la possibilité d'imprimer un reçu ou d'importer des images. Essentiellement, des fonctionnalités supplémentaires que je veux ajouter maintenant sans attendre la prochaine version majeure.
build: Ceci je l’utilise pour indiquer de très petits changements dans la version major.minor publiée. Cela pourrait être un changement dans la mise en page, la palette de couleurs, etc.
revision: Ceci je l’utilise pour indiquer un correctif dans le major.minor.build actuellement publié - Il arrive que je ne progresse pas dans le projet en cours et qu’un bogue se produise. Ce bogue doit être corrigé et publié. Cela signifie simplement que je répare ce que j'ai déjà publié pour qu'il fonctionne correctement. J'utiliserais aussi ceci si je travaille sur une nouvelle version, une nouvelle addition ou si je commence une nouvelle version majeure. La version publiée doit évidemment être corrigée en attendant la prochaine version majeure, mineure ou de construction.
Ainsi, de cette manière, un projet terminé ou bloqué peut toujours être corrigé et rendu utilisable jusqu'à la publication de la prochaine version.
J'espère que cela donne à quelqu'un une meilleure compréhension de la façon dont ce type de gestion des versions fonctionnerait (ou devrait). Pour moi, c’est la seule définition et la seule pratique qui ait un sens réel lorsque vous utilisez ce type de gestion des versions.
la source
Je n'ai jamais vu un numéro de build comme dernier numéro de l'ID de version. Je ne sais pas comment vous pourriez proposer une révision d'un numéro de build. Je suppose que si vous avez modifié certaines des ressources non construites (icônes, script de base de données, etc.), peut-être, mais la plupart des projets sur lesquels j'ai travaillé récemment ont tous ces éléments sous contrôle de version, de sorte que le processus de construction les récupère lorsque faire l'installateur / release. J'aime les numéros de build horodatés, bien que pas tout à fait comme décrit par @David (j'aime major.minor.revision.HHMM). Cependant, là où je travaille, nous utilisons simplement un numéro séquentiel que notre serveur de génération génère.
la source
Comme jkohlhepp, nous utilisons la troisième partie de la version pour afficher le numéro de révision dans SubVersion et la quatrième pour afficher le numéro de version de notre serveur d'intégration continue (Jenkins pour nous). Cela nous donne plusieurs avantages: avoir le numéro de version défini par notre serveur CI supprime une étape manuelle qui pourrait sinon être manquée par inadvertance; il est facile de vérifier qu'un développeur n'a pas publié de version effrontée à partir de son PC de développement (ce qui ferait que ces chiffres seraient nuls); et cela nous permet de relier n'importe quel logiciel au code à partir duquel il a été généré et au travail de CI qui l'a construit, il suffit de regarder le numéro de version - ce qui nous paraît parfois très utile.
la source
C'est ce que vous voulez que ce soit. J'ai tendance à utiliser year.month.day.hhmm pour mon major.minor.build.revision. Si je produis plus d'une minute, quelque chose ne va pas. vous pouvez simplement utiliser un simple incrément, ou j'ai vu quelques générateurs élaborés pour eux. Que voulez- vous que ce soit. Ce qu’ils doivent faire, c’est faire en sorte que vous obteniez la source utilisée pour créer cette sortie, donc tout ce qui vous permet de le faire.
la source
Les deux derniers chiffres représentent le nombre total de build
1.01.2.1234
le numéro de version est 2.1234 mais la plupart des gens n'utiliseront que 1234 car la partie 2 ne change pas souvent.
la source
Notre équipe utilise le troisième numéro (révision) comme numéro de révision du référentiel Subversion. Nous utilisons le quatrième numéro (build) comme numéro de build de notre serveur d’intégration continue TeamCity qui crée effectivement la build. TeamCity crée un nouveau fichier AssemblyInfo contenant les bons numéros lors du processus de construction.
la source