[rulkc] [PATCH v2 05/16] landau-linux: maintenance: major overhaul of the maintenance doc
Dmitry Rokosov
rockosov at rulkc.org
Fri Jul 17 20:17:02 MSK 2026
From: Serge Semin <svsemin at unistemlab.com>
This patch comprehensively revises and restructures the LANDAU-Linux
maintenance documentation.
Key improvements include:
- Project naming: Explicitly uses "LANDAU-Linux" throughout to avoid
ambiguity with other potential LANDAU forks.
- Terminology: Replaces English-isms (maintenance, changelog, upstream)
with appropriate Russian alternatives; adds missing definitions for
MR and EOL to the glossary.
- Versioning: Adds the RC-stage version/tags format (l-rcX and
v7.0.l-rcX) to the release versioning chapter and corrects the
version example.
- Git workflow: Clarifies branch/repo terminology with "GIT-" prefix;
extends the branches description with details about 'landau-next'
and RC-stages; fixes the release lag description.
- Process structure: Completely refactors the release process chapter
into a structured, step-by-step format with unified paragraphs,
merges LTS support into the stable release section, and adds
detailed descriptions of commit creation and format.
- Maintainer responsibilities: Adds a new section covering
sub-repository maintenance, change collection, and the 2MR process,
including a mermaid gitGraph diagram.
No functional changes are made to the actual process-only
documentation clarity, completeness, and structure are improved.
Signed-off-by: Serge Semin <svsemin at unistemlab.com>
---
landau-linux/maintenance.md | 326 ++++++++++++++++++++++++------------
1 file changed, 215 insertions(+), 111 deletions(-)
diff --git a/landau-linux/maintenance.md b/landau-linux/maintenance.md
index 906c625ee06f..2b5a000d3f7c 100644
--- a/landau-linux/maintenance.md
+++ b/landau-linux/maintenance.md
@@ -1,11 +1,11 @@
-title: "📋 Манифест сопровождения LANDAU"
-description: "Официальный процесс maintenance LANDAU Linux — версионирование, ветки, релизы и LTS"
+title: "📋 Манифест сопровождения ядра LANDAU-Linux"
+description: "Описание процесса разработки ядра LANDAU-Linux — ветки, релизы, версионирование и сопровождение"
published: true
---
-# 📋 Манифест процесса сопровождения LANDAU
+# 📋 Манифест процесса сопровождения ядра LANDAU-Linux
-> **LANDAU** — форк ядра Linux с собственной схемой версионирования и предсказуемым циклом релизов.
+> **LANDAU-Linux** — форк <u>ядра Linux</u> с собственной схемой версионирования и предсказуемым циклом релизов.
> Этот документ описывает формальный процесс сопровождения (maintenance) проекта.
---
@@ -14,39 +14,40 @@ published: true
### 🎯 Цель
-Обеспечить стабильный, предсказуемый и документированный процесс выпуска LANDAU-релизов с отслеживанием апстрим-ядра Linux.
+Обеспечить стабильный, предсказуемый и документированный процесс выпуска LANDAU-Linux-релизов с отслеживанием оригинального репозитория ядра Linux.
### Глоссарий
V - VERSION - major версия ядра Linux
P - PATCHLEVEL - middle версия ядра Linux
S - SUBLEVEL - minor версия ядра Linux
-E - EXTRAVERSION - поле в версии ядра Linux, в которое мы встраиваем версию LANDAU (ядром Linux обычно используется для -rc релизов (testing фазы))
-RMW - Rebase & Merge Window - временной отрезок, в рамках которого мейнтейнеры LANDAU ребейзят свой changelog на новую базовую версию ядра.
-Bundle - в общем случае это changelog LANDAU Linux, который отличается от upstream (группа патч серий). Есть общий LANDAU Bundle, а есть Bundle-ы мейнтейнеров в их форках.
+E - EXTRAVERSION - поле в версии ядра Linux, в которое встраивается версия ядра LANDAU-Linux (ядром Linux обычно используется для -rc релизов (testing фазы))
+MR - Merge Request - запрос на слияние одной GIT-ветки с другой. Обычно оформляется в виде ссылки на GIT-репозиторий и ветку авторизованного ментейнера (верифицированного источника) в сопровождение с формальным описанием содержимого. Информация из последнего может быть использована для формирования текста merge-коммита в GIT.
+RMW - Rebase & Merge Window - временной отрезок, в рамках которого мейнтейнеры LANDAU переносят подопечный им набор изменений на новую базовую версию ядра.
+Bundle - в общем случае это полный набор изменений репозитория LANDAU-Linux, который отличает его от оригинального репозитория ядра Linux (фактически это набор патч-серий). Есть общий LANDAU-Linux Bundle, а есть Bundle-ы мейнтейнеров в их форках.
+EOL - End-of-Life - завершение этапа поддержки выпущенной версии продукта (релиза).
-### 📁 Структура репозитория
+### 📁 Структура GIT-репозитория форка
| Сущность | Назначение |
|----------|-------------|
-| `landau-next` | Ветка для следующего релиза LANDAU, куда мейтейнеры отсылают свои MR |
-| `landau-V.P.y` | Текущая ветка для релиза LANDAU на базе ядра с версией V.P |
+| `landau-next` | GIT-ветка для следующего релиза LANDAU-Linux, куда мейтейнеры отсылают свои MR |
+| `landau-V.P.y` | GIT-ветка релиза LANDAU-Linux на базе ядра Linux с версией V.P |
-`landau-next` - это ветка для работы всех мейтейнеров вместе. В ней разрешаются конфликты и собираются все MR вместе для создания ветки `landau-V.P.y`.
-`landau-next` - это force-push ветка, которая меняется при каждом старте нового RMW
+> `landau-next` - GIT-ветка для работы всех мейтейнеров вместе. В ней разрешаются конфликты и собираются все MR вместе для создания ветки `landau-V.P.y`. При старте нового RMW её HEAD насильно переносится (_force-push_) на новый релиз ядра Linux.
-### 🪞 Апстрим-зеркала
+### 🪞 Зеркала оригинальных репозиториев Linux
На сервере `https://git.rulkc.org` поддерживаются постоянно обновляемые зеркала:
-- 🔷 `torvalds/linux` — основная ветка ядра
-- 🔷 `stable/linux` — стабильные релизы
+- 🔷 `torvalds/linux` — основная ветка ядра Linux
+- 🔷 `stable/linux` — стабильные релизы ядра Linux
- 🔷 `linux-next` — интеграционное дерево linux-next
---
## 🏷️ 2. Схема версионирования
-### 📐 Формат версии LANDAU
+### 📐 Формат версии LANDAU-Linux
```
VERSION.PATCHLEVEL.SUBLEVEL.lXYZ
@@ -55,9 +56,10 @@ VERSION.PATCHLEVEL.SUBLEVEL.lXYZ
| Компонент | Пример | Описание |
|-----------|--------|----------|
| `VERSION` | `7` | Мажорная версия ядра |
-| `PATCHLEVEL` | `0` | Минорная версия |
-| `SUBLEVEL` | `12` | Номер стабильного обновления апстрима |
-| `lXYZ` | `l0`, `l1` | Сборочный номер LANDAU |
+| `PATCHLEVEL` | `0` | Минорная версия ядра |
+| `SUBLEVEL` | `12` | Номер стабильного обновления ядра |
+| `l-rcX` | `l-rc1`, `l-rc2` | Сборочный номер отладочного релиза LANDAU-Linux |
+| `lXYZ` | `l0`, `l1` | Сборочный номер стабильного релиза LANDAU-Linux |
### 🏷️ Git-теги
@@ -65,44 +67,60 @@ VERSION.PATCHLEVEL.SUBLEVEL.lXYZ
Используются **аннотированные теги** в формате:
```
+v7.0.l-rcX
v7.0.lXYZ
```
-Пример: `v7.0.l0`, `v7.0.l5`
+Пример: `v7.0.l-rc1`, `v7.0.l0`, `v7.0.l5`
---
-## 🌿 3. Веточная стратегия
+## 🌿 3. Cтратегия организации GIT-веток
-### 📌 Основные ветки
+### 📌 Основные GIT-ветки
| Ветка | Назначение |
|-------|-------------|
-| `landau-next` | Ветка для следующего релиза LANDAU, куда мейтейнеры отсылают свои MR |
-| `landau-V.P.y` | Текущая ветка для релиза LANDAU на базе ядра с версией V.P |
+| `landau-next` | GIT-ветка следующего релиза LANDAU-Linux, куда мейтейнеры отсылают свои MR |
+| `landau-V.P.y` | Текущая GIT-ветка для релиза LANDAU-Linux на базе <u>стабильного</u> ядра Linux с версией V.P |
-### ⏳ Жизненный цикл ветки
+### ⏳ Жизненный цикл GIT-веток
```mermaid
-graph LR
- A[Создание ветки<br>landau-7.0.y] --> B[Активная разработка<br>и выпуск релизов]
- B --> C{Тип поддержки?}
- C -->|Обычное ядро| D[EOL апстрима →<br>ветка архивируется]
- C -->|LTS ядро| E[Поддержка до EOL апстрима<br>только исправления]
+flowchart LR
+ subgraph one["Релиз LANDAU-Linux"]
+ E[<b>landau-V.P.y→<br>landau-next</b>]-->F
+ F[Поддержка<br><b>landau-V.P.y</b>]-->G{Статус <b>linux-V.P.y<b><br><b>EOL</b>?}
+ G-->|Нет|F
+ G-->|Да|H([Архивация<br><b>landau-V.P.y</b>])
+ end
+ subgraph two["Подготовка релиза (этап RC)"]
+ A([<b>landau-next→<br>linux-V.P.y</b>])-->B
+ B[Стабилизация<br><b>landau-next</b>]-->C{Код <b>landau-next</b><br>стабилен?}
+ C-->|Нет|B
+ C-->|Да|D(P = P + 1</b>)
+ C-->|Да|E
+ D-.->|Ожидание<br>релиза P|A
+ end
```
| Стадия | Действие |
|--------|----------|
-| 🆕 Создание | От тега апстрим-релиза |
-| 🔧 Разработка | Ветка `landau-7.0.y` |
-| 🛑 Окончание поддержки | Апстрим достигает EOL |
-| 🐢 LTS | Только исправления (без новых фич) |
+| 🛑 Старт | Принудительное переназначение `landau-next` на базовую версию ядра Linux |
+| 🔧 Разработка | Сбор и стабилизация изменений LANDAU в GIT-ветке `landau-next` |
+| 🆕 Релиз | Создание `landau-V.P.y` на основе стабильной `landau-next` |
+| 🔧 Поддержка | Сбор исправлений ошибок в GIT-ветке `landau-V.P.y` |
+| 🐢 Окончание поддержки | Исходная версия достигает EOL |
+
+> В базовом представлении _поддержка_ подразумевает периодическую синхронизацию `landau-V.P.y` с исходной GIT-веткой `linux-V.P.y`.
---
## 📅 4. График релизов
-### ⏱️ Апстрим-график
+### ⏱️ Цикл релизов ядра Linux
+
+В оригинальном репозитории ядра Linux поддерживается следующий цикл разработки:
| Фаза | ⏰ Длительность | 📝 Описание |
|------|----------------|-------------|
@@ -111,69 +129,106 @@ graph LR
| RC-тестирование | 7-8 недель | Тестирование кандидатов на релиз |
| Финальный релиз | — | Публикация стабильного ядра |
-> ℹ️ **Важно**: Релизы LANDAU отстают от апстрима на **1 patchlevel (SUBLEVEL)**.
+> ℹ️ **Важно**: Поскольку релизы LANDAU-Linux базируются на стабильных релизах ядра Linux, то текущий цикл разработки всегда отстаёт от последней версии ядра Linux на **1 PATCHLEVEL**.
---
-## 🔄 5. Процесс выпуска LANDAU
+## 🔄 5. Процесс выпуска LANDAU-Linux
### 📊 Полный цикл релиза
```mermaid
flowchart TD
- A[📦 Выход нового апстрим-релиза mainline] --> B[🔓 Открытие RMW LANDAU<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>апстрима]
- 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 🆕 Новый релиз mainline
+### 5.1 🆕 Этап RMW LANDAU-Linux
| Шаг | Действие |
|-----|----------|
-| 1 | Создать ветку `landau-7.0.y` от тега апстрим-релиза |
-| 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.
-### 5.2 🧪 RC-тестирование
+| Параметр | Значение |
+|----------|----------|
+| ⏱️ Длительность | **~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 |
-| 🏷️ Кандидаты | `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
-### 5.4 🔄 Интеграция апстрим-обновлений SUBLEVEL
+| Шаг | Действие |
+|-----|----------|
+| 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 🔄 Поддержка стабильной и LTS-версий LANDAU-Linux
| Шаг | Действие | Пример |
|-----|----------|--------|
-| 1 | Определить новый `SUBLEVEL` из апстрим-тега | `v7.0.1` |
-| 2 | Смержить апстрим-изменения | `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 приняли решение **нативно поддерживать LTS-версии** апстрим-ядра.
+Мейнтейнеры LANDAU-Linux приняли решение **нативно поддерживать стабильные и LTS-версии** ядра Linux до получения статуса EOL. Однако гарантировано корректирующие изменения LANDAU-Linux портируются в LANDAU-Linux на основе последней LTS-версии ядра Linux. Портирование изменений в более ранние версии возможно при наличии ресурсов.
-### ⚠️ Ограничения LTS-поддержки
+⚠️ Особенности интеграции изменений в стабильную и LTS версии LANDAU-Linux:
| ✅ Разрешено | ❌ Запрещено |
|--------------|--------------|
@@ -184,35 +239,84 @@ flowchart TD
> 📌 **Принцип**: Поддерживается тот Changelog, который был на момент отвода LTS основного ядра.
-### 🛑 Окончание поддержки
+### 5.5 🔄 Завершение поддержки релиза LANDAU-Linux (EOL)
+
+| Шаг | Действие |
+|-----|----------|
+| 1 | Получение статуса EOL исходной версии стабильного ядра Linux |
+| 2 | Объявление о завершении поддержки LANDAU-Linux в GIT-ветке `landau-V.P.y` |
-| Тип ядра | Условие окончания поддержки |
-|----------|------------------------------|
-| Обычное | Апстрим достигает EOL |
-| LTS | Поддержка продолжается до EOL апстрима (без добавления новых фич) |
+| Параметр | Значение |
+|----------|----------|
+| ⏱️ Длительность | Минимум несколько корректирующих релизов стабильной версии LANDAU-Linux до регистрации EOL |
+| 🎯 Фокус | Завершение поддержки релиза |
+| 🏷️ Релизы | `lZ` |
+| 🔧 Исправления | Не применяются |
-Гарантировано LANDAU Owners поддерживают одно последнее LTS ядро. Про остальные LTS ядра думаем при наличии ресурсов.
+Поддержка **стабильной и LTS версий** LANDAU-Linux завершается либо вместе с получением статуса EOL исходной версии ядра Linux, либо после выпуска релиза LANDAU-Linux, основанного на последней LTS-версии ядра Linux.
---
-## 👤 7. Обязанности мейнтейнера
+## 👤 6. Обязанности мейнтейнера
| Область | Ответственность |
|---------|------------------|
-| 👁️ Мониторинг апстрима | Отслеживание новых релизов и RC-циклов |
-| 📦 Применение патчей | Интеграция LANDAU-специфичных изменений |
+| 👁️ Мониторинг исходного репозитория | Отслеживание новых релизов и RC-циклов |
+| 📦 Применение патчей | Интеграция LANDAU-специфичных изменений ядра |
| 🏷️ Управление тегами | Создание аннотированных тегов в формате `vX.Y.lZ` |
| 🧪 Координация RC | Организация тестирования кандидатов на релиз |
-| 🔒 Безопасность | Мониторинг и применение апстрим-исправлений безопасности |
+| 🔒 Безопасность | Мониторинг и применение исправлений безопасности |
| 📝 Документирование | Ведение changelog для каждого LANDAU-релиза |
+### Личные репозитории ментейнеров
+
+В личных репозиториях ментейнеры хранят и развивают собственные форки ядра Linux с подведомственным им набором изменений. В целом, способ организации персональных репозиториев ментейнеры могут выбирать самостоятельное. Например, можно разделить независимые изменения на GIT-ветки по подсистемам и отправлять MR с каждым из них, либо предварительно объединить их в единую GIT-ветку и отправить один целостный MR. Как бы то ни было, при этом необходимо придерживаться правила **преемственности предыдущих изменений и минимизации merge-конфликтов**. То есть GIT-ветка, отправляемая в MR главному ментейнеру, должна сохранять историю предыдущих изменений LANDAU-Linux и их исправлений, а также содержать последнюю версию оригинальной версии ядра Linux, для которого готовится релиз LANDAU-Linux. Для реализации такого требования удобно использовать подход **двойного слияния**, суть которого в том, чтобы сначала ментейнеры sub-LANDAU-Linux репозиториев выполнили слияние своих GIT-веток с `landau-next`, разрешили все конфликты и лишь потом отправляли MR в рамках этапа RMW:
+
+```mermaid
+---
+config:
+ gitGraph:
+ parallelCommits: true
+ mainBranchName: 'linux-V.P.y'
+---
+gitGraph
+ branch baikal-next order: 2
+ branch amlogic-next order: 3
+ commit
+ commit
+ commit
+ commit
+ checkout baikal-next
+ commit
+ commit
+ commit
+ checkout linux-V.P.y
+ commit
+ commit
+ commit id: "Linux V.P" tag: "vV.P"
+ branch landau-next order: 1
+ commit id: " " type: HIGHLIGHT
+ checkout amlogic-next
+ merge landau-next
+ checkout baikal-next
+ merge landau-next
+ checkout landau-next
+ merge amlogic-next
+ merge baikal-next
+ commit id: "LANDAU-Linux V.P.l-rc1" tag: "vV.P.l-rc1"
+```
+
+Таким образом, основная нагрузка по исправлению конфликтов ложится на нижестоящих ментейнеров. Главному ментейнуру остаётся лишь собрать все MR в `linux-next`. Если и в этом случае возникают сложные конфликты, то главный ментейнер вправе попросить выполнить повторный цикл **двойного слияния**, чтобы кросс sub-LANDAU-Linux конфликты были разешены на стороне нижестоящих ментейнеров.
+
+К тому же опционально ментейнеры могут выполнять поддержку GIT-веток с патч-сетами для последующей отправки изменений в оригинальный репозиторий ядра Linux. До момента интеграции патч-сеты могут "поглощать" исправления и стилистические изменения в процессе перебазирования на новую версию ядра Linux. Это упрощает сопровождение таких GIT-веток, минимизируя лог изменений, который к тому же является лишним при интеграции в ядро Linux.
+
---
-## 📖 8. Пример полного цикла релиза
+## 📖 7. Пример полного цикла релиза
### Исходные данные
-Апстрим выпускает ядро **`6.12.0`**
+Выпущено ядро Linux версии **`7.0`**. Это означает, что в оригинальном репозитории ядра Linux изменения, добавленные в период окна слияния, достаточно стабилизировались, этап RC завершён, EXTRAVERSION принимает пустое значение, последний коммит сомволизирует релиз ядра Linux 7.0, а в GIT-репозитории стабильных и LTS веток появляется новая ветка `linux-7.0.y`.
### 📍 Пошаговый пример
@@ -220,64 +324,64 @@ flowchart TD
| Этап | Действие | Результат | Версия сборки |
|------|----------|-----------|---------------|
-| 1 | Force push ветки `landau-next` на `v7.0` | `landau-next` | — |
+| 1 | Force-push GIT-ветки `landau-next` на `v7.0` | `landau-next` | — |
| 2 | Старт RMW | `landau-next` | `N/A` |
| 3 | Создание RC1 | `v7.0.l-rc1` | `7.0.l-rc1` |
| 4 | Создание RC2 | `v7.0.l-rc2` | `7.0.l-rc2` |
| 5 | Создание RC3 | `v7.0.l-rc3` | `7.0.l-rc3` |
-| 6 | **Финальный релиз** и **отвод ветки** | `v7.0.l`<br>`landau-7.0.y` | `7.0.l` |
-| 7 | Апстрим выпускает `7.0.1` | Слияние изменений в `landau-7.0.y` | — |
+| 6 | **Финальный релиз** и **создание нумерованной GIT-ветки** | `v7.0.l`<br>`landau-7.0.y` | `7.0.l` |
+| 7 | Выходит оригинальный релиз `7.0.1` | Слияние изменений в `landau-7.0.y` | — |
| 8 | Обновление версии | `v7.0.1.l1` | `7.0.1.l1` |
-| 9 | Апстрим объявляет EOL для `7.0` | Ветка `landau-7.0.y` архивируется | — |
+| 9 | Исходная версия `7.0.x` получает статус EOL | GIT-ветка `landau-7.0.y` архивируется | — |
#### 🔄 Детальное описание процесса
-1. **Выход нового стабильного релиза upstream kernel** (например, `v7.0` по результатам 7 недель стабилизации)
-2. **Открытие RMW LANDAU** — берём 2 недели на свой релиз LANDAU:
+1. **Выход нового стабильного релиза ядра Linux** (например, `v7.0` по результатам 7 недель стабилизации)
+2. **Открытие RMW LANDAU-Linux** — берём 2 недели на свой релиз LANDAU-Linux:
- Затаскиваем патч-серии (MR) в ветку `landau-next`, на основе `v7.0`
- Там же происходит решение всех конфликтов
- Формируются первые общие сборки ядра
-3. **Выпуск RC-версий** (например, `v7.0.l-rc1`) — RC-релизы делаются в ветке `landau-next`
+3. **Выпуск RC-версий** (например, `v7.0.l-rc1`) — RC-релизы делаются в GIT-ветке `landau-next`
4. **Тестирование** — длится до 7 недель (может быть меньше):
- - Выпускаются RC-версии: `rc1`, `rc2`, `rc3` и т.д.
+ - Выпускаются RC-версии: `l-rc1`, `l-rc2`, `l-rc3` и т.д.
5. **Финальный релиз и отвод стабильной ветки**:
- Выпускаем релиз `v7.0.l`
- - Отводим стабильную ветку **`landau-7.0.y`** от финального релиза
+ - Создаём стабильную GIT-ветку **`landau-7.0.y`** на базе последнего релиза
- Вся дальнейшая поддержка этой версии ведётся в `landau-7.0.y`
6. **Завершение цикла `landau-next`**:
- Ветка `landau-next` останавливает свой рост на первом релизе `v7.0.l`
- - Переключается на шаг 1, когда в upstream выходит новый стабильный релиз (например, `v7.1`)
-7. **Интеграция SUBLEVEL из upstream**:
- - Если в upstream меняется SUBLEVEL (например, `7.0.1`), мы интегрируем данный релиз в **`landau-7.0.y`**
+ - Переключается на шаг 1, когда в исходном репозитории Linux выходит новый стабильный релиз (например, `v7.1`)
+7. **Интеграция новых изменений SUBLEVEL из исходной стабильной версии ядра Linux**:
+ - Если в исходном репозитории меняется SUBLEVEL (например, `7.0.1`), мы интегрируем данный релиз в **`landau-7.0.y`**
- Повышаем свою версию: `v7.0.1.l1`
- - То есть повышается версия LANDAU, а SUBLEVEL становится равным upstream SUBLEVEL
+ - То есть повышается версия LANDAU-Linux, а SUBLEVEL получает новое значение согласно интегрированным изменениям
8. **Развитие стабильной версии**:
- - Стабильная версия LANDAU `v7.0` ведётся в ветке `landau-7.0.y`
+ - Стабильная версия LANDAU-Linux `v7.0` ведётся в ветке `landau-7.0.y`
9. **Окончание поддержки релиза**:
- - Поддержка релиза LANDAU-ветки заканчивается, когда версия основного ядра больше не тегируется как stable на kernel.org (например, `7.0` достигла EOL)
+ - Поддержка релиза ветки LANDAU-Linux заканчивается, когда версия основного ядра больше не имеет статус стабильной на kernel.org (например, `7.0` достигла статуса EOL)
10. **LTS-поддержка**:
- Если основное ядро уходит в LTS, LANDAU поддерживает LTS до конца
- - Приносятся только фиксы LANDAU (без новых фич) и новые SUBLEVEL
+ - Приносятся только фиксы LANDAU-Linux (без новых фич) и новые SUBLEVEL
11. **Гарантии поддержки**:
- - LANDAU Owners гарантированно поддерживают **одно последнее LTS ядро**
+ - LANDAU-Linux Owners гарантированно поддерживают **одно последнее LTS ядро**
- Про поддержку более старых LTS ядер думаем при наличии ресурсов
#### 📊 Визуализация цикла
```mermaid
flowchart TD
- A[Выход нового<br>stable релиза upstream<br>например, v7.0] --> B[Открытие RMW LANDAU<br>2 недели]
+ A[Выход нового<br>стабильного релиза ядра Linux<br>например, v7.0] --> B[Открытие RMW LANDAU<br>2 недели]
B --> C[Приём MR в landau-next<br>на основе v7.0]
C --> D[Выпуск RC1, RC2, RC3...<br>до 7 недель]
D --> E{Тестирование пройдено?}
E -->|Нет| D
- E -->|Да| F[Релиз v7.0.l<br><br>⚡ Отвод ветки<br><b>landau-7.0.y</b>]
- F --> G[Ожидание нового<br>stable upstream]
- G --> H[Апстрим выпускает<br>новый SUBLEVEL,<br>например, 7.0.1]
+ E -->|Да| F[Релиз v7.0.l<br><br>⚡ Отвод GIT-ветки<br><b>landau-7.0.y</b>]
+ F --> G[Ожидание нового<br>стабильного релиза ядра Linux]
+ G --> H[Выходит стабильный релиз<br>с новым SUBLEVEL,<br>например, 7.0.1]
H --> I[Интеграция в landau-7.0.y:<br>v7.0.1.l1]
- I --> J{Апстрим EOL?}
+ I --> J{Исходная версия EOL?}
J -->|Нет| H
- J -->|Да| K[Архивация ветки<br>landau-7.0.y]
+ J -->|Да| K[Архивация GIT-ветки<br>landau-7.0.y]
```
#### 🏷️ Пример полной цепочки тегов
@@ -308,13 +412,13 @@ TODO
---
-## 📚 9. Ссылки и ресурсы
+## 📚 8. Ссылки и ресурсы
| Ресурс | URL |
|--------|-----|
-| 📦 Репозиторий LANDAU | `https://git.rulkc.org/pub/scm/landau` |
-| 🪞 Зеркала апстрима | `https://git.rulkc.org` |
-| 🔗 Апстрим-ядро | `https://kernel.org` |
+| 📦 Репозитории LANDAU | `https://git.rulkc.org/pub/scm/landau` |
+| 🪞 Зеркала репозиториев Linux| `https://git.rulkc.org` |
+| 🔗 Оригинальные репозитории Linux | `https://kernel.org` |
---
--
2.48.1
More information about the rulkc
mailing list