Что такое сементическое управление версиями (также известное как 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 в свой проект 😉.