Практическое задание

Эта задача — шаг 1 курса «Выкатываем релиз»

Подними минорную версию релиза

средне~10 мин

День релиза начинается с бампа версии. В /srv/billing/VERSION лежит текущая версия в формате X.Y.Z. Напиши исполняемый скрипт /usr/local/bin/bump-minor, который увеличивает minor (среднее число) на 1, сбрасывает patch в 0 и записывает результат обратно в тот же файл. Например 2.3.7 → 2.4.0, 0.9.12 → 0.10.0.

Что потренируешь:
  • bash
  • semver
  • ifs
  • арифметика
  • бамп версии

Разбор темы

По семантическому версионированию MAJOR.MINOR.PATCH новая функциональность без поломок совместимости поднимает minor, а patch при этом обнуляется: после 2.3.7 идёт 2.4.0, а не 2.4.7. Скрипт бампа разбирает строку на три числа, меняет нужные и собирает обратно. В bash для разбора не нужны внешние утилиты: read с разделителем IFS=. раскладывает строку по переменным, а $(( )) выполняет целочисленную арифметику — так 9 превращается в 10, а не в 91, как при склейке строк. Результат перезаписывает файл (>), иначе версия задвоится.

Что проверяется

  1. скрипт bump-minor исполняемый
  2. 2.3.7 → 2.4.0
  3. 0.9.12 → 0.10.0
  4. 3.0.0 → 3.1.0

Как это выглядит