Nous essayons de décider d'une bonne façon de numéroter les versions des composants logiciels, qui dépendent les uns des autres.
Soyons plus précis:
Le composant logiciel A est un micrologiciel exécuté sur un périphérique intégré et le composant B est son pilote respectif pour un PC normal (machine Linux / Windows). Ils communiquent entre eux à l'aide d'un protocole personnalisé. Étant donné que notre produit est également destiné aux développeurs, nous proposerons des versions stables et instables (expérimentales) des deux composants (le micrologiciel est de source fermée, tandis que le pilote est de source ouverte). Notre plus grande difficulté est de savoir comment gérer les changements d'API dans le protocole de communication.
Pendant que nous implémentions une vérification de compatibilité dans le pilote - il vérifie si la version du micrologiciel est compatible avec la version du pilote - nous avons commencé à discuter de plusieurs façons de numéroter les versions.
Nous avons trouvé une solution, mais nous avons également eu envie de réinventer la roue. C'est pourquoi j'aimerais obtenir des commentaires de la communauté des programmeurs / développeurs de logiciels, car nous pensons que c'est un problème courant.
Voici donc notre solution:
Nous prévoyons de suivre la numérotation des versions major.minor.patch largement utilisée et d'utiliser des nombres mineurs pairs / impairs pour les versions stables / instables. Si nous introduisons des modifications dans l'API, nous augmenterons le nombre mineur.
Cette convention conduira à l'exemple de situation suivant:
La branche stable actuelle est 1.2.1 et instable est 1.3.7. Maintenant, un nouveau correctif pour instable modifie l'API, ce qui fera que le nouveau numéro de version instable deviendra 1.5.0. Une fois que la branche instable est considérée comme stable, disons en 1.5.3, nous la publierons en 1.4.0.
Je serais heureux d'une réponse à l'une des questions connexes ci-dessous:
- Pouvez-vous suggérer une meilleure pratique pour gérer les problèmes décrits ci-dessus?
- Pensez-vous que notre convention "personnalisée" est bonne?
- Quels changements appliqueriez-vous à la convention décrite?