Linus Torvalds exprime sa frustration face au processus de développement de Bcachefs
Le 5 octobre 2024, une vive dispute a éclaté entre Linus Torvalds, le créateur du noyau Linux, et Kent Overstreet, le développeur principal du système de fichiers Bcachefs. Torvalds exprime sa frustration envers l'approche d'Overstreet concernant le développement de Bcachefs, en particulier le manque de tests et de collaboration avant de soumettre des correctifs.
Kent Overstreet défend ses pratiques, soulignant le rythme rapide de développement et la nécessité d'itérer rapidement. La discussion s'intensifie, Torvalds menaçant de retirer bcachefs du noyau principal, ce qui pousse Overstreet à défendre son engagement envers Linux.
Dans cet article de blog, nous fournirons un bref résumé de la situation en cours entre Linus Torvalds et Kent Overstreet concernant le système de fichiers Bcachefs.
Linus Torvalds critique le développeur de Bcachefs pour son manque de tests et de collaboration
Lors d'une récente conversation sur la liste de diffusion du noyau Linux, Linus Torvalds, le créateur et développeur principal du noyau Linux, a exprimé sa frustration face à la gestion par Kent Overstreet du système de fichiers bcachefs.
J'en ai vraiment assez ici, Kent.
Ces commits datent de la nuit dernière. Ce qui me fait me demander combien de tests ils ont reçus.
Et avant que tu ne commences à te plaindre - encore une fois - sur le fait que tu corriges des bugs,
laisse-moi te rappeler les échecs de compilation que tu as eus sur les machines big-endian
parce que tes correctifs n'avaient reçu AUCUN test en dehors de ton propre arbre.
A écrit Linus dans la liste de diffusion.
Linus Torvalds contre Kent Overstreet : le développement de Bcachefs en turmoil
L'échange a commencé avec Kent Overstreet soumettant une série de correctifs pour bcachefs pour la prochaine version Linux 6.12-rc2. Ces correctifs ont traité un éventail de problèmes, y compris les problèmes de LRU de fragmentation, la gestion des erreurs des opérations journalisées et les réparations de connectivité du système de fichiers. Notamment, ces correctifs ont été engagés dans le dépôt personnel d'Overstreet sans revue publique préalable ni discussion sur la liste de diffusion.
Ce manque de transparence a suscité de vives critiques de la part de Torvalds, qui a exprimé son inquiétude quant aux tests limités que ces correctifs ont reçus avant d'être soumis pour inclusion dans le noyau principal. Il a souligné un incident récent où un patch bcachefs a provoqué des échecs de compilation sur machines big-endian, soulignant la nécessité de tests approfondis en dehors de l'environnement propre du développeur.
Torvalds a ensuite critiqué le modèle de développement global d'Overstreet, déplorant le manque de contributions significatives d'autres développeurs et la nature apparemment précipitée des corrections de bogues soumises juste avant les dates limites de publication.
Linus a publié cette réponse en réponse à la réponse de Kent :
J'espérais et m'attendais à ce que la mise en ligne de bcachefs aide réellement le développement. Ce n'est pas le cas. Vous êtes toujours essentiellement le
seul développeur, il n'y a aucun signe réel que cela va changer, et vous semblez penser que m'envoyer du matériel non testé que personne d'autre n'a jamais vu la veille de la prochaine version rc est parfaitement acceptable.
Il a également encouragé Overstreet à s'engager plus activement avec la communauté, à suivre les pratiques de développement établies et à privilégier le développement collaboratif plutôt qu'une approche solitaire.
Réponse du développeur Bacachefs
Kent Overstreet a répliqué en soutenant que les commits, bien que datés récemment, représentaient des correctifs développés au cours des deux dernières semaines. Il a défendu son approche en soulignant la boucle de rétroaction active qu'il maintient avec les utilisateurs et le rythme rapide de correction des bugs qui bénéficie de cette interaction directe.
Les dates des /commit/ sont d'hier soir, parce que je peaufine les messages de commit et réorganise jusqu'à la dernière minute (je publie toujours les petites corrections en premier et les corrections susceptibles de nécessiter des retouches à la fin).
La grande majorité de ces correctifs ont tous environ 2 semaines.
Dit Kent.
Il a également établi des parallèles avec les premiers jours du développement du noyau Linux, suggérant qu'une approche plus flexible était nécessaire pendant les premières étapes du cycle de vie d'un projet.
Torvalds rejette les arguments de Kent
Mais Torvalds a rejeté ces arguments, affirmant que les processus établis existent pour une raison et que les respecter profite à toutes les personnes impliquées.
Il a écarté la tentative d'Overstreet de comparer la situation actuelle aux premiers jours de Linux, en soulignant que le projet avait tiré des leçons de ses expériences passées et avait fait évoluer ses pratiques de développement en conséquence.
Affirmer que nous n'avions pas ces règles il y a vingt ans
est tout simplement stupide. Nous les avons MAINTENANT, parce que nous avons mieux appris.-- Linus Torvalds.
Kent Overstreet met au défi Torvalds d'écrire son propre système de fichiers
La conversation a dégénéré avec les deux parties exprimant leur frustration face au style de communication de l'autre et à leur refus de faire des compromis.
Overstreet a défendu son engagement à développer un système de fichiers robuste et fiable pour Linux, mais a remis en question la valeur des « règles en amont » lorsque son raisonnement et ses processus semblaient être ignorés. Dans une réponse frustrée, Overstreet a mis au défi Torvalds d'écrire son propre système de fichiers s'il avait autant confiance en son approche.
Si vous êtes tellement convaincu de bien savoir, je vous invite à commencer à écrire votre propre système de fichiers. Allez-y.
-- Kent Overstreet.
Torvalds menace de retirer Bcachefs du noyau principal
Torvalds a répliqué en déclarant son intention de potentiellement supprimer bcachefs du noyau principal complètement si Overstreet continuait à ignorer le processus de développement établi et l'implication de la communauté.
Je songe à simplement supprimer bcachefs complètement du noyau principal.
Parce que vous montrez encore et encore que vous n'avez aucun intérêt à
essayer de faire fonctionner le noyau principal.-- Linus Torvalds.
Il a remis en question l'objectif de la présence de bcachefs dans l'arbre principal s'il devait rester un projet solo avec peu de considération pour l'intégration et la collaboration.
Futur de Bcachefs dans le noyau Linux incertain après un différend sur le code de conduite
Principaux désaccords sur le développement de Bcachefs
Le principal désaccord entre Linus Torvalds et Kent Overstreet concerne le processus de développement du système de fichiers bcachefs, en particulier en ce qui concerne les tests, l'implication de la communauté et le respect des pratiques de développement du noyau principal.
Critiques de Linus :
- Tests insuffisants : Linus exprime sa frustration face au manque perçu de tests de Kent pour ses modifications de code, soulignant en particulier un récent échec de compilation sur des machines big-endian qui s'est retrouvé dans une version rc. Il pense que Kent soumet des correctifs non testés sans examen adéquat de la part des autres.
- Manque d'implication de la communauté : Linus critique le style de développement de Kent, le qualifiant de trop isolé et de ne pas impliquer la communauté plus large du développement du noyau. Il souligne que Kent reste le développeur principal avec une participation limitée d'autres personnes. Il est également mécontent que les correctifs de Kent manquent souvent de discussion publique avant leur soumission.
Défense de Kent :
- Itération rapide et retour d'expérience des utilisateurs : Kent soutient que bcachefs en est encore à ses premières étapes de développement, nécessitant un cycle d'itération rapide avec un accent sur la correction des bugs et l'intégration des retours des utilisateurs. Il privilégie la correction des bugs par rapport à une approche plus lente et plus prudente qui se concentre fortement sur la prévention des régressions.
- Tests existants et engagement communautaire : Kent défend ses pratiques de test, affirmant qu'il s'appuie sur une base d'utilisateurs qui fournit des retours rapides, identifiant souvent les problèmes le lendemain de la publication des modifications. Il affirme s'engager activement avec les utilisateurs et les développeurs sur IRC et par communication directe. Il estime qu'impliquer d'autres développeurs dans la révision de corrections de bogues mineurs serait contre-productif et a conduit à des résultats non productifs par le passé.
- Progrès et stabilité de bcachefs : Kent souligne les progrès significatifs réalisés sur bcachefs, suggérant qu'il devient de plus en plus stable et qu'il est déjà plus robuste que le système de fichiers btrfs de longue date. Il affirme que son approche de développement, bien que différente des normes établies du noyau, a été efficace pour atteindre ces progrès.
Réponse des autres utilisateurs
Un utilisateur, Carl E. Thompson, a proposé une perspective sur la situation, suggérant que bcachefs devrait être déplacé vers un modèle de développement hors arbre pour le moment. Cela, a-t-il soutenu, permettrait à Overstreet de maintenir le rythme de développement souhaité tout en offrant aux utilisateurs plus de flexibilité dans le choix des combinaisons de noyau et de système de fichiers.
Thompson a également noté des cas où les mises à jour de bcachefs ont introduit des régressions qui ont affecté sa capacité à utiliser les noyaux candidats à la publication. Il a souligné un exemple spécifique où les problèmes signalés avec bcachefs dans les noyaux 6.12-rc l'ont rendu hésitant à acheter un nouvel ordinateur portable nécessitant cette version du noyau.
Il a en outre remis en question la position d'Overstreet sur la stabilité des noyaux candidats à la sortie, suggérant un décalage dans leur compréhension de ce que signifie « candidat à la sortie ».
Overstreet a reconnu les commentaires de Thompson, en particulier concernant les régressions rencontrées. Il a exprimé sa surprise quant à l'ampleur de ces problèmes et a demandé des informations détaillées pour améliorer les tests de régression pour bcachefs.
Theodore Ts'o, un autre développeur important du noyau Linux, a rejoint la conversation pour réfuter l'affirmation d'Overstreet selon laquelle l'implication de la communauté dans les tests automatisés des systèmes de fichiers serait limitée.
Il a mis en avant les frameworks de tests existants comme {kvm,gce,android}-xfstests et kdevops, qui sont disponibles pour que d'autres développeurs les utilisent et ont reçu des contributions de diverses personnes.
Overstreet a répondu en déclarant que les systèmes de test de Ts'o n'étaient pas accessibles publiquement à la communauté élargie et manquaient d'un tableau de bord centralisé ou d'une configuration d'intégration continue. Il a réitéré sa conviction de la nécessité d'une solution de test standardisée que tout le monde pourrait utiliser, en soulignant ses efforts pour créer un tel système.
Nous ne savons pas comment ce conflit va se terminer
L'échange animé entre Torvalds et Overstreet met en lumière les complexités de la gestion de grands projets open-source et l'équilibre délicat entre les contributions individuelles et la collaboration communautaire.
Il reste à voir comment ce conflit sera résolu et quel impact il aura sur le développement futur et l'intégration de bcachefs dans le noyau Linux principal.
Espérons que tout ira mieux à la fin !
Vous pouvez lire la conversation complète entre Linus et Kent ainsi que d'autres développeurs dans le lien suivant :
- https://lore.kernel.org/all/172816780614.3194359.10913571563159868953.pr-tracker-bot@kernel.org/T/#t