Процесс релиза
Space Station 14 использует модель непрерывных релизов (rolling release) для обновления серверов. Обновления выкатываются раз в месяц в ветку “stable”, тогда как разработка ведётся в ветке “master”. Для срочных исправлений багов хотфиксы выпускаются каждую ночь из релизной ветки “stable” или немедленно, если исправление критично. Содержимое ветки разработки “master” не считается окончательно утверждённым и может быть удалено или придержано до следующего обновления.
Что это значит для вас? Если вы разработчик форка, это значит, что теперь у вас есть выбор: брать изменения из более стабильной релизной ветки или из последней ветки разработки, чтобы получать новейшие изменения, даже если они могут измениться или быть откачены. Если вы участник или мейнтейнер апстрима, это значит, что ваши изменения не будут немедленно выпущены на живые серверы (если только они не являются исправлением бага). Если вы игрок, это значит, что обновления будут крупнее, но реже и с большим количеством контента, тогда как ежедневные обновления будут ограничены исправлениями багов.
Как это работает?
Выкатка обновлений
Обновления выкатываются раз в месяц в течение выходных (обычно в четвёртую субботу месяца). За 2 дня до дня обновления из “master” создаётся ветка “staging”, и мейнтейнеры проводят проверку предстоящих изменений. В течение этого периода в ветке staging могут вноситься изменения или откатываться PR. День релиза также совпадает с днём регулярной встречи мейнтейнеров, половина которой будет посвящена просмотру изменений, подготовленных к релизу. Результат этой встречи определяет, будет ли обновление выкачено как есть, получит изменения или будет отложено. Следующие 2 дня после выкатки обновления позволяют выкатывать исправления баланса/мелких геймплейных проблем в рамках обычной процедуры хотфиксов.
Процедура проверки/PR
Все PR должны проверяться в соответствии с процедурой проверки PR и могут быть приняты в ветку разработки “master” в любой момент. PR, исправляющие баги в коде или критические геймплейные проблемы, могут быть приняты напрямую в ветку “stable”, но в этом случае должны дополнительно следовать процедуре хотфикса.
Что подлежит хотфиксу?
Любая проблема, которая напрямую и в значительной степени негативно влияет на способность игрока играть в игру и может большинством считаться «багом», может быть принята как хотфикс. Критические геймплейные проблемы также могут попадать в эту категорию. Под «критической» понимается проблема, серьёзно нарушающая работу игроков или админов. За исключением чрезвычайных ситуаций, все хотфиксы требуют одобрения 3 мейнтейнеров для принятия (в идеале они также должны проверить, но дать одобрение достаточно). Исправления багов могут применяться к master в соответствии с обычными требованиями к проверке.
Ветвление
В этом процессе используются три ветки:
Master: Это основная ветка разработки, в которую обычно принимаются PR. Содержимое ветки разработки не является окончательным и может быть откачено или изменено, прежде чем попадёт в релиз. Эту ветку обычно не следует использовать для хостинга сервера или в качестве апстрима, поскольку она не гарантированно стабильна и может содержать откаты.
Stable: Это «релизная» ветка, на которой работают серверы wizden. Содержимое этой ветки обычно следует считать «окончательно утверждённым», и оно не будет откачено, кроме исключительных обстоятельств. Именно эту ветку следует использовать в качестве апстрима или при хостинге сервера. Только PR с исправлениями багов принимаются напрямую в эту ветку; PR с контентом принимаются в “master”, после чего вся ветка выкатывается в “staging” и затем принимается в “stable”.
Staging: Это особая ветка, используемая в основном только для подготовки обновлений. В период обновления (за 2 дня до релиза) эта ветка ответвляется от “master” для проверки принятых PR в рамках подготовки к релизу. Любые изменения/откаты, необходимые для релиза, будут внесены в ветку “staging”, которая в день обновления будет принята в ветки “stable” и “master”. Когда обновление не готовится, ветка staging не используется.