{"title":"Bedömning av ärenden","version":"5.2","locale":"sv","docname":"internals/contributing/triaging-tickets","url":"/sv/5.2/internals/contributing/triaging-tickets/","canonical":"https://djangodocs.dev/sv/5.2/internals/contributing/triaging-tickets/","summary":"Django använder Trac för att hantera arbetet med kodbasen. Trac är en trädgård som sköts av gemenskapen med de buggar som folk har hittat och de funktioner…","html":"<h1>Bedömning av ärenden<a class=\"heading-anchor\" href=\"#triaging-tickets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Django använder <a class=\"reference external\" href=\"https://code.djangoproject.com/\">Trac</a> för att hantera arbetet med kodbasen. Trac är en trädgård som sköts av gemenskapen med de buggar som folk har hittat och de funktioner som Django har beslutat att lägga till. Som i alla trädgårdar finns det ibland ogräs som ska rensas bort och ibland blommor och grönsaker som behöver plockas. Vi behöver din hjälp för att skilja det ena från det andra, och i slutändan gynnas vi alla tillsammans.</p>\n<p>Precis som i alla trädgårdar kan vi sträva efter perfektion, men i verkligheten finns det inget sådant. Även i den mest orörda trädgård finns det fortfarande sniglar och insekter. I en gemensam trädgård finns det också hjälpsamma människor som - med de bästa avsikter - gödslar ogräset och förgiftar rosorna. Det är hela samhällets uppgift att sköta sig självt, hålla problemen på ett minimum och utbilda dem som kommer in i gemenskapen så att de kan bli värdefulla bidragande medlemmar.</p>\n<p>På samma sätt, även om vi strävar efter att Trac ska vara en perfekt representation av Djangos framsteg, erkänner vi att detta inte kommer att hända. Genom att distribuera belastningen av Trac-underhåll till gemenskapen accepterar vi att det kommer att finnas misstag. Trac är ”mestadels korrekt”, och vi tar hänsyn till det faktum att det ibland kommer att vara fel. Det är helt okej. Vi är perfektionister med deadlines.</p>\n<p>Vi förlitar oss på att gemenskapen fortsätter att delta, håller ärenden så korrekta som möjligt och tar upp frågor för diskussion på <a class=\"reference external\" href=\"https://forum.djangoproject.com/\">Django Forum</a> när det finns förvirring eller oenighet.</p>\n<p>Django är ett gemenskapsprojekt och alla bidrag hjälper till. Vi kan inte göra det här utan <strong>dig</strong>!</p>\n<section id=\"triage-workflow\">\n<h2>Arbetsflöde för triagering<a class=\"heading-anchor\" href=\"#triage-workflow\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Tyvärr innehåller inte alla rapporter i ärendehanteraren alla <a class=\"reference internal\" href=\"/sv/5.2/internals/contributing/bugs-and-features/\"><span class=\"doc\">nödvändiga detaljer</span></a>. Ett antal ärenden har föreslagna lösningar, men dessa uppfyller inte nödvändigtvis alla krav <a class=\"reference internal\" href=\"/sv/5.2/internals/contributing/writing-code/submitting-patches/#patch-style\"><span class=\"std std-ref\">att följa riktlinjerna för att bidra</span></a>.</p>\n<p>Ett sätt att hjälpa till är att <em>trimma</em> ärenden som har skapats av andra användare.</p>\n<p>Det mesta av arbetsflödet är baserat på konceptet med en ärendes <a class=\"reference internal\" href=\"#triage-stages\"><span class=\"std std-ref\">triage stages</span></a>. Varje steg beskriver var i sin livstid ett visst ärende befinner sig vid varje tidpunkt. Tillsammans med en handfull flaggor berättar detta attribut enkelt för oss vad och vem varje ärende väntar på.</p>\n<p>Eftersom en bild säger mer än tusen ord börjar vi där:</p>\n<a class=\"reference internal image-reference\" href=\"../../../../../../_images/triage_process.svg\"><img alt=\"Djangos arbetsflöde för ärendehantering\" src=\"/sv/5.2/_images/triage_process.svg\" style=\"width: 600px; height: 750px;\" />\n</a>\n<p>Vi har två roller i det här diagrammet:</p>\n<ul class=\"simple\">\n<li><p>Sammanslagare: personer med commit-åtkomst som är ansvariga för att fatta det slutliga beslutet att slå samman en ändring.</p></li>\n<li><p>Ticket triagers: alla i Django-gemenskapen som väljer att engagera sig i Djangos utvecklingsprocess. Vår Trac-installation är avsiktligt öppen för allmänheten, och vem som helst kan triagera ärenden. Django är ett gemenskapsprojekt, och vi uppmuntrar <a class=\"reference internal\" href=\"#how-can-i-help-with-triaging\"><span class=\"std std-ref\">triage by the community</span></a>.</p></li>\n</ul>\n<p>Som ett exempel ser vi här livscykeln för ett genomsnittligt ärende:</p>\n<ul class=\"simple\">\n<li><p>Alice skapar ett ärende och skickar en ofullständig pull request (inga tester, felaktig implementering).</p></li>\n<li><p>Bob granskar pull request, markerar ärendet som ”Accepted”, ”needs tests” och ”patch needs improvement” och lämnar en kommentar där han berättar för Alice hur patchen kan förbättras.</p></li>\n<li><p>Alice uppdaterar pull request och lägger till tester (men ändrar inte implementeringen). Hon tar bort de två flaggorna.</p></li>\n<li><p>Charlie granskar pull request och återställer flaggan ”patch needs improvement” med ytterligare en kommentar om att förbättra implementeringen.</p></li>\n<li><p>Alice uppdaterar pull request och fixar implementeringen. Hon tar bort flaggan ”patch needs improvement”.</p></li>\n<li><p>Daisy granskar pull request och markerar ärendet som ”Redo för incheckning”.</p></li>\n<li><p>Jacob, en <a class=\"reference internal\" href=\"/sv/5.2/internals/organization/#mergers-team\"><span class=\"std std-ref\">merger</span></a>, granskar pull request och slår samman den.</p></li>\n</ul>\n<p>Vissa ärenden kräver mycket mindre feedback än så, men vissa ärenden kräver å andra sidan mycket mer.</p>\n</section>\n<section id=\"triage-stages\">\n<span id=\"id1\"></span><h2>Triage-stadier<a class=\"heading-anchor\" href=\"#triage-stages\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Nedan beskriver vi mer i detalj de olika steg som ett ärende kan gå igenom under sin livstid.</p>\n<section id=\"unreviewed\">\n<h3>Ej Recenserade<a class=\"heading-anchor\" href=\"#unreviewed\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ärendet har inte granskats av någon som känner sig kvalificerad att göra en bedömning om huruvida ärendet innehöll en giltig fråga eller borde stängas av någon av de olika anledningarna.</p>\n</section>\n<section id=\"accepted\">\n<h3>Accepterad<a class=\"heading-anchor\" href=\"#accepted\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Den stora gråzonen! Den absoluta innebörden av ”accepterad” är att det problem som beskrivs i ärendet är giltigt och befinner sig i något skede av arbetet. Utöver detta finns det flera överväganden:</p>\n<ul>\n<li><p><strong>Accepterat + Inga flaggor</strong></p>\n<p>Ärendet är giltigt, men ingen har skickat in en patch för det ännu. Ofta innebär detta att du kan börja skriva en fix för den. Detta är i allmänhet mer sant för accepterade buggar än accepterade funktioner. Ett ärende för en bugg som har accepterats innebär att problemet har verifierats av minst en triager som en legitim bugg - och bör förmodligen åtgärdas om möjligt.</p>\n<p>För nya funktioner bör accepterade ärenden endast existera efter att idén har gått igenom den lämpliga <a class=\"reference internal\" href=\"/sv/5.2/internals/contributing/bugs-and-features/#requesting-features\"><span class=\"std std-ref\">processen för att föreslå nya funktioner</span></a> och fått godkännande av gemenskapen och <a class=\"reference internal\" href=\"/sv/5.2/internals/organization/#steering-council\"><span class=\"std std-ref\">Steering Council</span></a>, eller accepterats i en DEP.</p>\n</li>\n<li><p><strong>Accepterad + Har Patch</strong></p>\n<p>Ärendet väntar på att folk ska granska den medföljande lösningen. Detta innebär att ladda ner patchen och prova den, verifiera att den innehåller tester och dokument, köra testsviten med den medföljande patchen och lämna feedback på ärendet.</p>\n</li>\n<li><p><strong>Accepted + Has Patch + Needs …</strong></p>\n<p>Detta innebär att ärendet har granskats och att det har konstaterats att det behöver ytterligare arbete. ”Behöver testas” och ”Behöver dokumenteras” är självförklarande. ”Patch needs improvement” åtföljs i allmänhet av en kommentar i ärendet som förklarar vad som behövs för att förbättra koden.</p>\n</li>\n</ul>\n</section>\n<section id=\"ready-for-checkin\">\n<h3>Redo för incheckning<a class=\"heading-anchor\" href=\"#ready-for-checkin\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ärendet granskades av någon annan medlem av gemenskapen än den person som levererade patchen och ansågs uppfylla alla krav för ett commit-ready bidrag. En <a class=\"reference internal\" href=\"/sv/5.2/internals/organization/#mergers-team\"><span class=\"std std-ref\">fusion</span></a> måste nu genomgå en sista granskning innan den kan skickas in.</p>\n<p>Det finns många pull requests. Det kan ta ett tag för din patch att bli granskad. Se <a class=\"reference internal\" href=\"/sv/5.2/faq/contributing/#new-contributors-faq\"><span class=\"std std-ref\">Bidra med kod FAQ</span></a> för några idéer här.</p>\n</section>\n<section id=\"someday-maybe\">\n<h3>En dag/kanske<a class=\"heading-anchor\" href=\"#someday-maybe\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Detta steg visas inte i diagrammet. Det används sparsamt för att hålla reda på långsiktiga förändringar.</p>\n<p>Dessa ärenden är ovanliga och generellt sett mindre användbara eftersom de inte beskriver konkreta problem som kan åtgärdas.</p>\n</section>\n</section>\n<section id=\"other-triage-attributes\">\n<h2>Andra triageattribut<a class=\"heading-anchor\" href=\"#other-triage-attributes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Ett antal flaggor, som visas som kryssrutor i Trac, kan ställas in på ett ärende:</p>\n<section id=\"has-patch\">\n<h3>Har lapp<a class=\"heading-anchor\" href=\"#has-patch\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Detta innebär att ärendet har en associerad lösning. Dessa kommer att granskas för att säkerställa att de följer <a class=\"reference internal\" href=\"/sv/5.2/internals/contributing/writing-code/submitting-patches/\"><span class=\"doc\">dokumenterade riktlinjer</span></a>.</p>\n<p>De följande tre fälten (Behöver dokumentation, Behöver tester, Patch behöver förbättras) gäller endast om en patch har levererats.</p>\n</section>\n<section id=\"needs-documentation\">\n<h3>Behov av dokumentation<a class=\"heading-anchor\" href=\"#needs-documentation\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Den här flaggan används för ärenden med korrigeringar som behöver tillhörande dokumentation. Fullständig dokumentation av funktioner är en förutsättning för att vi ska kunna checka in dem i kodbasen.</p>\n</section>\n<section id=\"needs-tests\">\n<h3>Behov av tester<a class=\"heading-anchor\" href=\"#needs-tests\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Detta flaggar för att patchen behöver associerade enhetstester. Återigen, detta är en obligatorisk del av ett giltigt bidrag.</p>\n</section>\n<section id=\"patch-needs-improvement\">\n<h3>Patch behöver förbättras<a class=\"heading-anchor\" href=\"#patch-needs-improvement\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Den här flaggan betyder att även om ärendet <em>har</em> en lösning, är den inte riktigt redo för incheckning. Det kan betyda att patchen inte längre tillämpas korrekt, att det finns ett fel i implementeringen eller att koden inte uppfyller våra standarder.</p>\n</section>\n<section id=\"easy-pickings\">\n<h3>Lätt att välja<a class=\"heading-anchor\" href=\"#easy-pickings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ärenden som skulle kräva små, enkla förändringar.</p>\n</section>\n<section id=\"type\">\n<h3>Typ<a class=\"heading-anchor\" href=\"#type\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ärenden bör kategoriseras efter <em>typ</em> mellan:</p>\n<ul class=\"simple\">\n<li><dl class=\"simple\">\n<dt>Ny funktion</dt><dd><p>För att du tillför något nytt.</p>\n</dd>\n</dl>\n</li>\n<li><dl class=\"simple\">\n<dt>Insekt</dt><dd><p>För när en befintlig sak är trasig eller inte beter sig som förväntat.</p>\n</dd>\n</dl>\n</li>\n<li><dl class=\"simple\">\n<dt>Uppstädning/optimering</dt><dd><p>För när inget är trasigt men något kan göras renare, bättre, snabbare, starkare.</p>\n</dd>\n</dl>\n</li>\n</ul>\n</section>\n<section id=\"component\">\n<h3>Komponent<a class=\"heading-anchor\" href=\"#component\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ärenden bör klassificeras i <em>komponenter</em> som indikerar vilket område av Django-kodbasen de tillhör. Detta gör att ärendena blir bättre organiserade och lättare att hitta.</p>\n</section>\n<section id=\"severity\">\n<h3>Allvarlighetsgrad<a class=\"heading-anchor\" href=\"#severity\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Attributet <em>severity</em> används för att identifiera blockerare, det vill säga problem som bör åtgärdas innan nästa version av Django släpps. Vanligtvis är dessa problem buggar som orsakar regressioner från tidigare versioner eller potentiellt orsakar allvarliga dataförluster. Detta attribut används ganska sällan och de allra flesta ärenden har en allvarlighetsgrad på ”Normal”.</p>\n</section>\n<section id=\"version\">\n<h3>Version<a class=\"heading-anchor\" href=\"#version\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Det är möjligt att använda attributet <em>version</em> för att ange i vilken version den rapporterade felaktigheten identifierades.</p>\n</section>\n<section id=\"ui-ux\">\n<h3>UI/UX<a class=\"heading-anchor\" href=\"#ui-ux\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Den här flaggan används för ärenden som rör frågor om användargränssnitt och användarupplevelser. Den här flaggan skulle till exempel vara lämplig för användarvänliga funktioner i formulär eller administratörsgränssnittet.</p>\n</section>\n<section id=\"cc\">\n<h3>Cc<a class=\"heading-anchor\" href=\"#cc\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Du kan lägga till ditt användarnamn eller din e-postadress i det här fältet för att bli meddelad när nya bidrag görs till ärendet.</p>\n</section>\n<section id=\"keywords\">\n<h3>Nyckelord<a class=\"heading-anchor\" href=\"#keywords\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Med det här fältet kan du märka ett ärende med flera nyckelord. Det kan t.ex. vara användbart för att gruppera flera ärenden på samma tema. Nyckelord kan antingen separeras med kommatecken eller mellanslag. Nyckelordssökning hittar nyckelordssträngen var som helst i nyckelorden. Om du t.ex. klickar på ett ärende med nyckelordet ”form” får du fram liknande ärenden som är märkta med nyckelord som innehåller strängar som ”formset”, ”modelformset” och ”ManagementForm”.</p>\n</section>\n</section>\n<section id=\"closing-tickets\">\n<span id=\"id2\"></span><h2>Stänga ärenden<a class=\"heading-anchor\" href=\"#closing-tickets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>När ett ärende har avslutat sin användbara livscykel är det dags att stänga det. Att stänga ett ärende är dock ett stort ansvar. Du måste vara säker på att problemet verkligen är löst, och du måste komma ihåg att den som rapporterat ärendet kanske inte är glad över att få sitt ärende stängt (om det inte är åtgärdat!). Om du inte är säker på om du ska stänga ett ärende, lämna en kommentar med dina tankar istället.</p>\n<p>Om du stänger ett ärende bör du alltid kontrollera följande:</p>\n<ul class=\"simple\">\n<li><p>Försäkra dig om att problemet är löst.</p></li>\n<li><p>Lämna en kommentar med en förklaring till beslutet att stänga ärendet.</p></li>\n<li><p>Om det finns något sätt de kan förbättra ärendet för att öppna det igen, låt dem veta det.</p></li>\n<li><p>Om ärendet är en dubblett ska du hänvisa till det ursprungliga ärendet. Korsreferera också det stängda ärendet genom att lämna en kommentar i det ursprungliga ärendet - detta gör det möjligt att få tillgång till mer relaterad information om den rapporterade buggen eller den begärda funktionen.</p></li>\n<li><p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Var artig Ingen gillar att få sitt ärende avslutat. Det kan vara frustrerande eller till och med avskräckande. Det bästa sättet att undvika att avskräcka människor från att bidra till Django är att vara artig och vänlig och att ge förslag på hur de kan förbättra detta ärende och andra ärenden i framtiden.</p></li>\n</ul>\n<p>Ett ärende kan lösas på flera olika sätt:</p>\n<ul class=\"simple\">\n<li><dl class=\"simple\">\n<dt>fixerad</dt><dd><p>Används när en patch har rullats in i Django och problemet är åtgärdat.</p>\n</dd>\n</dl>\n</li>\n<li><dl class=\"simple\">\n<dt>ogiltig</dt><dd><p>Används om det visar sig att ärendet är felaktigt. Detta innebär att problemet i ärendet faktiskt är resultatet av ett användarfel, eller beskriver ett problem med något annat än Django, eller inte alls är en buggrapport eller funktionsbegäran (till exempel skickar vissa nya användare supportfrågor som ärenden).</p>\n</dd>\n</dl>\n</li>\n<li><dl class=\"simple\">\n<dt>wontfix</dt><dd><p>Används när någon beslutar att begäran inte är lämplig för övervägande i Django. Ibland stängs ett ärende som ”wontfix” med en begäran om att rapportören ska starta en diskussion på <a class=\"reference external\" href=\"https://forum.djangoproject.com/\">Django Forum</a> om de känner annorlunda än den motivering som ges av den person som stängde ärendet. Andra gånger föregås beslutet att stänga ett ärende av en diskussion. Använd alltid forumet för att få ett samförstånd innan du återöppnar ärenden som stängts som ”wontfix”.</p>\n</dd>\n</dl>\n</li>\n<li><dl class=\"simple\">\n<dt>duplicera</dt><dd><p>Används när ett annat ärende täcker samma fråga. Genom att stänga dubbla ärenden håller vi all diskussion på ett ställe, vilket är till hjälp för alla.</p>\n</dd>\n</dl>\n</li>\n<li><dl class=\"simple\">\n<dt>arbetar för</dt><dd><p>Används när ärendet inte innehåller tillräckligt med detaljer för att replikera den ursprungliga buggen.</p>\n</dd>\n</dl>\n</li>\n<li><dl class=\"simple\">\n<dt>behöver information</dt><dd><p>Används när ärendet inte innehåller tillräckligt med information för att replikera det rapporterade problemet, men fortfarande kan vara giltigt. Ärendet bör öppnas på nytt när mer information har lämnats.</p>\n</dd>\n</dl>\n</li>\n</ul>\n<p>Om du tror att ärendet stängdes av misstag - eftersom du fortfarande har problemet, eller det har dykt upp någon annanstans, eller triagerarna har gjort ett misstag - öppna ärendet igen och ge ytterligare information. Återigen, öppna inte ärenden som har markerats som ”wontfix” och ta med problemet till <a class=\"reference external\" href=\"https://forum.djangoproject.com/\">Django Forum</a> istället.</p>\n</section>\n<section id=\"how-can-i-help-with-triaging\">\n<span id=\"id3\"></span><h2>Hur kan jag hjälpa till med triagering?<a class=\"heading-anchor\" href=\"#how-can-i-help-with-triaging\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Triageprocessen drivs främst av medlemmar i gemenskapen. Verkligen, <strong>ALLA</strong> kan hjälpa till.</p>\n<p>Om du vill engagera dig kan du börja med att <a class=\"reference external\" href=\"https://www.djangoproject.com/accounts/password/reset/\">skapa ett konto på Trac</a>. Om du har ett konto men har glömt ditt lösenord kan du återställa det genom att använda sidan för återställning av lösenord.</p>\n<p>Då kan du hjälpa till genom att:</p>\n<ul class=\"simple\">\n<li><p>Stänga ”Ogranskade” ärenden som ”ogiltiga”, ”arbetsform”, ”duplikat” eller ”wontfix”.</p></li>\n<li><p>Stänga ”ogranskade” ärenden som ”behöver information” när beskrivningen är för knapphändig för att kunna åtgärdas.</p></li>\n<li><p>Korrigering av flaggorna ”Behöver testas”, ”Behöver dokumenteras” eller ”Har patch” för ärenden där de är felaktigt inställda.</p></li>\n<li><p>Ställ in flaggan ”<a class=\"reference external\" href=\"https://code.djangoproject.com/query?status=!closed&amp;easy=1\">Easy pickings</a>” för ärenden som är små och relativt okomplicerade.</p></li>\n<li><p>Ange <em>typ</em> av ärenden som fortfarande är okategoriserade.</p></li>\n<li><p>Kontrollera att gamla ärenden fortfarande är giltiga. Om ett ärende inte har varit aktivt på länge är det möjligt att problemet har åtgärdats men att ärendet ännu inte har stängts.</p></li>\n<li><p>Identifiera trender och teman i ärendena. Om det finns många felrapporter om en viss del av Django, kan det tyda på att vi bör överväga att refaktorisera den delen av koden. Om en trend håller på att växa fram bör du ta upp den till diskussion (med hänvisning till de relevanta ärendena) på <a class=\"reference external\" href=\"https://forum.djangoproject.com/\">Django Forum</a>.</p></li>\n<li><p>Kontrollera att de lösningar som andra har skickat in är korrekta. Om de är korrekta och även innehåller lämplig dokumentation och tester flyttar du dem till steget ”Redo för kontroll”. Om de inte är korrekta lämnar du en kommentar där du förklarar varför och sätter motsvarande flaggor (”Patch needs improvement”, ”Needs tests” etc.).</p></li>\n</ul>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Sidan <a class=\"reference external\" href=\"https://code.djangoproject.com/wiki/Reports\">Reports</a> innehåller länkar till många användbara Trac-frågor, inklusive flera som är användbara för att triagera ärenden och granska förslag som föreslås ovan.</p>\n<p>Du kan också hitta fler <span class=\"xref std std-doc\">nya bidragsgivare</span>.</p>\n</aside>\n<p>Vi ber dock alla allmänna gemenskapsmedlemmar som arbetar i ärendedatabasen att göra följande</p>\n<ul class=\"simple\">\n<li><p><strong>Främja</strong> inte dina egna ärenden till ”Redo för incheckning”. Du kan markera andras ärenden som du har granskat som ”Redo för incheckning”, men du bör få minst en annan medlem av gemenskapen att granska en patch som du skickar in.</p></li>\n<li><p><strong>Reversera</strong> inte ett beslut utan att skicka ett meddelande till <a class=\"reference external\" href=\"https://forum.djangoproject.com/\">Django Forum</a> för att hitta konsensus.</p></li>\n<li><p>Om du är osäker på om du bör göra en ändring, gör inte ändringen utan lämna istället en kommentar med dina farhågor på ärendet eller skicka ett meddelande till <a class=\"reference external\" href=\"https://forum.djangoproject.com/\">Django Forum</a>. Det är okej att vara osäker, men din input är fortfarande värdefull.</p></li>\n</ul>\n</section>\n<section id=\"bisecting-a-regression\">\n<h2>Bisektion av en regression<a class=\"heading-anchor\" href=\"#bisecting-a-regression\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>En regression är en bugg som finns i en nyare version av Django men inte i en äldre. En mycket användbar information är den commit som introducerade regressionen. Att veta vilken commit som orsakade förändringen i beteende hjälper till att identifiera om förändringen var avsiktlig eller om det var en oavsiktlig bieffekt. Så här kan du avgöra detta.</p>\n<p>Börja med att skriva ett regressionstest för Djangos testsvit för den aktuella frågan. Vi låtsas till exempel att vi felsöker en regression i migreringar. När du har skrivit testet och bekräftat att det misslyckas på den senaste huvudgrenen, lägg det i en separat fil som du kan köra fristående. I vårt exempel låtsas vi att vi har skapat <code class=\"docutils literal notranslate\">tests/migrations/test_regression.py</code>, som kan köras med:</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>$ ./runtests.py migrations.test_regression\n</code></pre></div>\n<p>Därefter markerar vi den aktuella punkten i historien som ”dålig” eftersom testet misslyckas:</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>$ git bisect bad\nYou need to start by <span class=\"s2\">&quot;git bisect start&quot;</span>\nDo you want me to <span class=\"k\">do</span> it <span class=\"k\">for</span> you <span class=\"o\">[</span>Y/n<span class=\"o\">]</span>? y\n</code></pre></div>\n<p>Nu måste vi hitta en punkt i git-historiken innan regressionen infördes (dvs. en punkt där testet godkänns). Använd något som <code class=\"docutils literal notranslate\">git checkout HEAD~100</code> för att kolla in en tidigare revision (100 commits tidigare, i det här fallet). Kontrollera om testet misslyckas. Om så är fallet markerar du den punkten som ”dålig” (<code class=\"docutils literal notranslate\">git bisect bad</code>), checkar sedan ut en tidigare revision och kontrollerar igen. När du hittar en revision där ditt test godkänns markerar du den som ”bra”:</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>$ git bisect good\nBisecting: X revisions left to <span class=\"nb\">test</span> after this <span class=\"o\">(</span>roughly Y steps<span class=\"o\">)</span>\n...\n</code></pre></div>\n<p>Nu är vi redo för den roliga delen: att använda <code class=\"docutils literal notranslate\">git bisect run</code> för att automatisera resten av processen:</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>$ git bisect run tests/runtests.py migrations.test_regression\n</code></pre></div>\n<p>Du bör se <code class=\"docutils literal notranslate\">git bisect</code> använda en binär sökning för att automatiskt kontrollera revisioner mellan de bra och dåliga begåvningarna tills den hittar den första ”dåliga” begåvningen där testet misslyckas.</p>\n<p>Rapportera nu dina resultat på Trac-ärendet och inkludera regressionstestet som en bilaga. När någon skriver en fix för buggen kommer de redan att ha ditt test som utgångspunkt.</p>\n</section>","rootId":"triaging-tickets","toc":[{"title":"Arbetsflöde för triagering","anchor":"triage-workflow","children":[]},{"title":"Triage-stadier","anchor":"triage-stages","children":[{"title":"Ej Recenserade","anchor":"unreviewed","children":[]},{"title":"Accepterad","anchor":"accepted","children":[]},{"title":"Redo för incheckning","anchor":"ready-for-checkin","children":[]},{"title":"En dag/kanske","anchor":"someday-maybe","children":[]}]},{"title":"Andra triageattribut","anchor":"other-triage-attributes","children":[{"title":"Har lapp","anchor":"has-patch","children":[]},{"title":"Behov av dokumentation","anchor":"needs-documentation","children":[]},{"title":"Behov av tester","anchor":"needs-tests","children":[]},{"title":"Patch behöver förbättras","anchor":"patch-needs-improvement","children":[]},{"title":"Lätt att välja","anchor":"easy-pickings","children":[]},{"title":"Typ","anchor":"type","children":[]},{"title":"Komponent","anchor":"component","children":[]},{"title":"Allvarlighetsgrad","anchor":"severity","children":[]},{"title":"Version","anchor":"version","children":[]},{"title":"UI/UX","anchor":"ui-ux","children":[]},{"title":"Cc","anchor":"cc","children":[]},{"title":"Nyckelord","anchor":"keywords","children":[]}]},{"title":"Stänga ärenden","anchor":"closing-tickets","children":[]},{"title":"Hur kan jag hjälpa till med triagering?","anchor":"how-can-i-help-with-triaging","children":[]},{"title":"Bisektion av en regression","anchor":"bisecting-a-regression","children":[]}],"breadcrumbs":[{"docname":"internals/index","title":"Djangos interna funktioner","url":"/sv/5.2/internals/"},{"docname":"internals/contributing/index","title":"Att bidra till Django","url":"/sv/5.2/internals/contributing/"}],"prev":{"docname":"internals/contributing/bugs-and-features","title":"Rapportering av buggar och önskemål om funktioner","url":"/sv/5.2/internals/contributing/bugs-and-features/"},"next":{"docname":"internals/mailing-lists","title":"Mailinglistor och forum","url":"/sv/5.2/internals/mailing-lists/"},"formats":{"html":"/sv/5.2/internals/contributing/triaging-tickets/","markdown":"/sv/5.2/internals/contributing/triaging-tickets.md","json":"/sv/5.2/internals/contributing/triaging-tickets.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/internals/contributing/triaging-tickets.txt","official":"https://docs.djangoproject.com/sv/5.2/internals/contributing/triaging-tickets/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}