diff options
| -rw-r--r-- | content/landau-linux/maintenance/_index.md | 179 | ||||
| -rw-r--r-- | content/open_mic_27_03_2026/_index.md (renamed from content/open_mic_27_03_2026/open_mic_27_03_2026.md) | 0 |
2 files changed, 113 insertions, 66 deletions
diff --git a/content/landau-linux/maintenance/_index.md b/content/landau-linux/maintenance/_index.md index bec6c0b..6d3fce4 100644 --- a/content/landau-linux/maintenance/_index.md +++ b/content/landau-linux/maintenance/_index.md @@ -17,28 +17,22 @@ draft: false Обеспечить стабильный, предсказуемый и документированный процесс выпуска LANDAU-Linux-релизов с отслеживанием оригинального репозитория ядра Linux. -### Глоссарий -V - VERSION - major версия ядра Linux -P - PATCHLEVEL - middle версия ядра Linux -S - SUBLEVEL - minor версия ядра Linux -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` | GIT-ветка для следующего релиза LANDAU-Linux, куда мейтейнеры отсылают свои MR | -| `landau-V.P.y` | GIT-ветка релиза LANDAU-Linux на базе ядра Linux с версией V.P | - -> `landau-next` - GIT-ветка для работы всех мейтейнеров вместе. В ней разрешаются конфликты и собираются все MR вместе для создания ветки `landau-V.P.y`. При старте нового RMW её HEAD насильно переносится (_force-push_) на новый релиз ядра Linux. +## 📖 Глоссарий + +| Термин | Полное название | Описание | +|--------|-----------------|----------| +| **V** | VERSION | Major версия ядра Linux. Определяет основной номер версии (например, `6` в `6.12.7`). | +| **P** | PATCHLEVEL | Middle версия ядра Linux. Определяет минорный номер версии (например, `12` в `6.12.7`). | +| **S** | SUBLEVEL | Minor версия ядра Linux. Определяет номер стабильного обновления (например, `7` в `6.12.7`). | +| **E** | EXTRAVERSION | Поле в версии ядра Linux, в которое встраивается версия ядра LANDAU-Linux. Ядром Linux обычно используется для `-rc` релизов. | +| **MR** | Merge Request | Запрос на слияние одной Git-ветки с другой. Оформляется в виде ссылки на Git-репозиторий и ветку авторизованного мейнтейнера с формальным описанием. | +| **RMW** | Rebase & Merge Window | Временной отрезок (2 недели), в рамках которого мейнтейнеры LANDAU переносят свои изменения на новую базовую версию ядра. | +| **Bundle** | — | Полный набор изменений репозитория LANDAU-Linux, отличающий его от оригинального ядра Linux. Есть общий Bundle и Bundle-ы мейнтейнеров. | +| **EOL** | End-of-Life | Завершение этапа поддержки выпущенной версии продукта. Ветка больше не получает обновлений и архивируется. | ### 🪞 Зеркала оригинальных репозиториев Linux -На сервере `https://git.rulkc.org` поддерживаются постоянно обновляемые зеркала: +На сервере **[git.rulkc.org](https://git.rulkc.org)** поддерживаются постоянно обновляемые зеркала: - 🔷 `torvalds/linux` — основная ветка ядра Linux - 🔷 `stable/linux` — стабильные релизы ядра Linux @@ -85,24 +79,63 @@ v7.0.lXYZ | `landau-next` | GIT-ветка следующего релиза LANDAU-Linux, куда мейтейнеры отсылают свои MR | | `landau-V.P.y` | Текущая GIT-ветка для релиза LANDAU-Linux на базе <u>стабильного</u> ядра Linux с версией V.P | +> `landau-next` - GIT-ветка для работы всех мейтейнеров вместе. В ней разрешаются конфликты и собираются все MR вместе для создания ветки `landau-V.P.y`. При старте нового RMW её HEAD насильно переносится (_force-push_) на новый релиз ядра Linux. + ### ⏳ Жизненный цикл GIT-веток ```mermaid -flowchart LR +%%{init: { + 'theme': 'base', + 'themeVariables': { + 'background': '#0d1117', + 'primaryColor': '#1f6feb', + 'primaryTextColor': '#f0f6fc', + 'primaryBorderColor': '#30363d', + 'lineColor': '#f0883e', + 'secondaryColor': '#161b22', + 'tertiaryColor': '#0d1117', + 'edgeLabelBackground': '#0d1117', + 'nodeBorder': '#30363d', + 'nodeTextColor': '#f0f6fc', + 'clusterBkg': '#0d1117', + 'clusterBorder': '#30363d', + 'fontSize': '24px', + 'fontFamily': 'monospace' + }, + 'flowchart': { + 'nodeSpacing': 80, + 'rankSpacing': 80, + 'curve': 'basis', + 'padding': 20 + } +}}%% +flowchart TB 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>]) + direction TB + E["<b>landau-V.P.y</b> → <b>landau-next</b>"] + F["Поддержка <b>landau-V.P.y</b>"] + G{"Статус <b>linux-V.P.y</b> <b>EOL</b>?"} + H["Архивация <b>landau-V.P.y</b>"] + E --> F + F --> G + G -->|Нет| F + G -->|Да| H 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 + direction TB + A["<b>landau-next</b> → <b>linux-V.P.y</b>"] + B["Стабилизация <b>landau-next</b>"] + C{"Код <b>landau-next</b> стабилен?"} + D["P = P + 1"] + A --> B + B --> C + C -->|Нет| B + C -->|Да| D + D -.->|Ожидание релиза P| A end + + two --> one ``` | Стадия | Действие | @@ -139,11 +172,36 @@ flowchart LR ### 📊 Полный цикл релиза ```mermaid +%%{init: { + 'theme': 'base', + 'themeVariables': { + 'background': '#0d1117', + 'primaryColor': '#1f6feb', + 'primaryTextColor': '#f0f6fc', + 'primaryBorderColor': '#30363d', + 'lineColor': '#f0883e', + 'secondaryColor': '#161b22', + 'tertiaryColor': '#0d1117', + 'edgeLabelBackground': '#0d1117', + 'nodeBorder': '#30363d', + 'nodeTextColor': '#f0f6fc', + 'clusterBkg': '#0d1117', + 'clusterBorder': '#30363d', + 'fontSize': '24px', + 'fontFamily': 'monospace' + }, + 'flowchart': { + 'nodeSpacing': 80, + 'rankSpacing': 80, + 'curve': 'basis', + 'padding': 20 + } +}}%% flowchart TD A["📦 Выход нового релиза ядра Linux"] --> B B(["🔓 1. RMW LANDAU-Linux<br>(~2 недели)"]) --> C C["🔧 Перенос и слияние наработок LANDAU-Linux"] --> D - D(["🔓 2. RC LANDAU-Linux<br>(~1 недели на RCx)"]) --> E + D(["🔓 2. RC LANDAU-Linux<br>(~1 неделя на RCx)"]) --> E E["🔧 Исправление ошибок<br>(выпуск RC)"] --> F F(["✅ 3. Релиз LANDAU-Linux"]) --> G G["🔧 Публикация списка<br>изменений LANDAU-Linux"] --> H @@ -169,7 +227,7 @@ flowchart TD | Параметр | Значение | |----------|----------| | ⏱️ Длительность | **~2 недели** | -| 🎯 Фокус | Сбор и базовая проверки работоспособности продуктв | +| 🎯 Фокус | Сбор и базовая проверки работоспособности продуктов | | 🏷️ Релизы | `l-rc1` | | 🔧 Исправления | Незначительные проблемы разрешаются в merge-коммитах. Значительные - через повторный запрос изменения от ментейнера | @@ -198,15 +256,15 @@ flowchart TD | Шаг | Действие | |-----|----------| | 1 | Убедиться в отсуствии существенных проблем на последнем этапе RC | -| 2 | Обновить `EXTRAVERSION` на `l` и создать коммит "LANDAU-Linux V.P.l" | -| 3 | Отметить коммит аннотированным тегом `vV.P.l` | +| 2 | Обновить `EXTRAVERSION` на `l0` и создать коммит "LANDAU-Linux V.P.l0" | +| 3 | Отметить коммит аннотированным тегом `vV.P.l0` | | 4 | Создать GIT-ветку `landau-V.P.y` на основе последнего RC-релиза LANDAU-Linux | | Параметр | Значение | |----------|----------| | ⏱️ Длительность | **более 1 недели** в последней фазе RC | | 🎯 Фокус | Стабилизация собранных измений и опубликование списка изменений | -| 🏷️ Релизы | `l` | +| 🏷️ Релизы | `l0` | | 🔧 Исправления | Отсуствуют в рамках последней фазы RC | ### 5.4 🔄 Поддержка стабильной и LTS-версий LANDAU-Linux @@ -264,14 +322,20 @@ flowchart TD |---------|------------------| | 👁️ Мониторинг исходного репозитория | Отслеживание новых релизов и RC-циклов | | 📦 Применение патчей | Интеграция LANDAU-специфичных изменений ядра | -| 🏷️ Управление тегами | Создание аннотированных тегов в формате `vX.Y.lZ` | +| 🏷️ Управление тегами | Создание аннотированных тегов в формате `vV.P.lZ` | | 🧪 Координация RC | Организация тестирования кандидатов на релиз | | 🔒 Безопасность | Мониторинг и применение исправлений безопасности | | 📝 Документирование | Ведение changelog для каждого LANDAU-релиза | -### Личные репозитории ментейнеров +### 🏗️ Личные репозитории ментейнеров + +В личных репозиториях мейнтейнеры хранят и развивают собственные форки ядра Linux с подведомственным им набором изменений. + +В целом, способ организации персональных репозиториев мейнтейнеры могут выбирать самостоятельно. Например, можно разделить независимые изменения на GIT-ветки по подсистемам и отправлять MR с каждым из них, либо предварительно объединить их в единую GIT-ветку и отправить один целостный MR. -В личных репозиториях ментейнеры хранят и развивают собственные форки ядра Linux с подведомственным им набором изменений. В целом, способ организации персональных репозиториев ментейнеры могут выбирать самостоятельное. Например, можно разделить независимые изменения на GIT-ветки по подсистемам и отправлять MR с каждым из них, либо предварительно объединить их в единую GIT-ветку и отправить один целостный MR. Как бы то ни было, при этом необходимо придерживаться правила **преемственности предыдущих изменений и минимизации merge-конфликтов**. То есть GIT-ветка, отправляемая в MR главному ментейнеру, должна сохранять историю предыдущих изменений LANDAU-Linux и их исправлений, а также содержать последнюю версию оригинальной версии ядра Linux, для которого готовится релиз LANDAU-Linux. Для реализации такого требования удобно использовать подход **двойного слияния**, суть которого в том, чтобы сначала ментейнеры sub-LANDAU-Linux репозиториев выполнили слияние своих GIT-веток с `landau-next`, разрешили все конфликты и лишь потом отправляли MR в рамках этапа RMW: +Как бы то ни было, при этом необходимо придерживаться правила **преемственности предыдущих изменений и минимизации merge-конфликтов**. То есть GIT-ветка, отправляемая в MR главному мейнтейнеру, должна сохранять историю предыдущих изменений LANDAU-Linux и их исправлений, а также содержать последнюю версию оригинальной версии ядра Linux, для которого готовится релиз LANDAU-Linux. + +Для реализации такого требования удобно использовать подход **двойного слияния**, суть которого в том, чтобы сначала мейнтейнеры sub-LANDAU-Linux репозиториев выполнили слияние своих GIT-веток с `landau-next`, разрешили все конфликты и лишь потом отправляли MR в рамках этапа RMW. ```mermaid --- @@ -290,7 +354,6 @@ gitGraph checkout baikal-next commit commit - commit checkout linux-V.P.y commit commit @@ -317,7 +380,7 @@ gitGraph ### Исходные данные -Выпущено ядро Linux версии **`7.0`**. Это означает, что в оригинальном репозитории ядра Linux изменения, добавленные в период окна слияния, достаточно стабилизировались, этап RC завершён, EXTRAVERSION принимает пустое значение, последний коммит сомволизирует релиз ядра Linux 7.0, а в GIT-репозитории стабильных и LTS веток появляется новая ветка `linux-7.0.y`. +Выпущено ядро Linux версии **`7.0`**. Это означает, что в оригинальном репозитории ядра Linux изменения, добавленные в период окна слияния, достаточно стабилизировались, этап RC завершён, EXTRAVERSION принимает пустое значение, последний коммит символизирует релиз ядра Linux 7.0, а в GIT-репозитории стабильных и LTS веток появляется новая ветка `linux-7.0.y`. ### 📍 Пошаговый пример @@ -330,7 +393,7 @@ gitGraph | 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 | **Финальный релиз** и **создание нумерованной GIT-ветки** | `v7.0.l`<br>`landau-7.0.y` | `7.0.l` | +| 6 | **Финальный релиз** и **создание нумерованной GIT-ветки** | `v7.0.l`<br>`landau-7.0.y` | `7.0.l0` | | 7 | Выходит оригинальный релиз `7.0.1` | Слияние изменений в `landau-7.0.y` | — | | 8 | Обновление версии | `v7.0.1.l1` | `7.0.1.l1` | | 9 | Исходная версия `7.0.x` получает статус EOL | GIT-ветка `landau-7.0.y` архивируется | — | @@ -367,30 +430,12 @@ gitGraph - LANDAU-Linux Owners гарантированно поддерживают **одно последнее LTS ядро** - Про поддержку более старых LTS ядер думаем при наличии ресурсов -#### 📊 Визуализация цикла - -```mermaid -flowchart TD - 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>⚡ Отвод 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?} - J -->|Нет| H - J -->|Да| K[Архивация GIT-ветки<br>landau-7.0.y] -``` - #### 🏷️ Пример полной цепочки тегов Для ядра `7.0.x` в LANDAU: ``` -v7.0.l-rc1 → v7.0.l-rc2 → v7.0.l-rc3 → v7.0.l +v7.0.l-rc1 → v7.0.l-rc2 → v7.0.l-rc3 → v7.0.l0 ↓ отвод landau-7.0.y ↓ @@ -417,14 +462,16 @@ TODO | Ресурс | URL | |--------|-----| -| 📦 Репозитории LANDAU | `https://git.rulkc.org/pub/scm/landau` | -| 🪞 Зеркала репозиториев Linux| `https://git.rulkc.org` | -| 🔗 Оригинальные репозитории Linux | `https://kernel.org` | +| 📦 Репозитории LANDAU-linux | [https://git.rulkc.org/pub/scm/landau](https://git.rulkc.org/pub/scm/landau) | +| 🪞 Зеркала репозиториев Linux | [https://git.rulkc.org](https://git.rulkc.org) | +| 🔗 Оригинальные репозитории Linux | [https://kernel.org](https://kernel.org) | --- -> 📌 **Актуальная версия документа**: 1.0 -> ✍️ **Поддерживается**: LANDAU Maintainers -> 📅 **Последнее обновление**: 2026 +<div style="display: flex; justify-content: space-between; align-items: center; padding: 1rem 0; margin-top: 2rem; border-top: 1px solid #30363d; font-size: 14px; flex-wrap: wrap; gap: 10px;"> + <span>📌 <strong>Актуальная версия:</strong> 1.0</span> + <span>✍️ <strong>Поддерживается:</strong> LANDAU Maintainers</span> + <span>📅 <strong>Обновлено:</strong> 2026-07</span> +</div> [⬅️ Вернуться на страницу LANDAU Linux](../../) diff --git a/content/open_mic_27_03_2026/open_mic_27_03_2026.md b/content/open_mic_27_03_2026/_index.md index de97835..de97835 100644 --- a/content/open_mic_27_03_2026/open_mic_27_03_2026.md +++ b/content/open_mic_27_03_2026/_index.md |
