Спецификации SemVer гласят, что при внесении несовместимых изменений API необходимо увеличить
- MAJOR,
- MINOR версию при добавлениифункциональность в обратно-совместимой манере и
- версия PATCH при выполнении обратно-совместимых исправлений ошибок.
Что является обратной совместимостью в случае команд-линейный интерфейс?
Упрощенный пример:
Существует инструмент командной строки, который анализирует числа в текстовом файле.Он вернет минимальное и максимальное значения.
Версия 1.0.0 работает следующим образом:
$ analyzertool numbers.txt
min: 12
max: 20
Теперь я добавлю полезную функцию.Теперь инструмент также выведет среднее значение:
$ analyzertool numbers.txt
min: 12
max: 20
avg: 17
Это ГЛАВНОЕ или МЕНЬШЕЕ изменение?Вывод явно изменился, но строки с min
и max
все еще присутствуют, поэтому кто-то, делающий
$ analyzertool numbers.txt | grep min
min: 12
, все равно увидит тот же вывод.
Яищу существующие соглашения или соответствующие примеры.