Sasha Levin, de NVIDIA, responsable de la maintenance des branches LTS du noyau Linux et membre du conseil consultatif de la Fondation Linux, a proposé aux développeurs un ensemble de règles et de documentation à prendre en compte par les assistants IA lors de la génération de modifications du noyau Linux. Les liens vers ces instructions sont indiqués dans les fichiers de configuration des plateformes Claude, GitHub Copilot, Cursor, Codeium, Continue, Windsurf et Aider AI.
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
