Przegląd
Wszystkie zmiany w kodzie i dokumentacji powinny być przesłane poprzez pull request do repozytorium repozytorium GitHub dla projektu.
Większość projektów ma dedykowany przewodnik dotyczący wkładu ze szczegółowymi informacjami dla tego projektu lub konkretnych rodzajów wkładu. Ta dokumentacja można znaleźć na stronie Read the Docs. Na przykład dokumentacja Briefcase documentation zawiera przewodniki dla obu projektów code i dokumentacja.
Wszystkie zgłoszenia powinny być zgodne z [BeeWare Code of Code of Conduct] (/community/behavior/code-of-conduct/).
Uwagi do zmian
Kilka projektów BeeWare, w szczególności Briefcase i Toga, wymaga, aby każde żądanie pull request jest przesyłany z notatką o zmianie. Te notatki zmian są kompilowane razem, gdy nowe wydanie jest cięte dla projektu, tworząc noty wydania dla nowego wydania.
BeeWare używa Towncrier do zarządzania notatkami o zmianach.
Plik notatki o zmianie powinien zostać utworzony w katalogu changes
i
nazwany przy użyciu tego formatu:
<PR/Issue #>.<Change Type>.rst
Na przykład, żądanie ściągnięcia, które naprawia błąd #42 GitHub będzie miało nazwę
42.bugfix.rst
. Jeśli pull request nie jest powiązany z konkretnym
wydaniem, można zamiast tego użyć numeru żądania ściągnięcia. Może być konieczne
utworzenie pull requesta bez notatki o zmianie, aby uzyskać przydzielony numer pull requesta.
numer, a następnie wypchnąć aktualizację, która zawiera notatkę o zmianie z
z nowo przydzielonym numerem pull requesta.
Typy zmian dla notatki zmiany powinny być jednym z poniższych:
feature
bugfix
doc
usuwanie
misc
Typ misc
jest zarezerwowany dla zmian, które nie mają wpływu na użytkowników i
nie muszą być odnotowane w informacjach o wydaniu. Drobne poprawki typograficzne
w dokumentacji, aktualizacje konfiguracji CI i poprawki błędów dla
funkcji, które nie zostały jeszcze formalnie wydane, są przykładami
funkcje, które można opisać za pomocą znaczników misc
.
Notatka o zmianie powinna być pojedynczą linią tekstu, zapewniającą wysoki poziom podsumowanie zmiany z perspektywy użytkownika, a nie dogłębny opis opis techniczny lub szczegóły implementacji. Różni się ona od komunikatu komunikatu zatwierdzenia. Komunikat zatwierdzenia opisuje, co zostało zrobione, aby przyszli programiści mogą śledzić uzasadnienie zmiany. Notatka o zmianie jest opisem "skierowanym do użytkownika", opisanym w kategoriach nowej możliwości która jest dostępna w wyniku zmiany. Pomocne może być myślenie o jako o komunikacie prasowym ogłaszającym zmianę, a nie o opisie niż opis zatwierdzenia.
Na przykład, jeśli naprawisz błąd spowodowany obsługą daty, komunikat commit lub opis pull requesta może brzmieć
Dodano walidator formatu MM-DD-YYYY do łańcucha walidacji DateWidget łańcuch.
Opisuje zmianę, która została wprowadzona do implementacji - szczegóły które będą pomocne dla osoby przeglądającej kod. Jednakże odpowiednia notatka o zmianie może brzmieć mniej więcej tak:
Widżety daty mogą teraz akceptować daty w formacie amerykańskim.
Opisuje to zmianę funkcjonalną, której doświadczą użytkownicy końcowi. użytkowników końcowych. Użytkownik może przeczytać ten opis bez konieczności posiadania wiedzy o implementacji.
Styl kodu
Projekty BeeWare wykorzystują Pre-commit do automatyzacji
przestrzegania stylu kodu. Kontrole te są zdefiniowane w pliku
.pre-commit-config.yaml
dla każdego repozytorium i są automatycznie
uruchamiane w CI, gdy zostanie otwarte żądanie ściągnięcia.
jest otwarty.
Aby zautomatyzować sprawdzanie pre-commit w lokalnym środowisku programistycznym
przy każdym zatwierdzeniu git
, uruchom pre-commit install
.
Obejmuje wstępne kontrole:
- Black zapewnia jednolite formatowanie kodu
- docformatter zapewnia jednolite formatowanie dla łańcuchów dokumentów i komentarzy
- Pyupgrade](https://github.com/asottile/pyupgrade) zapewnia, że kod jest używa najnowszych najlepszych praktyk dla Pythona
- isort zapewnia jednolite instrukcje
import
oświadczenia - flake8 sprawdza typowe błędy kodowania i składni
- Różne kontrole, które sprawdzają poprawność ustrukturyzowanych dokumentów, takich jak pliki TOML i usuwają niepotrzebne białe znaki
Dodatkowe wytyczne:
Unikaj używania "my" w komentarzach, np. "Loop over" zamiast "We loop over". nad"
W nazwach zmiennych, funkcji i metod należy używać podkreślników, a nie camelCase. nazwy
Użyj InitialCaps dla nazw klas (lub dla funkcji fabrycznych, które zwracają classes)
Używaj docstringów w stylu Sphinx i
257
; adnotacja typu z484
jest opcjonalne, ale zalecane.Na przykład:
def function_name(param1: int, param2: str) -> bool: """Przykładowa funkcja z typami i docstringiem. param param1: Pierwszy parametr. param2: Drugi parametr. :returns: Wartość zwracana. True dla powodzenia, False w przeciwnym razie. """
W dokumentacji testów należy określić oczekiwane zachowanie, które każdy test demonstruje. Nie dołączaj preambuł, takich jak "Testuje, że" lub "Zapewnia, że". że".
Zarezerwuj odniesienia do zgłoszeń dla niejasnych spraw, w których zgłoszenie ma dodatkowe szczegóły, których nie można łatwo opisać w dokumentach lub komentarzach. Dołącz numer zgłoszenia na końcu zdania, na przykład to:
def test_foo(): """Testowy docstring wygląda tak (#123456)."""
O ile nie określono inaczej, należy postępować zgodnie z
8
(zwracając szczególną uwagę na Sekcja 2).