Kernel/devel: различия между версиями
Vt (обсуждение | вклад) (→send-email: undo) |
Vt (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
= Регламент = | |||
Отсылка, обсуждение, прием патчей в ядро происходит через список рассылки ''devel-kernel@lists.altlinux.org''. По аналогии с upstream kernel development process описанном тут: | Отсылка, обсуждение, прием патчей в ядро происходит через список рассылки ''devel-kernel@lists.altlinux.org''. По аналогии с upstream kernel development process описанном тут: | ||
* https://www.kernel.org/doc/html/latest/process/development-process.html | * https://www.kernel.org/doc/html/latest/process/development-process.html | ||
Строка 6: | Строка 7: | ||
# быть членом [[Join|ALT Linux Team]] и | # быть членом [[Join|ALT Linux Team]] и | ||
# суметь самостоятельно подписаться на вышеуказанный список рассылки, | # суметь самостоятельно подписаться на вышеуказанный список рассылки, | ||
# правильно оформить патч(и). | # протестировать и правильно оформить патч(и). | ||
= | = Оформление патча = | ||
В коммите: | |||
* укажите имя автора и емайл в ''Author'', | |||
* краткое описание зачем нужен или что делает патч в ''Subject'' и | |||
* подробное смысловое описание в ''Description'' (если не понятно что писать опишите на что потратили время), | |||
* если патч из интернетов укажите откуда он взят со ссылкой и ваше объяснение почему и зачем, | |||
* в конце Description укажите тэг <code>Signed-off-by:</code> с '''вашим''' именем и емайлом. | |||
= Тестирование = | |||
Обязательно протестируйте ваш код на оборудовании назначения с ''покрытием'' вашего кода, чтоб убедиться, что он действительно работает и работает правильно. Желательно протестировать с включёнными системами отладки ядра (включающие полезные проверки на утечки, переполнения, ошибки с блокировками и т.д.). Вот пример фрагмента конфига включающий нужные опции: | |||
CONFIG_KASAN_VMALLOC=y | |||
CONFIG_KASAN_STACK=y | |||
CONFIG_KASAN_OUTLINE=y | |||
CONFIG_KASAN_MODULE_TEST=m | |||
CONFIG_KASAN_GENERIC=y | |||
CONFIG_KASAN_EXTRA_INFO=y | |||
CONFIG_KFENCE=y | |||
CONFIG_KFENCE_STATIC_KEYS=y | |||
# CONFIG_KCSAN is not set | |||
CONFIG_KASAN=y | |||
CONFIG_UBSAN=y | |||
CONFIG_LOCK_DEBUGGING_SUPPORT=y | |||
CONFIG_LOCKDEP=y | |||
CONFIG_PROVE_LOCKING=y | |||
CONFIG_PROVE_RAW_LOCK_NESTING=y | |||
CONFIG_RCU_EXPERT=y | |||
CONFIG_PROVE_RCU=y | |||
CONFIG_PROVE_RCU_LIST=y | |||
Новые ядра можно собрать с готовым тестовым флейвором ''kasan'' где они будут автоматически включены. При тестировании не должно возникать Oops, Kernel Panic, Warnings связанных с вашими изменениями. | |||
= | = Рецензирование = | ||
Специалисты по коду, который в меняете доступны через апстримные списки рассылки ядра. Поэтому, крайне настоятельно рекомендуется послать патч в апстим на '''рецензирование''', даже если вы не планируете (или не очень надеетесь на) включение патча в апстримное ядро. Для этого с помощью <code>scripts/get_maintainer.pl</code> определите список маинтайнеров и рецензентов кода который меняете. Укажите их в <code>Cc:</code> и т.д. как при обычной отсылке в апстрим. После отсылки пождите несколько недель рецензирования (там люди занятые). | |||
= Подписка на devel-kernel = | |||
* Для подписки зайдите на страницу https://lists.altlinux.org/mailman/listinfo/devel-kernel введите там "Ваш электронный адрес" нажмите "Подписать". Должно прийти письмо с подтверждением на которое нужно ответить и после этого должно прийти письмо с сообщением, что вы подписаны. | |||
* Далее нужно слать в список ''с подписанного адреса''. | |||
* Если приходит уведомление что ваше сообщение ''ожидает одобрения модератором'' списка, это значит, что вы или не подписались, или шлете не с того адреса. | |||
= Дооформление патча после тестирование и рецензирования = | |||
* Опишите какое тестирование проводилось (на каком оборудовании, с kasan или без). | |||
* Укажите lore-ссылки на посты в апстрим вашего патча в тэгах <code>Link</code> даже если ответа апстрима не было: | |||
Link: <nowiki>https://lore.kernel.org/...</nowiki> | |||
= send-email = | Для патчсета это можно указать в cover letter. | ||
= git format-patch = | |||
* Патчи нужно оформлять через <code>git format-patch</code>. Описание (description) каждого коммита должно быть на английском языке, если коммитов больше чем 1, то должно быть cover letter с общим описанием патчсета (для одного коммита оно не обязательно). Дополнительный комментарий (текст после <code>---</code>) или cover letter не обязательно на английском, так как они не попадают в git. | |||
* Желательно в Subject в квадратных скобках вместе с <code>[PATCH]</code> (или в cover letter) указать для какого ядра (бранч/флейвор, например <code>[PATCH un-def/sisyphus]</code>). | |||
* ⚠ Не забывайте добавлять <code>Signed-off-by:</code> тэг к коммитам даже если вы не автор патча! | |||
= git send-email = | |||
Патчи ''желательно'' слать через <code>git send-email</code>, чтоб почтовый клиент их не переформатировал. | Патчи ''желательно'' слать через <code>git send-email</code>, чтоб почтовый клиент их не переформатировал. | ||
= lore = | = lore.a.o = | ||
Отосланные патчи будут доступны через веб интерфейс https://lore.altlinux.org/devel-kernel/ | Отосланные патчи будут доступны через веб интерфейс https://lore.altlinux.org/devel-kernel/ |
Версия от 04:59, 25 февраля 2025
Регламент
Отсылка, обсуждение, прием патчей в ядро происходит через список рассылки devel-kernel@lists.altlinux.org. По аналогии с upstream kernel development process описанном тут:
- https://www.kernel.org/doc/html/latest/process/development-process.html
- https://www.kernel.org/doc/html/latest/process/submitting-patches.html
Для отсылки патча на ядро нужно
- быть членом ALT Linux Team и
- суметь самостоятельно подписаться на вышеуказанный список рассылки,
- протестировать и правильно оформить патч(и).
Оформление патча
В коммите:
- укажите имя автора и емайл в Author,
- краткое описание зачем нужен или что делает патч в Subject и
- подробное смысловое описание в Description (если не понятно что писать опишите на что потратили время),
- если патч из интернетов укажите откуда он взят со ссылкой и ваше объяснение почему и зачем,
- в конце Description укажите тэг
Signed-off-by:
с вашим именем и емайлом.
Тестирование
Обязательно протестируйте ваш код на оборудовании назначения с покрытием вашего кода, чтоб убедиться, что он действительно работает и работает правильно. Желательно протестировать с включёнными системами отладки ядра (включающие полезные проверки на утечки, переполнения, ошибки с блокировками и т.д.). Вот пример фрагмента конфига включающий нужные опции:
CONFIG_KASAN_VMALLOC=y CONFIG_KASAN_STACK=y CONFIG_KASAN_OUTLINE=y CONFIG_KASAN_MODULE_TEST=m CONFIG_KASAN_GENERIC=y CONFIG_KASAN_EXTRA_INFO=y CONFIG_KFENCE=y CONFIG_KFENCE_STATIC_KEYS=y # CONFIG_KCSAN is not set CONFIG_KASAN=y CONFIG_UBSAN=y CONFIG_LOCK_DEBUGGING_SUPPORT=y CONFIG_LOCKDEP=y CONFIG_PROVE_LOCKING=y CONFIG_PROVE_RAW_LOCK_NESTING=y CONFIG_RCU_EXPERT=y CONFIG_PROVE_RCU=y CONFIG_PROVE_RCU_LIST=y
Новые ядра можно собрать с готовым тестовым флейвором kasan где они будут автоматически включены. При тестировании не должно возникать Oops, Kernel Panic, Warnings связанных с вашими изменениями.
Рецензирование
Специалисты по коду, который в меняете доступны через апстримные списки рассылки ядра. Поэтому, крайне настоятельно рекомендуется послать патч в апстим на рецензирование, даже если вы не планируете (или не очень надеетесь на) включение патча в апстримное ядро. Для этого с помощью scripts/get_maintainer.pl
определите список маинтайнеров и рецензентов кода который меняете. Укажите их в Cc:
и т.д. как при обычной отсылке в апстрим. После отсылки пождите несколько недель рецензирования (там люди занятые).
Подписка на devel-kernel
- Для подписки зайдите на страницу https://lists.altlinux.org/mailman/listinfo/devel-kernel введите там "Ваш электронный адрес" нажмите "Подписать". Должно прийти письмо с подтверждением на которое нужно ответить и после этого должно прийти письмо с сообщением, что вы подписаны.
- Далее нужно слать в список с подписанного адреса.
- Если приходит уведомление что ваше сообщение ожидает одобрения модератором списка, это значит, что вы или не подписались, или шлете не с того адреса.
Дооформление патча после тестирование и рецензирования
- Опишите какое тестирование проводилось (на каком оборудовании, с kasan или без).
- Укажите lore-ссылки на посты в апстрим вашего патча в тэгах
Link
даже если ответа апстрима не было:
Link: https://lore.kernel.org/...
Для патчсета это можно указать в cover letter.
git format-patch
- Патчи нужно оформлять через
git format-patch
. Описание (description) каждого коммита должно быть на английском языке, если коммитов больше чем 1, то должно быть cover letter с общим описанием патчсета (для одного коммита оно не обязательно). Дополнительный комментарий (текст после---
) или cover letter не обязательно на английском, так как они не попадают в git. - Желательно в Subject в квадратных скобках вместе с
[PATCH]
(или в cover letter) указать для какого ядра (бранч/флейвор, например[PATCH un-def/sisyphus]
). - ⚠ Не забывайте добавлять
Signed-off-by:
тэг к коммитам даже если вы не автор патча!
git send-email
Патчи желательно слать через git send-email
, чтоб почтовый клиент их не переформатировал.
lore.a.o
Отосланные патчи будут доступны через веб интерфейс https://lore.altlinux.org/devel-kernel/