Dziękujemy za zainteresowanie współtworzeniem KSeF Client!
Celem projektu jest dostarczanie stabilnego, otwartego i szeroko użytecznego klienta w C#.
Poniżej znajdziesz zasady, które pomogą nam wspólnie rozwijać kod w sposób uporządkowany i zgodny z najlepszymi praktykami.
- Użyj zakładki Issues aby zgłosić błąd lub propozycję nowej funkcjonalności.
- Opisz możliwie dokładnie kontekst i oczekiwane zachowanie.
- Jeśli chcesz się problemem sama/sam zająć, oznacz issue etykietą
community-contributionlub poproś o przypisanie do siebie. - Jeśli nie planujesz rozwiązać problemu – nie dodawaj etykiety, wtedy issue pozostaje otwarte dla innych.
- Wykonaj fork repozytorium.
- Utwórz osobny branch (
feature/...,fix/...). - Wprowadź zmiany i upewnij się, że wszystkie testy przechodzą.
- Otwórz PR z czytelnym opisem dlaczego i jak wprowadzono zmianę.
- Każdy PR powinien odnosić się do konkretnego issue.
- Dzięki temu unikniemy sytuacji, w której kilka osób pracuje nad tym samym zadaniem.
- Nie usuwaj ani nie zmieniaj istniejących metod w sposób, który łamie kompatybilność.
- Rozszerzenia funkcjonalności wprowadzaj w sposób zgodny wstecznie np. jako metody rozszerzające, nadpisania lub parametry opcjonalne.
- W przypadku zupełnie nowych funkcjonalności należy je implementować jako oddzielne, spójne moduły, które nie ingerują w dotychczasowe API i nie powodują niekompatybilności.
- Kod powinien być zgodny z regułami C# i przyjętymi konwencjami w projekcie.
- Stosuj zasady SOLID i trzymaj się istniejącej architektury.
- Każda publiczna metoda/klasa musi posiadać komentarz XML.
- Do każdej nowej funkcjonalności wymagane są testy jednostkowe i/lub integracyjne.
- Nie obniżaj istniejącego pokrycia testami.
- Każdy PR jest sprawdzany przez właścicieli projektu.
- PR musi przejść automatyczne sprawdzenia CI (build, testy).
- Zmiany wchodzą do głównej gałęzi tylko przez PR – nie wykonujemy commit'ów bezpośrednio.
Pull Requesty i zgłoszenia będą rozpatrywane w miarę dostępnego czasu zespołu.
Wszystkie zgłoszenia są dla nas cenne, nawet jeśli nie możemy zająć się nimi natychmiast.
PR może zostać odrzucony, jeśli:
- Łamie zgodność wsteczną bez uzasadnienia i planu migracji.
- Nie zawiera testów dla nowych funkcjonalności lub pogarsza pokrycie testami.
- Nie przechodzi automatycznej weryfikacji CI (build, testy, styl).
- Zmienia istniejącą architekturę w sposób sprzeczny z przyjętymi założeniami.
- Faworyzuje wąski przypadek użycia kosztem ogólnej użyteczności biblioteki.
- Nie zawiera wymaganej dokumentacji lub komentarzy XML dla publicznych API.
- Jest zbyt duży i trudny do przejrzenia – zalecamy małe, granularne zmiany.
- Brak reakcji autorki/autora na uwagi w review przez dłuższy czas.
- Zachowuj kulturę i szacunek wobec innych współtwórców.
- Nie wprowadzaj zmian, które faworyzują wąski przypadek użycia kosztem ogólnej użyteczności biblioteki.
- Wszelkie większe decyzje architektoniczne będą omawiane w publicznych dyskusjach lub wewnątrz zespołu projektowego.
Dziękujemy za Twój wkład!