Что такое сементическое управление версиями (также известное как semver)?
Вы когда-нибудь сталкивались с номером версии 4.3.2 ? Да, это семантическая версия.
Что это такое?
Что ж, это подход/метод, позволяющий различать предыдущую версию и новую версию любого программного обеспечения.
Версия номер 4.3.2 может быть разделена на Major(4).Minor(3).Patch(2), увеличивая
- Основные - изменения в основных функциях, таких как API.
- Незначительные изменения в функциональности
И - Патч - некоторые исправления ошибок.
Вот живой пример
v0.0.0 // New project v0.1.0 // Add some functionality v0.2.0 // Add other new functionality v0.2.1 // Fix bug v0.3.0 // Add some functionality v0.3.1 // Fix bug v0.3.2 // Fix bug v0.3.3 // Fix bug v0.3.4 // Fix bug v0.4.0 // Add some functionality v0.4.1 // Fix bug v0.4.2 // Fix bug v1.0.0 // Code is being used in production v1.1.0 // Add some functionality v1.2.0 // Add other new functionality v1.2.1 // Fix bug v2.0.0 // Implement changes that causes
Семантическое управление версиями в основном полезно при разработке API, когда вам нужно добавить критические изменения в примечания к выпуску.
Когда вы добавляете новую версию API и у вас есть критические изменения, и вам нужно разработать примечания к выпуску, вы можете подготовить исправление ошибки версии 4.8.9, которое удалит это критическое изменение, и это решит ваши проблемы, вы даже можете подготовить примечания к выпуску на основе нумерация версий.
Я узнал о семантическом управлении версиями, когда работал над своим предложением gsoc в сообществе kubernetes. У них уже давно есть семантическое управление версиями, но они хотят автоматизировать процесс автоматического добавления семантического управления версиями при добавлении новой функции и на основе этого. они могут генерировать примечания к выпуску. Подход заключался в том, чтобы вручную добавлять номер версии и обновлять ReadMe.md каждый раз, когда они добавляют/исправляют какую-либо функцию или ошибку.
Так что когда в следующий раз будете разрабатывать что-то полезное, не забудьте добавить semver в свой проект 😉.