diff options
Diffstat (limited to 'landau-linux/maintenance.md')
| -rw-r--r-- | landau-linux/maintenance.md | 190 |
1 files changed, 146 insertions, 44 deletions
diff --git a/landau-linux/maintenance.md b/landau-linux/maintenance.md index e6099eb..8fbd406 100644 --- a/landau-linux/maintenance.md +++ b/landau-linux/maintenance.md @@ -207,60 +207,155 @@ flowchart TB ### 📊 Полный цикл релиза ```mermaid -flowchart TD - A[📦 Выход нового релиза ядра Linux] --> B[🔓 Открытие RMW LANDAU Linux<br>2 недели] - B --> C[🏷️ Создание тега v7.0.l-rc1] - C --> D[🧪 Фаза RC-тестирования<br>1 неделя на RC] - D --> E{Все тесты пройдены?} - E -->|Нет| F[🔧 Исправление ошибок] - F --> D - E -->|Да| G[✅ Релиз v7.0.l] - G --> H[🔄 Интеграция SUBLEVEL<br>стабильной версии ядра Linux] - H --> I[📈 Повышение версии<br>v7.0.1.l1] +%%{init: { + 'theme': 'base', + 'themeVariables': { + 'background': '#002b36', + 'primaryColor': '#073642', + 'primaryTextColor': '#839496', + 'primaryBorderColor': '#586e75', + 'lineColor': '#b58900', + 'secondaryColor': '#002b36', + 'tertiaryColor': '#073642', + 'edgeLabelBackground': '#002b36', + 'nodeBorder': '#586e75', + 'nodeTextColor': '#93a1a1', + 'fontSize': '20px', + 'fontFamily': 'monospace' + }, + 'flowchart': { + 'nodeSpacing': 80, + 'rankSpacing': 30, + 'curve': 'basis', + 'padding': 10 + } +}}%% +flowchart TB + subgraph Block1["Подготовка релиза (этап RC)"] + direction LR + A["📦 Новый релиз ядра Linux"] --> B + B(["🔓 1. RMW LANDAU Linux<br>(~2 нед.)"]) --> C + C["🔧 Перенос и слияние Bundle-ов"] --> D + D(["🔓 2. RC LANDAU Linux<br>(~1 нед. на RCx)"]) --> E + E["🔧 Исправление ошибок<br>(выпуск RC)"] --> F + F(("•••")) + end +``` + +```mermaid +%%{init: { + 'theme': 'base', + 'themeVariables': { + 'background': '#002b36', + 'primaryColor': '#073642', + 'primaryTextColor': '#839496', + 'primaryBorderColor': '#586e75', + 'lineColor': '#b58900', + 'secondaryColor': '#002b36', + 'tertiaryColor': '#073642', + 'edgeLabelBackground': '#002b36', + 'nodeBorder': '#586e75', + 'nodeTextColor': '#93a1a1', + 'fontSize': '20px', + 'fontFamily': 'monospace' + }, + 'flowchart': { + 'nodeSpacing': 80, + 'rankSpacing': 30, + 'curve': 'basis', + 'padding': 10 + } +}}%% +flowchart TB + subgraph Block2["Релиз LANDAU Linux"] + direction LR + A(("•••")) --> B + B(["✅ 3. Релиз LANDAU Linux"]) --> C + C["🔧 Публикация изменений<br>LANDAU Linux"] --> D + D(["🔓 4. Поддержка LANDAU Linux"]) --> E + E["🔧 Исправление ошибок и<br>синхронизация SUBLEVEL"] --> F + F(["🐢 5. EOL LANDAU Linux"]) + end ``` -### 5.1 🆕 Новый релиз стабильного ядра Linux +### 5.1 🆕 Этап RMW LANDAU Linux | Шаг | Действие | |-----|----------| -| 1 | Создать GIT-ветку `landau-7.0.y` от первого релиза стабильного ядра Linux | -| 2 | Применить LANDAU-специфичные патчи | -| 3 | Оставить оригинальные значения `VERSION`, `PATCHLEVEL`, `SUBLEVEL` | -| 4 | Оставить `EXTRAVERSION` пустым (используется `.lX` формат) | -| 5 | Создать тег `v7.0.l-rc1` | +| 1 | Создать GIT-ветку `landau-next` от первого релиза стабильного ядра Linux | +| 2 | Объявить сбор изменений LANDAU Linux от нижестоящих ментейнеров | +| 3 | Применить изменения LANDAU Linux в `landau-next` | +| 4 | Запросить повторную публикуцию изменений в случае сложных конфликтов | +| 5 | Провести базовое сборочное тестирование результирующей ветки `landau-next` | +| 6 | Обновить `EXTRAVERSION` на `l-rc1` и создать коммит "LANDAU Linux V.P.l-rc1" | +| 7 | Отметить коммит аннотированным тегом `vV.P.l-rc1` | + +> ℹ️ Переменная `EXTRAVERSION` в стабильных релизах ядра Linux остаётся пустым, потому может быть использована для сохранения версий LANDAU Linux. При этом оригинальные значения `VERSION`, `PATCHLEVEL`, `SUBLEVEL` в дальнейшем сохраняются для индикации версии исходного ядра Linux. + +| Параметр | Значение | +|----------|----------| +| ⏱️ Длительность | **~2 недели** | +| 🎯 Фокус | Сбор и базовая проверка работоспособности продуктов | +| 🏷️ Релизы | `l-rc1` | +| 🔧 Исправления | Незначительные проблемы разрешаются в merge-коммитах. Значительные - через повторный запрос изменения от ментейнера | + +### 5.2 🧪 Этап RC LANDAU Linux -### 5.2 🧪 RC-тестирование +| Шаг | Действие | +|-----|----------| +| 1 | Получить корректирующие изменений LANDAU Linux от нижестоящих ментейнеров | +| 2 | Применить корректирующие изменения LANDAU Linux в `landau-next` | +| 3 | Провести базовое сборочное тестирование результирующей ветки `landau-next` | +| 4 | Cоздать коммит "LANDAU Linux V.P.l-rcX" для инкрементированной в `EXTRAVERSION` RC-версии | +| 5 | Отметить коммит аннотированным тегом `vV.P.l-rcX` | +| 6 | Перейти к 1. в случае выявления ошибок | | Параметр | Значение | |----------|----------| -| ⏱️ Длительность | **1 неделя** на каждый RC | -| 🏷️ Кандидаты | `rc1`, `rc2`, `rc3` ... | +| ⏱️ Длительность | **~1 неделя** на каждый RC, но **не более 7-8 недель** | | 🎯 Фокус | Регрессионное тестирование, стабильность, валидация фич | -| 🔧 Исправления | Применяются непосредственно в ветку релиза | +| 🏷️ Релизы | `l-rc1`, `l-rc2`, `l-rc3` ... | +| 🔧 Исправления | Применяются непосредственно в ветку релиза по запросу нижестоящих ментейнеров | -### 5.3 ✅ Финальный релиз +> ℹ️ Стабилизация GIT-ветки `landau-next` (отсуствие выявленных ошибок в очреденом RC-цикле) символизирует окончание этапа RC и выход на релиз. -1. Убедиться, что все критические проблемы решены -2. Создать финальный аннотированный тег `v7.0.l` -3. Опубликовать релиз +### 5.3 ✅ Релиз LANDAU Linux + +| Шаг | Действие | +|-----|----------| +| 1 | Убедиться в отсуствии существенных проблем на последнем этапе RC | +| 2 | Обновить `EXTRAVERSION` на `l` и создать коммит "LANDAU Linux V.P.l" | +| 3 | Отметить коммит аннотированным тегом `vV.P.l` | +| 4 | Создать GIT-ветку `landau-V.P.y` на основе последнего RC-релиза LANDAU Linux | + +| Параметр | Значение | +|----------|----------| +| ⏱️ Длительность | **более 1 недели** в последней фазе RC | +| 🎯 Фокус | Стабилизация собранных измений и опубликование списка изменений | +| 🏷️ Релизы | `l` | +| 🔧 Исправления | Отсуствуют в рамках последней фазы RC | -### 5.4 🔄 Интеграция обновлений SUBLEVEL +### 5.4 🔄 Поддержка стабильной и LTS-версий LANDAU Linux | Шаг | Действие | Пример | |-----|----------|--------| -| 1 | Определить новый `SUBLEVEL` из тега в оригинальном репозитории | `v7.0.1` | -| 2 | Забрать изменения из GIT-ветки репозитория LTS | `git merge v7.0.1` | -| 3 | Повысить LANDAU-версию | `l` → `l1` | -| 4 | Обновить версию | `v7.0.1.l1` | -| 5 | Выпустить релиз | Публикация тега | - ---- +| 1 | Определить последний `SUBLEVEL` в исходной GIT-ветки стабильного ядра Linux | `v7.0.1` | +| 2 | Применить изменения из стабильной GIT-ветки ядра Linux в `landau-V.P.y` | `git merge v7.0.1` | +| 3 | Получить корректирующие изменений LANDAU Linux от нижестоящих ментейнеров | - | +| 4 | Применить корректирующие изменения LANDAU Linux в `landau-V.P.y` при наличии | - | +| 5 | Инкрементировать `EXTRAVERSION` на единицу и создать коммит "LANDAU Linux V.P.Y.lX" | `l` → `l1` | +| 6 | Отметить коммит аннотированным тегом `vV.P.Y.lX` | `v7.0.1.l1` | -## 🐢 6. Политика в отношении LTS +| Параметр | Значение | +|----------|----------| +| ⏱️ Длительность | До получения статуса EOL исходной версии ядра Linux | +| 🎯 Фокус | Исправление серьезных ошибок, выявленных в стабильном релизе LANDAU Linux | +| 🏷️ Релизы | `l1`, `l2`, `l2`, ... | +| 🔧 Исправления | Применяются по запросу нижестоящих ментейнеров в рамках корректирующих релизов | -Мейнтейнеры LANDAU Linux приняли решение **нативно поддерживать LTS-версии** ядра Linux. +Мейнтейнеры LANDAU Linux приняли решение **нативно поддерживать стабильные и LTS-версии** ядра Linux до получения статуса EOL. Однако гарантировано корректирующие изменения LANDAU Linux портируются в LANDAU Linux на основе последней LTS-версии ядра Linux. Портирование изменений в более ранние версии возможно при наличии ресурсов. -### ⚠️ Ограничения LTS-поддержки +⚠️ Особенности интеграции изменений в стабильную и LTS версии LANDAU Linux: | ✅ Разрешено | ❌ Запрещено | |--------------|--------------| @@ -271,18 +366,25 @@ flowchart TD > 📌 **Принцип**: Поддерживается тот Changelog, который был на момент отвода LTS основного ядра. -### 🛑 Окончание поддержки +### 5.5 🔄 Завершение поддержки релиза LANDAU Linux (EOL) -| Тип ядра | Условие окончания поддержки | -|----------|------------------------------| -| Обычное | Исходный релиз достигает EOL | -| LTS | Поддержка продолжается до EOL базовой версии (без добавления новых фич) | +| Шаг | Действие | +|-----|----------| +| 1 | Получение статуса EOL исходной версии стабильного ядра Linux | +| 2 | Объявление о завершении поддержки LANDAU Linux в GIT-ветке `landau-V.P.y` | + +| Параметр | Значение | +|----------|----------| +| ⏱️ Длительность | Минимум несколько корректирующих релизов стабильной версии LANDAU Linux до регистрации EOL | +| 🎯 Фокус | Завершение поддержки релиза | +| 🏷️ Релизы | `lZ` | +| 🔧 Исправления | Не применяются | -Гарантировано LANDAU Linux Owners поддерживают одно последнее LTS ядро. Про остальные LTS ядра думаем при наличии ресурсов. +Поддержка **стабильной и LTS версий** LANDAU Linux завершается либо вместе с получением статуса EOL исходной версии ядра Linux, либо после выпуска релиза LANDAU Linux, основанного на последней LTS-версии ядра Linux. --- -## 👤 7. Обязанности мейнтейнера +## 👤 6. Обязанности мейнтейнера | Область | Ответственность | |---------|------------------| @@ -295,7 +397,7 @@ flowchart TD --- -## 📖 8. Пример полного цикла релиза +## 📖 7. Пример полного цикла релиза ### Исходные данные @@ -395,7 +497,7 @@ TODO --- -## 📚 9. Ссылки и ресурсы +## 📚 8. Ссылки и ресурсы | Ресурс | URL | |--------|-----| |
