4. Het probleemrapport schrijven

Nu u besloten heeft dat uw probleem een probleemrapport verdiend, en het een probleem met FreeBSD is, is het tijd om het eigenlijke probleemrapport te schrijven. Voordat het mechanisme van het programma dat gebruikt wordt om PR's aan te maken en in te sturen wordt behandeld, zijn hier wat tips en trucs die ervoor zorgen dat uw PR het meest effectief is.

4.1. Tips en trucs voor het schrijven van een goed probleemrapport

4.2. Voordat u begint

Als u het programma send-pr(1) gebruikt, zorg er dan voor dat uw omgevingsvariabele VISUAL (of EDITOR als VISUAL niet is ingesteld) op iets zinnigs is ingesteld.

U dient er ook zeker van te zijn dat het afleveren van mail goed werkt. send-pr(1) gebruikt mailberichten voor het insturen en volgen van probleemrapporten. Als u geen mailberichten kunt posten op de machine waarop u send-pr(1) draait, zal uw probleemrapport de GNATS-database niet bereiken. Zie voor details over het opzetten van mail op FreeBSD het hoofdstuk “Elektronische post” van het FreeBSD Handboek op http://www.FreeBSD.org/doc/nl_NL.ISO8859-1/books/handbook/mail.html.

Verzeker u ervan dat uw mailprogramma het bericht onderweg naar GNATS niet vermangelt. In het bijzonder zal elke patch die u instuurt onbruikbaar worden, als uw mailer automatisch regels afbreekt, tabs in spaties verandert, of nieuwe-regel-tekens escapet. Voor de tekstgedeelten vragen wij u echter om handmatig regels rond de 70 tekens af te breken, zodat de webversie van het PR leesbaar is.

Dezelfde soort overwegingen gelden als u het webgebaseerde PR-instuurformulier in plaats van send-pr(1) gebruikt. Merk op dat knip-en-plakbewerkingen hun eigen bijwerkingen op tekstopmaak kunnen hebben. In bepaalde gevallen kan het nodig zijn om uuencode(1) te gebruiken om er zeker van te zijn dat patches ongewijzigd aankomen.

Ten slotte, als uw inzending lang is, dient u uw werk offline voor te bereiden zodat er niets verloren gaat indien er zich een probleem met het inzenden ervan voordoet. Dit kan in het bijzonder een probleem zijn met het webformulier.

4.3. Patches of bestanden bijvoegen

Het volgende geldt voor het versturen van PR's via email:

Het programma send-pr(1) heeft voorzieningen voor het bijvoegen van bestanden aan een probleemrapport. U kunt zoveel bestanden bijvoegen als u wilt op voorwaarde dat elk bestand een unieke basisnaam (i.e., de naam van het bestand zelf, zonder het pad) heeft. Gebruik de opdrachtregeloptie -a om de namen van de bij te voegen bestanden te specificeren:

% send-pr -a /var/run/dmesg -a /tmp/fouten

Maakt u zich geen zorgen over binaire bestanden, deze worden automatisch gecodeerd zodat ze de mail-agent niet verontrusten.

Als u een patch bijvoegt, gebruik dan de optie -c of -u van diff(1) om een context- of verenigde diff (verenigd is geprefereerd) aan te maken, en zorg ervoor dat u de exacte revisienummers uit SVN specificeert van de bestanden die u heeft gewijzigd zodat de ontwikkelaars die uw rapport lezen ze gemakkelijk kunnen toepassen. Voor problemen met de kernel of de basisgereedschappen is een patch tegen FreeBSD-CURRENT (de Subversion-tak HEAD) geprefereerd aangezien alle nieuwe code eerst daar toegepast en getest dient te worden. Nadat het voldoende of substantieel is getest, wordt de code samengevoegd of gemigreerd naar de tak FreeBSD-STABLE.

Als u een patch inline in plaats van als bijlage bijvoegt, merk dan op dat het meest voorkomende probleem de neiging is van sommige email-programma's om tabs als spaties weer te geven, wat alles dat bedoeld was als deel van een Makefile volledig ruineert.

Stuur geen patches als bijlagen door gebruik te maken van Content-Transfer-Encoding: quoted-printable. Dit zal karakter-escaping uitvoeren en de gehele patch waardeloos maken.

Merk ook op dat hoewel het over het algemeen goed is om kleine patches in een PR op te nemen—in het bijzonder als ze het probleem dat in het PR beschreven is oplossen—grote patches en in het bijzonder nieuwe code waarvoor substantiële review nodig kan zijn voordat het gecommit wordt op een web- of FTP-server geplaatst dient te worden, en de URL in plaats van de patch bij het PR gevoegd dient te worden. Patches in email hebben de neiging om gemangeld te worden, in het bijzonder wanneer GNATS erbij betrokken is, en hoe groter de patch, des te moeilijker het is voor geïnteresseerde partijen om het te ontrafelen. Ook stelt het posten van een patch op het web u in staat om het te wijzigen zonder dat het nodig is om de gehele patch opnieuw in te zenden als een vervolgbericht op het originele PR. Ten slotte vergroten grote patches simpelweg de omvang van de database, aangezien gesloten PR's niet worden verwijderd maar in plaats daarvan worden bewaard en simpelweg als closed worden gemarkeerd.

U dient ook te weten dat tenzij u het expliciet in uw PR of in de patch zelf vermeld, dat van alle patches die u instuurt wordt aangenomen dat ze onder dezelfde licentietermen vallen als het originele bestand dat u heeft gewijzigd.

4.4. Het sjabloon invullen

De volgende sectie heeft alleen betrekking op de email-methode:

Wanneer u send-pr(1) draait, wordt er een sjabloon aan u gepresenteerd. Het sjabloon bestaat uit een lijst met velden, waarvan sommige al zijn ingevuld, en waarvan bij anderen staat uitgelegd wat de bedoeling is of wat acceptabele waarden zijn. Maakt u zich geen zorgen over het commentaar, deze worden automatisch verwijderd wanneer u ze niet wijzigt of ze zelf verwijdert.

Bovenaan het sjabloon, onder de regels met SEND-PR:, staan de email-koppen. U hoeft deze normaalgesproken niet te wijzigen, tenzij u het probleemrapport vanaf een machine of account verstuurt die wel mail kan versturen maar niet kan ontvangen; in dat geval wilt u waarschijnlijk de velden From: en Reply-To: op uw echte emailadres instellen. U kunt uzelf (of iemand anders) een carbonkopie van het probleemrapport versturen door één of meer emailadressen aan de kop Cc: toe te voegen.

Alleen in het email-sjabloon vindt u de volgende velden van één regel:

De volgende sectie beschrijft velden die zowel in de email-interface als in de webinterface voorkomen:

Ten slotte zijn er een aantal meerregelige velden:

4.5. Het probleemrapport versturen

Als u send-pr(1) gebruikt:

Als u klaar bent met het invullen van het sjabloon, het heeft opgeslagen, en uw tekstverwerker verlaten heeft, zal send-pr(1) u de prompt s)end, e)dit or a)bort? tonen. U kunt dan s aanslaan om het probleemrapport in te sturen, e aanslaan om de tekstverwerker te herstarten en verdere wijzigingen te maken, of a aanslaan om te stoppen. Als u het laatste kiest, blijft uw probleemrapport bewaard op schijf (send-pr(1) vertelt u de bestandsnaam voordat het eindigt), zodat u het rustig kunt bewerken, of het misschien over kunt plaatsen naar een systeem met een betere netverbinding, voordat u het met de optie -f van send-pr(1) verstuurt:

% send-pr -f ~/mijn-probleemrapport

Dit leest het gespecificeerde bestand, controleert de geldigheid van de inhoud, verwijdert commentaar en verstuurt het.

Als u het webformulier gebruikt:

Voordat u op submit drukt, moet u een veld invullen waarin tekst staat dat als afbeelding op de pagina wordt weergegeven. Deze ongelukkige maatregel moest worden genomen vanwege het misbruik door geautomatiseerde systemen en enkele kwaadwillige gebruikers. Het is noodzakelijk kwaad dat niemand leuk vindt; vraag ons alstublieft niet om het te verwijderen.

Merk op dat u ten zeerste wordt aangeraden om uw werk ergens op te slaan voordat u op submit drukt. Een veelvoorkomend probleem voor gebruikers is dat hun webbrowser een verouderde afbeelding uit de cache laat zien. Als u dit overkomt, wordt uw inzending geweigerd en kan u uw werk verliezen.

Als u om een bepaalde reden geen afbeeldingen kunt bekijken, en u ook send-pr(1) niet kunt gebruiken, accepteer dan alstublieft onze verontschuldigingen voor het ongemak en email uw probleemrapport naar het bugbuster-team op .