Comment le projet Linux Kernel a-t-il suivi les bugs dans les premiers jours?

Nous soaps tous que Linus Torvalds a créé Git en raison de problèmes avec Bitkeeper. Ce qui n'est pas connu (au less pour moi) est, comment les problèmes / tickets / bugs ont-ils été suivis jusqu'alors? J'ai essayé mais je n'ai rien trouvé d'intéressant. La seule discussion que j'ai pu avoir sur le sujet était celle où Linus partageait les inquiétudes concernant l'utilisation de Bugzilla .

Spéculation: – Le moyen le plus facile pour les gens de suivre les bugs dans la phase initiale aurait été de mettre des tickets dans une twig à part, mais je suis sûr que très rapidement cela n'aurait pas mis à l'échelle avec le bruit surpassant les bons bugs.

J'ai vu et utilisé Bugzilla et à less que vous ne connaissiez les bons mots-keys, vous serez parfois perplexe. NOTE: Je m'intéresse particulièrement aux premières années (1991-1995) quant à la façon dont ils ont utilisé pour suivre les problèmes.

J'ai regardé ce fil intitulé: " Kernel SCM saga .. " mais aucun de ceux-ci n'a mentionné le suivi des bogues du kernel dans les premiers jours.

J'ai cherché autour et je n'ai pas pu get de logiciel de suivi des bogues FOSS qui était là en 1991-1992. Bugzilla, Request-tracker, et d'autres sont venus beaucoup plus tard, donc ils semblent être sortis.

Questions keys

  1. Comment Linus, le sous-système-mainteneur et les users ont-ils signalé et suivi les bogues à l'époque?
  2. Ont-ils utilisé un logiciel de suivi des bogues, créé une twig de bogues et posé des questions et des discussions sur le bogue (ce qui serait coûteux et douloureux) ou simplement utiliser le courrier électronique.
  3. Beaucoup plus tard, Bugzilla est venu (première version 1998) et cela semble être le principal moyen de signaler les bugs par la suite .

Dans l'attente d'avoir une image plus claire de la façon dont les choses ont été faites dans les vieux jours.

Au début, si vous aviez quelque chose à consortingbuer (un patch ou un rapport de bug), vous l'avez envoyé à Linus. Cela a évolué en l'envoyant à la list (qui était [email protected] avant que kernel.org été créé).

Il n'y avait pas de contrôle de version. De time en time, Linus a mis une archive sur le server FTP. C'était l'équivalent d'un "tag". Les outils disponibles au début étaient RCS et CVS, et Linus déteste ceux-ci, donc tout le monde a juste posté des correctifs. ( Linus explique pourquoi il ne voulait pas utiliser CVS.)

Il y avait d'autres systèmes propriétaires de contrôle de version de Bitkeeper, mais le développement décentralisé et basé sur le bénévolat de Linux rendait impossible leur utilisation. Une personne au hasard qui vient de find un bogue n'enverra jamais un correctif si elle doit passer par un système de contrôle de version propriétaire avec des licences commençant par des milliers de dollars.

Bitkeeper a surmonté ces deux problèmes: il n'était pas centralisé comme CVS, et bien que ce ne soit pas un logiciel libre, les consortingbuteurs du kernel étaient autorisés à l'utiliser sans payer. Cela fait assez bon pendant un certain time.

Même avec le développement basé sur Git d'aujourd'hui, les lists de diffusion sont toujours là où l'action est. Lorsque vous voulez consortingbuer, vous le préparerez avec git bien sûr, mais vous devrez en discuter sur la list de diffusion pertinente avant de merge. Bugzilla est là pour regarder «professionnel» et absorber les rapports de bogue à moitié cuits de personnes qui ne veulent pas vraiment s'impliquer.

Pour voir certaines des anciennes instructions de rapport de bogue, récupérez le référentiel Linux historique . (Il s'agit d'un référentiel git contenant toutes les versions d'avant git, il contient pour l'essentiel une commit par version puisqu'il a été reconstruit à partir des archives tar). Les files d'intérêt include README , MAINTAINERS et REPORTING-BUGS .

Une des choses intéressantes que vous pouvez find ici est celle du Linux-0.99.12 README:

  - if you have problems that seem to be due to kernel bugs, please mail them to me ([email protected]), and possibly to any other relevant mailing-list or to the newsgroup. The mailing-lists are useful especially for SCSI and NETworking problems, as I can't test either of those personally anyway. 

Les process utilisaient des groupes de nouvelles (USENET) et (principalement) des courriels. Un bug "existait" comme un fil, mettant " [BUG REPORT] " ou " LINUX BUG REPORT " dans le sujet était une convention commune. Il n'y avait pas d'ID de bogue. Compte tenu de la base d'users typique, un rapport de bug est souvent fourni avec un correctif. Il y avait un outil logiciel oublié depuis longtime: ibug (voir ci-dessous), autre que ce diff + patch .

Depuis l' installation et la mise en route de Linux (janvier 1994, version archivée v2.0) >

 2.6 The Design and Philosophy of Linux When new users encounter Linux, they often have a few misdesigns and false expectations of the system. Linux is a unique operating system, and it is important to understand its philosophy and design in order to use it effectively. Time enough for a soapbox. Even if you are an aged UNIX guru, what follows is probably of interest to you. In commercial UNIX development houses, the entire system is devel- oped with a rigorous policy of quality assurance, source and revision control systems, documentation, and bug reporting and resolution. [...] With Linux, you can throw out the entire concept of organized development, source control systems, structured bug reporting, or sta- tistical analysis. Linux is, and more than likely always will be, a hacker's operating system.(4) [...] For the most part, the Linux community communi- cates via various mailing lists and USENET newsgroups. A number of con- ventions have sprung up around the development effort: for example, any- one wishing to have their code included in the ``official'' kernel should mail it to Linus Torvalds, which he will test and include in the kernel [...] 

1992

Voici un rapport de bug et une correction de décembre 1992 (0.98.6) sur comp.os.linux: https://groups.google.com/d/topic/comp.os.linux/TwPA00rZMJo/discussion

Très tôt, il y avait une list d'email ml-linux-bugs (1992/1993), à partir de cette première FAQ de la dissortingbution Slackware 1.01:

VI.01) Il semble que $ # @! scopes sur Linux ne fonctionnent pas correctement, que dois-je faire pour signaler des bogues?

[…] Notez que ma list de rapports de bogues "[email protected]" a été supprimée. Il s'avère que Linux a si peu de bugs, dont la plupart sont résolus sur le newsgroup ou via Linus avant que je puisse les accumuler et postr. 🙂 En résumé: s'il y a un bogue dans Linux ou dans un logiciel sous Linux, il sera généralement corrigé dans le prochain niveau de patch ou version.

Il y avait la list de courrier électronique «linux-kernel» (qui fonctionnait sur le vger original), les groupes de discussion alt.os.linux, puis comp.os.linux (qui se sont rapidement divisés en une hiérarchie en 1993 ).

Cette première FAQ Linux (v1.11 nov 1992) de comp.os.linux suggère également d'envoyer directement à Linus.

En 1992, Matt Welsh ( Linux , Linux Bible , TLDP ) annonçait ibug pour aider à générer des rapports de bugs par e-mail (ironiquement, on ne pouvait pas faire ça sur Linux à ce moment-là car il manquait de réseau pour pouvoir envoyer un email).

Un model de rapport de bogue d' email linux.temp été périodiquement posté sur comp.os.linux aussi, et les mises à jour d'un rapport de bogue ont eu un model de mise à jour linux.fix.temp .

Il y avait aussi un référentiel de correctifs (FTP) , pour autant que je sache que c'était surtout (pas exclusivement) pour les correctifs aux programmes de portage vers Linux.

1993-1994

Copies CVS de la source du kernel étaient communs, le plus tôt je peux find est de Dirk Steinberg, de l'ère kernal-0.99.14. La première annonce que je peux find est de janvier 1993 sur les activistes de Linux. Vous pouvez toujours find des copys archivées (1994) . Dirk a également maintenu les binarys cvs et la source libc dans CVS.

CVS n'a pas été utilisé pour suivre les bogues dans le sens contemporain, certains développeurs ont préféré l'utiliser, et les correctifs ont souvent été soumis sous la forme de diffs cvs générés.

1995-1996

À peu près à ce moment (Oct 1995) David S. Miller a commencé à utiliser CVS pour le port SPARC du kernel Linux ( le port Linux / SPARC ). En février 1996, plusieurs autres développeurs du kernel utilisaient indépendamment CVS pour garder une trace des patches, de linux-kernel ce fil et ce fil : Alan Cox, Stephen Tweedie, Kai Henningsen. (Le deuxième fil rapporte Russ Nelson indiquant l'aversion de Linus de première main à CVS.)

1997-1998

En avril 1998, peu de time après la naissance du deuxième enfant de Linus, la question de CVS est revenue, de linux-kernel voir ce sous-thread (Linus réitère ses préoccupations directement sur CVS).

En décembre 1997, Andrew Tridgell a lancé jitterbug , un outil de suivi des bogues basé sur le Web. En juin 1998, les «patchs linux» JitterBug étaient préconisés sur le kernel Linux par Alan Cox . Pour autant que je sache, le premier système de suivi de bogues utilisé par Linus et d'autres développeurs keys, malheureusement l'instance "linux-patches" n'est plus en ligne.

En septembre 1998, Bitkeeper est d'abord promu sur le kernel Linux par Larry McEvoy.

1999 et plus tard

En 1999/2000, la FAQ lkml a commencé à referencer (Q 1-16) à l'arborescence CVS sur l'original (vger). Cela a été maintenu à l'époque par Andrew Tridgell.

En décembre 2001, Jitterbug était tombé en disgrâce, voir Linus, Alan Cox et beaucoup d'autres impliqués dans la discussion sur ce sujet.

En janvier 2002, Linus a commencé à s'intéresser à bitkeeper (déjà utilisé par l'équipe du kernel Linux PowerPC).

En février 2002, Linus a commencé à utiliser Bitkeeper pour l'arborescence de développement 2.5.

En novembre 2002, OSDL hébergeait Linux Bugzilla pour l'arborescence 2.5 a été annoncé . (Si vous n'avez pas encore lu le lien bugzilla dans la question, allez le lire maintenant, il contient des ronds Linus).

En avril 2005, Linus a annoncé un départ de BitKeeper , à peu près au moment où il a d'abord mentionné git par son nom . Peu de time après que git est devenu capable d'auto-hébergement , Linus a cessé d'utiliser BitKeeper et a commencé à utiliser git pour le kernel.

En décembre 2008, le logiciel de suivi des patchs Patchwork pour linux-kernel a été annoncé , il s'agit d'un outil de suivi des correctifs basé sur le Web, compatible SCCS, qui s'intègre aux lists de diffusion pour suivre les correctifs et les suivis. Son utilisation continue à ce jour, il y a environ 40 lists suivies de cette façon sur https://patchwork.kernel.org/ , mais toutes ne sont pas actives.

Les references

Références utiles:

Je peux dire comment le rapport d'erreurs est géré pour le développement de git lui-même.

Ils n'utilisent aucun logiciel de suivi des bogues. Les bogues sont signalés et discutés sur la list de diffusion de développement . C'est peut-être surprenant, mais ça marche très bien.

La question ou la proposition d'utiliser un logiciel de suivi des bogues revient souvent, de sorte que vous pouvez en apprendre beaucoup sur la search dans les archives des lists de diffusion git.

Il ne s'agit pas de "nous n'avons pas encore trouvé un traqueur de bogue qui soit assez bon";
Mais il ne s'agit pas non plus de "nous avons une méthode supérieure" non plus.

Avec cette méthode, le mainteneur du projet ou du sous-projet – quelque chose comme un développeur principal – a un rôle important en tant que modérateur informel de la list de développement.
La gestion des bogues en fait partie et il ne semble pas être une tâche banale de gérer les bogues de cette façon; Cela dépend certainement des compétences des personnes dans ce rôle.

La partie la plus formelle de la méthode est un message de synthèse d'état hebdomadaire.
Il répertorie les choses en cours sur les différentes twigs comme des éléments courts. Pour en savoir plus sur le développement de git, reportez-vous au groupe de discussion gmane.comp.version-control.git miroir de la list de diffusion: Qu'est-ce qui cuit dans git.git

Ce que je peux dire avec certitude: Si vous avez un mainteneur qui est bon à cela, cela fonctionne très bien.
Par exemple, je serais très surpris si l'introduction d'un traqueur de bogues avait un effet positif sur la productivité des fonctionnalités implémentées et de la qualité, même à long terme après l'amortissement des frais généraux du changement.

Pour le kernel Linux, c'est comme si c'était fait pour git, jusqu'à aujourd'hui.
Les lists de diffusion de développement pour le développement du kernel Linux sont certainement importantes. Mais ce n'est pas une list comme un lieu central comme avec git. Il existe des lists séparées pour les sous-rubriques, comme les filesystems ou la mise en réseau.
Comme il existe des sujets distincts gérés par des développeurs essentiellement distincts, il est possible que certains groupes utilisent des outils localement pour leur groupe.