Каналы релизов
CLI Tuist поставляется через три канала с разными гарантиями стабильности. Рекомендуемый вариант установки — stable, который обновляется медленно: он не продвигается при каждом слиянии новой возможности, поэтому обновление больше не означает поглощение пакета несвязанных изменений. Ранние пользователи по-прежнему могут запускать сборки для каждого коммита на канале canary, а канал release candidate позволяет командам предварительно тестировать будущую ветку до её перевода в статус стабильной.
Каналы#
| Канал | Формат версии | Частота обновлений | Разрешается по умолчанию? |
|---|---|---|---|
| Canary | X.Y.0-canary.N (например, 4.201.0-canary.42) | Каждый коммит в main | Нет — требуется явное подключение |
| Release candidate | X.Y.0-rc.N (например, 4.200.0-rc.1) | Создаётся из main каждый понедельник, тестируется ~1 неделю | Нет — требуется явное подключение |
| Stable | X.Y.Z (например, 4.200.0, 4.200.1) | Продвигается каждый понедельник после успешного тестирования | Да |
Сборки Canary и Release Candidate публикуются как предварительные релизы. Такие инструменты, как Mise и Homebrew, исключают предварительные релизы при разрешении latest, обычной установке или привязке к ветке, поэтому вы попадёте на них только при явном запросе.
Canary#
Каждый коммит в main публикует сборку canary. Canary всегда представляет собой следующую невыпущенную минорную версию: как только ветка выделяется для релиза, main переходит к следующей минорной версии (например, с 4.200.0-canary.42 на 4.201.0-canary.1). Canary — правильный канал для ранних пользователей, которые хотят получать сигналы как можно раньше или проверить, что исправление, которое вы сообщили или внесли, работает должным образом до попадания в стабильную версию.
Release candidate#
Когда минорная версия готова к выпуску, её ветка замораживается на защищённой ветке releases/<major>.<minor>.x и публикуется как X.Y.0-rc.1. Ветка заморожена по функциональности; в неё включаются только критические исправления и исправления регрессий, причём каждое принятое исправление увеличивает номер RC (-rc.2, -rc.3, …). После успешного завершения периода тестирования ветка переводится в статус стабильной.
Stable#
Stable — рекомендуемый канал, на который ссылается вся документация. Стабильная минорная версия (X.Y.0) публикуется только после успешного тестирования кандидата в релизы и не продвигается при слиянии новых возможностей в main. Патчи (X.Y.1, X.Y.2, …) в стабильной ветке содержат только обратно портированные исправления, но никогда не включают новые возможности.
Выбор версии#
С помощью Mise (рекомендуется):
mise use tuist@latest # Latest stable (recommended)
При использовании Homebrew команда brew install --formula tuist всегда устанавливает последнюю стабильную версию; предварительные релизы не распространяются через эту формулу.
Рекомендуемая стратегия#
- Зафиксируйте стабильную ветку, например
[email protected]. Эта ветка получает только обратно портированные исправления, но не новые возможности, поэтому ежедневные обновления остаются низко рискованными. - Осознанно внедряйте новые возможности. Когда вы будете готовы к следующей минорной версии, протестируйте её на канале release candidate, а затем перенесите фиксацию на новую стабильную ветку.
- Попробуйте canary в некритичной среде, если вы ранний пользователь и хотите получать сигналы как можно раньше.
Поддержка и обратное портирование#
В любой момент активно поддерживаются две стабильные ветки:
| Ветка | Получает |
|---|---|
Текущая (X.Y.x) | Исправления регрессий и уязвимостей безопасности |
Предыдущая (X.(Y-1).x) | Только критические исправления и исправления уязвимостей безопасности |
| Более старые | Нет — обновитесь до поддерживаемой ветки |
Исправления сначала попадают в main (canary). Исправления регрессий и уязвимостей безопасности обратно портируются в текущую стабильную ветку, а предыдущая ветка получает только критические исправления и исправления уязвимостей безопасности. Другие исправления ошибок не обратно портируются; они выходят со следующей минорной версией. Когда новая ветка переводится в статус стабильной, та, что была текущей, становится «предыдущей», а та, что была «предыдущей», перестает получать обратные порты.
Независимо от канала, сервер Tuist остается совместимым с любой версией CLI, выпущенной за последние 3 месяца, поэтому фиксация на стабильной ветке никогда не выведет вас за пределы окна поддержки, если вы обновляетесь в течение этого периода.