Смена имени переменной неровности СемВер мажорная или минорная?
Допустим, у меня есть функция, которую можно вызывать через API, например $MyFunction
и для краткости $MyFunction
возвращает 12. Теперь допустим, я переименую $MyFunction
в $The12Function
но он по-прежнему возвращает тот же результат (в этом примере целое число 12). Означает ли это, что основной или второстепенный номер версии SemVer может быть изменен?
Можно утверждать, что я не допускаю обратной совместимости, потому что $MyFunction
больше не работает. Однако можно также утверждать, что существует обратная совместимость, поскольку вы все равно можете вернуть тот же результат через $The12Function
,
1 ответ
Учитывая номер версии MAJOR.MINOR.PATCH, увеличьте:
ОСНОВНАЯ версия, когда вы делаете несовместимые изменения API,
Версия MINOR, когда вы добавляете функциональность обратно-совместимым способом, и
Версия PATCH, когда вы делаете обратно совместимые исправления ошибок.
Таким образом, в вашем случае, если вы также не поддерживаете старое имя функции, чтобы сохранить совместимость со старыми версиями API, вы должны увеличить основной номер версии.
Один из способов взглянуть на это, чтобы узнать, нарушена ли совместимость, состоит в том, чтобы представить, что ваш API и функциональные возможности инкапсулированы в библиотеке, которая предлагает эту функциональность другим программам. Теперь вы вносите изменения в этот API. Если программы, связанные со старой версией вашего API, необходимо изменить, чтобы использовать новую версию вашей библиотеки, у вас нарушена совместимость, и необходимо изменить основную версию. Вы можете решить эту проблему, переопределив и поддержав устаревшие вызовы функций, но это увеличит сложность API.