FRÅGOR OCH SVAR: Bidra med kod¶
Hur kan jag komma igång med att bidra med kod till Django?¶
Tack för att du frågar! Vi har skrivit ett helt dokument som ägnas åt denna fråga. Det har titeln Bidra till Django.
Jag skickade in en buggfix för flera veckor sedan. Varför ignorerar ni mitt bidrag?¶
Oroa dig inte: Vi ignorerar dig inte!
Det är viktigt att förstå att det finns en skillnad mellan ”ett ärende ignoreras” och ”ett ärende har inte hanterats ännu” Djangos ärendehanteringssystem innehåller hundratals öppna ärenden, av olika grad av påverkan på slutanvändarens funktionalitet, och Djangos utvecklare måste granska och prioritera.
Dessutom är de som arbetar med Django alla volontärer. Som ett resultat är den tid vi har för att arbeta med ramverket begränsad och kommer att variera från vecka till vecka beroende på vår fritid. Om vi är upptagna kanske vi inte kan lägga så mycket tid på Django som vi kanske skulle vilja.
Det bästa sättet att se till att biljetter inte fastnar på vägen till incheckningen är att göra det mycket enkelt, även för någon som kanske inte är så insatt i den delen av koden, att förstå problemet och verifiera lösningen:
Finns det tydliga instruktioner om hur man reproducerar felet? Om detta berör ett beroende (t.ex. Pillow), en contrib-modul eller en specifik databas, är dessa instruktioner tillräckligt tydliga även för någon som inte känner till det?
Om det finns flera grenar kopplade till ärendet, är det tydligt vad var och en gör, vilka som kan ignoreras och vilka som är viktiga?
Innehåller ändringen ett enhetstest? Om inte, finns det en mycket tydlig förklaring till varför inte? Ett test uttrycker kortfattat vad problemet är och visar att grenen faktiskt löser det.
Om ditt bidrag inte är lämpligt att inkludera i Django kommer vi inte att ignorera det - vi kommer att stänga ärendet. Så om ditt ärende fortfarande är öppet betyder det inte att vi ignorerar dig, det betyder bara att vi inte har haft tid att titta på det ännu.
När och hur kan jag påminna teamet om en förändring som jag bryr mig om?¶
Ett artigt, vältajmat meddelande i forumet/grenen är ett sätt att få uppmärksamhet. För att bestämma rätt tidpunkt måste du hålla ett öga på schemat. Om du postar ditt meddelande precis innan en deadline för en release är det inte troligt att du får den uppmärksamhet du behöver.
Mjuka påminnelser i kanalen #contributing-getting-started
i Django Discord server kan fungera.
Ett annat sätt att få fart på arbetet är att samla ihop flera relaterade ärenden. När någon sätter sig ner för att granska en bugg i ett område som de inte har rört på ett tag kan det ta några minuter att komma ihåg alla detaljer i hur det kodområdet fungerar. Om du samlar ihop flera mindre buggfixar till en grupp med liknande tema blir du ett attraktivt mål, eftersom kostnaden för att sätta sig in i ett kodområde kan spridas över flera ärenden.
Avstå från att skicka e-post till någon personligen eller att upprepade gånger ta upp samma fråga om och om igen. Den här typen av beteende kommer inte att ge dig någon ytterligare uppmärksamhet - absolut inte den uppmärksamhet som du behöver för att få din fråga behandlad.
Men jag har påmint dig flera gånger och du fortsätter att ignorera mitt bidrag!¶
Allvarligt talat - vi ignorerar dig inte. Om ditt bidrag inte är lämpligt för att inkluderas i Django kommer vi att stänga ärendet. För alla andra ärenden måste vi prioritera våra insatser, vilket innebär att vissa ärenden kommer att hanteras före andra.
Ett av de kriterier som används för att prioritera buggfixar är antalet personer som sannolikt kommer att påverkas av en viss bugg. Buggar som har potential att påverka många människor kommer i allmänhet att prioriteras framför de som är marginalfall.
En annan anledning till att en bugg kan ignoreras ett tag är om buggen är ett symptom på ett större problem. Även om vi kan lägga tid på att skriva, testa och tillämpa massor av små ändringar, är den rätta lösningen ibland att bygga om. Om en ombyggnad eller refaktorisering av en viss komponent har föreslagits eller är på gång, kan det hända att buggar som påverkar den komponenten inte får lika mycket uppmärksamhet. Återigen är detta en fråga om prioritering av knappa resurser. Genom att koncentrera oss på ombyggnationen kan vi åtgärda alla småbuggar på en gång och förhoppningsvis förhindra att andra småbuggar dyker upp i framtiden.
Oavsett anledning, kom ihåg att även om du kanske stöter på en viss bugg regelbundet, följer det inte nödvändigtvis att varje enskild Django-användare kommer att stöta på samma bugg. Olika användare använder Django på olika sätt, vilket stressar olika delar av koden under olika förhållanden. När vi utvärderar de relativa prioriteringarna försöker vi i allmänhet att ta hänsyn till hela samhällets behov, istället för att prioritera påverkan på en viss användare. Det betyder inte att vi tycker att ditt problem är oviktigt - bara att vi under den begränsade tid vi har till vårt förfogande alltid kommer att prioritera att göra 10 personer nöjda snarare än att göra en enda person nöjd.
Jag är säker på att min biljett är helt 100% perfect, kan jag markera den som ”Ready For Checkin” själv?¶
Tyvärr, nej. Det är alltid bättre att få en andra uppsättning ögon på en biljett. Om du har problem med att få den andra uppsättningen ögon, se frågorna ovan.