Перейти к содержанию

Управление версиями#

При написании мода лучше придерживаться формата версий в стиле MCVERSION-MAJORMOD.MAJORAPI.MINOR.PATCH, чтобы иметь возможность различать изменения мода, нарушающие мир, и изменения, нарушающие API.

Примеры#

MCVERSION

  • Соответствует версии игры для которой предназначен мод.

MAJORMOD

  • Удаление предметов, блоков, сущностей и т.п.
  • Изменение или удаление существующей механики.
  • Обновление до новой версии майнкрафт.

MAJORAPI

  • Изменение порядка или переменных перечислений.
  • Изменение типов возврата у методов.
  • Удаление общедоступных методов.

MINOR

  • Добавление элементов, блоков, сущностей и т.п.
  • Добавление новых механик.
  • Устаревание общедоступных методов. (Это не относится к MAJORAPI, поскольку оно не нарушает работу API.)

PATCH

  • Исправление ошибок

При увеличении любой переменной все меньшие переменные должны быть сброшены в 0. Например, если MINOR будет увеличиваться, PATCH станет 0. Если MAJORMOD будет увеличиваться, все другие переменные станут 0.

В процессе работы#

Если вы находитесь на начальной стадии разработки своего мода (до каких-либо официальных выпусков), MAJORMOD и MAJORAPI всегда должны быть 0.

Следует обновлять каждый раз только MINOR, когда вы создаете свой мод. После создания официального выпуска нужно увеличить MAJORMOD до версии 1. Следовательно, выглядеть ваша версия станет 1.0.0.0.

Поддержка нескольких версий майнкрафт#

Если мод обновляется до новой версии Minecraft, а старая версия будет получать только исправления ошибок, переменная PATCH должна быть обновлена в зависимости от версии до обновления.

Например, у вас была версия 1.15.2-1.1.1, вы решили обновиться и сделали несколько патчей, текущая версия 1.16.3-1.1.3. Написав патч для версии 1.15.2 мы меняем его локальную переменную патча, в результате у нас 1.15.2-1.1.2, в то время как текущая версия осталась прежней.

Если мод все еще находится в активной разработке как в старой, так и в новой версии Minecraft, рекомендуется добавить версию к обоим номерам сборки.

Например, если мод обновлен до версии 3.0.0.0 из-за изменения версии Minecraft, старый мод также должен быть обновлен до версии 3.0.0.0. Старая версия станет, например, версией 1.15.2-3.0.0.0, а новая версия станет 1.16.3-3.0.0.0. Если при сборке для новой версии Minecraft нет никаких изменений, все переменные, кроме версии Minecraft, должны остаться прежними.

Окончательный релиз#

При прекращении поддержки версии Minecraft последняя сборка для этой версии должна получить суффикс -final. Это означает, что мод больше не будет поддерживаться для обозначенной MCVERSION и что игрокам следует перейти на более новую версию мода, чтобы продолжать получать обновления и исправления ошибок.

Предварительный релиз#

При предварительном выпуске незавершенных функций. Их можно рассматривать как своего рода «бету». К этим версиям следует добавить -betaX, где X - номер предварительного выпуска. Обратите внимание, что уже выпущенные версии и версии до первоначального выпуска не могут быть включены в предварительный выпуск.

Переменные (в основном MINOR, но MAJORAPI и MAJORMOD также могут быть предварительно выпущены) должны быть обновлены соответствующим образом перед добавлением суффикса -beta. Версии до первоначального выпуска - это просто незавершенные сборки.

Релиз кандидаты#

Релиз кандидаты действуют как предварительные версии до фактического изменения версии. К этим версиям следует добавлять -rcX, где X - номер кандидата на выпуск, который теоретически следует увеличивать только для исправлений ошибок. Уже выпущенные версии не могут получать кандидатов на выпуск.

Переменные (в основном MINOR, но MAJORAPI и MAJORMOD также могут быть предварительно выпущены) должны быть обновлены соответствующим образом перед добавлением суффикса -rc. При выпуске релиз-кандидата в качестве стабильной сборки он может быть точно таким же, как последний релиз-кандидат, или содержать еще несколько исправлений ошибок.