diff options
| author | Serge Semin <fancer.lancer@gmail.com> | 2026-07-06 22:35:06 +0300 |
|---|---|---|
| committer | Dmitry Rokosov <ddrokosov@salutedevices.com> | 2026-07-08 13:40:48 +0300 |
| commit | 1c3b51a583246961423188f04c1d76453cf5aaf9 (patch) | |
| tree | a98dced020f78c00ea209e815b16ce10a9753563 | |
| parent | d43b5aaff6ebe1e94d68f99a0f45f9f12289a9c4 (diff) | |
| download | landau.one-1c3b51a583246961423188f04c1d76453cf5aaf9.tar.gz landau.one-1c3b51a583246961423188f04c1d76453cf5aaf9.zip | |
landau-linux: maintenance: Refactor and enhance release process chapter
The chapter "5. LANDAU-Linux release process" is a bit lame. First of all
it constantly refers to a fixed release version v7.0.y meanwhile the
document implies an approach irrelevant to the version number. Secondly
the stages are differently described in the sub-paragraphs. Meanwhile it
can be done in the more structured way, like list of the steps, key stage
parameters and key notes. Thirdly the stages lack the details regarding
the commit creation and it' format. Finally the LTS version support is no
different from the stable release. So the current chapter 6. can be easily
merged into the paragraph 5.4.
Well ideally this should have been done in a set of the incremental
commits. But this would have taken too much effort seeing the changes are
interdependent. So let's introduce it in a refactor-like commit. This
doesn't change the gist of the release process, but extends the
description with the missing details and makes the text looking more
structured by the paragraphs style unification.
Signed-off-by: Serge Semin <svsemin@unistemlab.com>
| -rw-r--r-- | landau-linux/maintenance.md | 130 |
1 files changed, 87 insertions, 43 deletions
diff --git a/landau-linux/maintenance.md b/landau-linux/maintenance.md index 2ed32bd..838a74b 100644 --- a/landau-linux/maintenance.md +++ b/landau-linux/maintenance.md @@ -139,59 +139,96 @@ flowchart LR ```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] + A["📦 Выход нового релиза ядра Linux"] --> B + B(["🔓 1. RMW LANDAU-Linux<br>(~2 недели)"]) --> C + C["🔧 Перенос и слияние наработок LANDAU-Linux"] --> D + D(["🔓 2. RC LANDAU-Linux<br>(~1 недели на RCx)"]) --> E + E["🔧 Исправление ошибок<br>(выпуск RC)"] --> F + F(["✅ 3. Релиз LANDAU-Linux"]) --> G + G["🔧 Публикация списка<br>изменений LANDAU-Linux"] --> H + H(["🔓 4. Поддержка LANDAU-Linux"]) --> I + I["🔧 Исправление ошибок и<br>синхронизация SUBLEVEL"] --> J + J(["🐢 5. EOL LANDAU-Linux"]) ``` -### 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` | -### 5.2 🧪 RC-тестирование +> ℹ️ Переменная `EXTRAVERSION` в стабильных релизах ядра Linux остаётся пустым, потому может быть использована для сохранения версий LANDAU-Linux. При этом оригинальные значения `VERSION`, `PATCHLEVEL`, `SUBLEVEL` в дальнейшем сохраняются для индикации версии исходного ядра Linux. | Параметр | Значение | |----------|----------| -| ⏱️ Длительность | **1 неделя** на каждый RC | -| 🏷️ Кандидаты | `rc1`, `rc2`, `rc3` ... | +| ⏱️ Длительность | **~2 недели** | +| 🎯 Фокус | Сбор и базовая проверки работоспособности продуктв | +| 🏷️ Релизы | `l-rc1` | +| 🔧 Исправления | Незначительные проблемы разрешаются в merge-коммитах. Значительные - через повторный запрос изменения от ментейнера | + +### 5.2 🧪 Этап RC LANDAU-Linux + +| Шаг | Действие | +|-----|----------| +| 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, но **не более 7-8 недель** | | 🎯 Фокус | Регрессионное тестирование, стабильность, валидация фич | -| 🔧 Исправления | Применяются непосредственно в ветку релиза | +| 🏷️ Релизы | `l-rc1`, `l-rc2`, `l-rc3` ... | +| 🔧 Исправления | Применяются непосредственно в ветку релиза по запросу нижестоящих ментейнеров | + +> ℹ️ Стабилизация GIT-ветки `landau-next` (отсуствие выявленных ошибок в очреденом RC-цикле) символизирует окончание этапа RC и выход на релиз. + +### 5.3 ✅ Релиз LANDAU-Linux -### 5.3 ✅ Финальный релиз +| Шаг | Действие | +|-----|----------| +| 1 | Убедиться в отсуствии существенных проблем на последнем этапе RC | +| 2 | Обновить `EXTRAVERSION` на `l` и создать коммит "LANDAU-Linux V.P.l" | +| 3 | Отметить коммит аннотированным тегом `vV.P.l` | +| 4 | Создать GIT-ветку `landau-V.P.y` на основе последнего RC-релиза LANDAU-Linux | -1. Убедиться, что все критические проблемы решены -2. Создать финальный аннотированный тег `v7.0.l` -3. Опубликовать релиз +| Параметр | Значение | +|----------|----------| +| ⏱️ Длительность | **более 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: | ✅ Разрешено | ❌ Запрещено | |--------------|--------------| @@ -202,18 +239,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. Обязанности мейнтейнера | Область | Ответственность | |---------|------------------| @@ -226,7 +270,7 @@ flowchart TD --- -## 📖 8. Пример полного цикла релиза +## 📖 7. Пример полного цикла релиза ### Исходные данные @@ -326,7 +370,7 @@ TODO --- -## 📚 9. Ссылки и ресурсы +## 📚 8. Ссылки и ресурсы | Ресурс | URL | |--------|-----| |
