Często zadawane pytania: Współtworzenie kodu¶
Jak mogę zacząć współtworzyć kod Django?¶
Dzięki, że pytasz! Napisaliśmy cały dokument poświęcony temu pytaniu. Jest zatytułowany Współtworzenie Django.
Zgłosiłem poprawkę błędu kilka tygodni temu. Dlaczego ignorujecie mój wkład?¶
Bez obaw: Nie ignorujemy Cię!
To ważne, żeby rozumieć różnicę pomiędzy „zgłoszenie jest ignorowane” a „zgłoszenie nie zostało jeszcze rozpatrzone”. System zgłoszeń Django zawiera setki otwartych zgłoszeń z różnymi poziomami skutków na funkcjonalność dla użytkownika końcowego. Programiści Django muszą je przejrzeć i nadać im priorytet.
Ponad wszystko: ludzie, którzy pracują nad Django to wolontariusze. W efekcie ilość czasu, który posiadamy do pracy nad frameworkiem jest ograniczony i będzie różnił się z tygodnia na tydzień w zależności od naszego wolnego czasu. Jeśli jesteśmy zajęci, nie jesteśmy w stanie poświęcać wystarczająco dużo czasu na Django, nawet jeśli byśmy chcieli.
Najlepszym sposobem, aby uniknąć zawieszania się zgłoszeń w drodze do ich wykonania, jest uczynić banalnie prostym, nawet dla kogoś, kto może nie być zaznajomiony z tym obszarem kodu, zrozumienie problemu i weryfikację rozwiązania:
Czy są wyraźne instrukcje jak odtworzyć błąd? Jeśli dotyka on zależności (na przykład Pillow), modułu contrib, albo specyficznej bazy danych, czy instrukcje są wystarczająco wyraźne, nawet dla osoby niezaznajomionej z tematem?
W przypadku kilku gałęzi powiązanych ze zgłoszeniem, czy jasno określono ich przeznaczenie oraz to, które są istotne, a które można zignorować?
Czy zmiana zawiera test jednostkowy? Jeśli nie, czy istnieje bardzo jasne wyjaśnienie, dlaczego go nie ma? Test w zwięzły sposób pokazuje, na czym polega problem, i potwierdza, że dana gałąź faktycznie go naprawia.
Jeśli Twój wkład nie nadaje się do włączenia do Django, nie będziemy go ignorować — zamkniemy zgłoszenie. Jeśli więc zgłoszenie nadal jest otwarte, nie oznacza to, że Cię ignorujemy; oznacza jedynie, że nie mieliśmy jeszcze czasu, aby się nim zająć.
Kiedy i jak najlepiej przypomnieć zespołowi o zmianie, która jest dla mnie ważna?¶
Uprzejma, wysłana w odpowiednim momencie wiadomość na forum lub w wątku/gałęzi to jeden ze sposobów zwrócenia uwagi. Aby wybrać właściwy moment, trzeba śledzić harmonogram. Jeśli opublikujesz wiadomość tuż przed terminem wydania, raczej nie uzyskasz takiej uwagi, jakiej potrzebujesz.
Delikatne przypomnienia na kanale #contributing-getting-started na Django Discord server również mogą zadziałać.
Innym sposobem na uzyskanie przyczepności jest umieszczenie razem kilku powiązanych zgłoszeń. Kiedy ktoś siada do przyjrzenia się błędowi w obszarze kodu, którego nie dotykał przez chwilę, może zająć mu kilka minut przypomnienie sobie wszystkich drobnych szczegółów, jak działa ten obszar. Jeśli zbierzesz kilka mniejszych poprawek błędów w grupę o podobnym temacie, możesz stworzyć atrakcyjny cel, jako że koszt wgryzienia się w obszar kodu może zostać rozłożony na wiele zgłoszeń.
Prosimy wystrzegać się pisania do kogokolwiek osobistych e-maili lub powtarzania zgłoszeń w kółko tego samego. Taki sposób zachowania nie przysporzy ci żadnej dodatkowej uwagi – na pewno nie takiej uwagi, której potrzebujesz, aby twoje zgłoszenie zostało rozwiązane.
Ale przypominałem już kilka razy, a wy nadal ignorujecie mój wkład!¶
Naprawdę — nie ignorujemy Cię. Jeśli Twój wkład nie nadaje się do włączenia do Django, zamkniemy zgłoszenie. W przypadku wszystkich pozostałych zgłoszeń musimy ustalać priorytety naszych działań, co oznacza, że niektóre zgłoszenia będą rozpatrywane wcześniej niż inne.
Jednym z kryteriów, które jest używane to priorytetyzowania poprawek błędów, jest liczba osób, na którą może mieć wpływ dany błąd. Błędy, które potencjalnie mogą wpłynąć na pracę wielu ludzi, zazwyczaj dostają priorytet nad tymi, które są przypadkami brzegowymi.
Innym powodem, dla którego błąd może być przez jakiś czas ignorowany, jest to, że stanowi on objaw większego problemu. Oczywiście możemy poświęcać czas na pisanie, testowanie i wdrażanie wielu drobnych poprawek, jednak czasami właściwym rozwiązaniem jest przebudowa. Jeśli zaproponowano przebudowę lub refaktoryzację danego komponentu albo jest ona już w toku, może się okazać, że błędy dotyczące tego komponentu nie będą otrzymywać tyle uwagi. Ponownie jest to kwestia priorytetyzacji ograniczonych zasobów. Koncentrując się na przebudowie, możemy zamknąć wszystkie drobne błędy naraz i, miejmy nadzieję, zapobiec pojawianiu się kolejnych w przyszłości.
Cokolwiek jest przyczyną, prosimy pamiętaj, że podczas gdy ty możesz napotykać szczególny błąd regularnie, nie znaczy to koniecznie, że każdy użytkownik Django się z nim zetknie. Różni użytkownicy używają Django na różne sposoby, obciążając różne części kodu w różnych warunkach. Kiedy szacujemy priorytety, w ogólności staramy się brać pod uwagę potrzeby całej społeczności, zamiast priorytetyzować wpływ na jednego wybranego użytkownika. To nie znaczy, że myślimy, iż twój problem jest nieważny – myślimy tylko, że w dostępnym ograniczonym czasie, zawsze przychylimy się do uczynienia szczęśliwymi 10 osób, ponad uczynienie szczęśliwą tylko jednej.
Jestem pewien(-wna), że moje zgłoszenie jest w 100% perfekcyjne. Czy mogę sam(a) oznaczyć je jako „Ready For Checkin”?¶
Przepraszam, ale nie. Zawsze lepiej spojrzeć na zgłoszenie jeszcze jedną parę oczu. Jeśli masz problemy z uzyskaniem drugiej pary oczu, zapoznaj się z pytaniami powyżej.