Sasha Levin de NVIDIA, qui assure la maintenance des branches du noyau LTS Linux et membre du conseil consultatif de l'organisation Linux La Fondation a publié, à l'intention des développeurs, un ensemble de règles et de documentation que les assistants IA devraient prendre en compte lors de la génération de modifications du noyau. LinuxDes liens vers les instructions sont fournis dans les fichiers de configuration préparés pour les plateformes d'IA Claude, GitHub Copilot, Cursor, Codeium, Continue, Windsurf et Aider.
Les principes clés suivants pour l’IA ont été identifiés :
- Avant d’effectuer des modifications, vous devez lire la documentation et suivre les exigences qui y sont énoncées.
- Les exigences de style et de formatage du code du noyau doivent être respectées.
- Avant de soumettre une modification, celle-ci doit être soigneusement testée.
- Le code doit être accompagné d’un message clair et complet décrivant le changement.
- Les modifications ne doivent pas interrompre la fonctionnalité des composants de l’espace utilisateur.
- Le changement doit être attribué à l’IA en tant que co-auteur, et pas seulement au développeur qui a utilisé l’assistant IA.
Pour mettre en évidence les modifications préparées par l'IA, le commit doit être étiqueté avec « Co-développé par : $AI_NAME $AI_MODEL $AI_VERSION ». Par exemple : « Co-développé par : Claude claude-3-opus-20240229 », « Co-développé par : GitHub-Copilot GPT-4 v1.0.0 » et « Co-développé par : Cursor gpt-4-turbo-2024-04-09 ». Par ailleurs, l'assistant IA ne doit pas s'ajouter à l'étiquette « Signed-off-by ». Cette étiquette ne doit être ajoutée que par un humain pour fournir une confirmation juridiquement valable du droit de transférer du code sous licence ouverte.
Documentation que l'assistant IA doit prendre en compte :
- Un guide pour devenir un développeur de noyau.
- Informations sur le processus de développement du noyau.
- Un guide pour contribuer votre code au noyau.
- Une liste de contrôle des éléments à vérifier avant de soumettre du code au noyau.
- Exigences relatives au style et au formatage du code (utilisation de tabulations pour l'alignement, pas plus de 80 caractères par ligne, règles distinctes pour le formatage des fonctions et des expressions conditionnelles).
- Exigences relatives aux langages et normes de programmation.
- Interdiction d'utiliser des interfaces et des fonctionnalités logicielles obsolètes.
- Règles de soumission de correctifs à inclure dans le noyau.
- Paramètres du client de messagerie pour l'envoi de correctifs.
- Règles d'acceptation des correctifs.
- Règles de licence du code du noyau (licence GPL-2.0 avec exceptions pour les appels système, présence d'identifiants de licence SPDX dans chaque fichier).
- Instructions pour ajouter un nouvel appel système.
- Règles de soumission des correctifs aux branches stables du noyau.
- Gestion des problèmes de sécurité.
- Actions lorsque des régressions sont détectées.
- Guide d'interaction avec les accompagnants.
- Lignes directrices spécifiques aux sous-systèmes.
Source: opennet.ru
