Саша Левин из компаније NVIDIA, који одржава LTS гране кернела Linux и члан саветодавног одбора организације Linux Фондација је изнела на расправу програмерима скуп правила и документације које би вештачка интелигенција (AI) асистенти требало да узму у обзир приликом генерисања промена у језгру. Linux. Ссылки на инструкции отмечены в файлах конфигурации, подготовленных для AI-платформ Claude, GitHub Copilot, Cursor, Codeium, Continue, Windsurf и Aider.
Следећи кључни принципи за вештачку интелигенцију су идентификовани:
- Пре него што направите измене, морате прочитати документацију и поштовати захтеве наведене у њој.
- Морају се поштовати захтеви за стил и форматирање кода језгра.
- Пре него што се поднесе промена, она треба бити темељно тестирана.
- Код мора бити праћен јасном и свеобухватном поруком која описује промену.
- Промене не смеју да наруше функционалност компоненти корисничког простора.
- Промена мора бити приписана вештачкој интелигенцији, а не само програмеру који је користио вештачку интелигенцију.
Да би се истакле измене припремљене коришћењем вештачке интелигенције, потребно је да коммит буде означен са „Co-developed-by: $AI_NAME $AI_MODEL $AI_VERSION“. На пример: „Co-developed-by: Claude claude-3-opus-20240229“, „Co-developed-by: GitHub-Copilot GPT-4 v1.0.0“ и „Co-developed-by: Cursor gpt-4-turbo-2024-04-09“. Истовремено, вештачка интелигенција асистент не би требало да се додаје ознаци „Signed-off-by“. Ову ознаку треба да дода само човек ради пружања правно значајне потврде права на пренос кода под отвореном лиценцом.
Документација коју вештачка интелигенција асистент мора узети у обзир:
- Водич за то како постати програмер кернела.
- Информације о процесу развоја језгра.
- Водич за допринос вашег кода језгру.
- Контролна листа ствари које треба проверити пре слања кода језгру.
- Захтеви за стил кода и форматирање (коришћење табулатора за поравнање, не више од 80 знакова по реду, одвојена правила за функције форматирања и условне изразе).
- Захтеви за програмске језике и стандарде.
- Забрана коришћења застарелих софтверских интерфејса и могућности.
- Правила за слање закрпа за укључивање у језгро.
- Подешавања имејл клијента за слање закрпа.
- Правила за прихватање закрпа.
- Правила лиценцирања кода језгра (GPL-2.0 лиценца са изузецима за системске позиве, присуство SPDX идентификатора лиценце у свакој датотеци).
- Упутства за додавање новог системског позива.
- Правила за слање закрпа на стабилне гране језгра.
- Решавање безбедносних проблема.
- Акције када се открију регресије.
- Водич за интеракцију са пратећим лицима.
- Смернице специфичне за подсистем.
Извор: опеннет.ру
