Preskočiť na obsah

Prispievanie

Nastavenie

Urob jednu malú zmenu na správnom mieste a pošli ju ako pull request.

Skôr než začneš

Odkaz na Skôr než začneš
  • Najprv otvor issue, alebo okomentuj existujúce. Napíš, čo chceš zmeniť a prečo.
  • Počkaj na odpoveď, aby sa práca nestratila na niečom, čo sa nezlúči.
  • Dokonči Nastavenie, aby si vedel HolyArrs zostaviť a spustiť.

Otázky patria na Discord. Nápady patria na r/HolyArrs. Issues sú na chyby a plán vývoja.

Pošli svoj prvý pull request

Odkaz na Pošli svoj prvý pull request
  1. Nájdi modul, do ktorého zmena patrí. Názvy v Moduly sa zhodujú s názvami priečinkov, takže chybné upozornenie na Discord je zmena v alerts.

  2. Urob zmenu v app/backend/internal/<module>/ a app/frontend/src/lib/<module>/. Drž sa jednej opravy alebo jednej funkcie.

  3. Zostav webovú aplikáciu, potom program, a vyskúšaj zmenu v prehliadači. Pozri Nastavenie.

  4. Spusti kontroly zo stránky Testovanie.

    Mal by si vidieť, že nič nezlyhalo.

  5. Ak sa zmena týka stránky, spusti jej end-to-end projekt, napríklad npm --prefix app/frontend run e2e -- --project=movies.

  6. Otvor pull request. Odkáž na issue, napíš, čo sa zmenilo a ako sa to testovalo, a pridaj alebo uprav testy k zmene.

  7. Pri prvom pull requeste ťa bot požiada o podpis licenčnej zmluvy prispievateľa. Odpovedz jednou vetou, ktorú žiada.

Zmena Pozri
Nová cesta Moduly
Nový modul Moduly. Najprv otvor issue
Pozdržaná funkcia Nastavenie
Nová verzia Vydávanie verzií. Iba pre správcov

Ako vyzerá dobrý pull request

Odkaz na Ako vyzerá dobrý pull request
  • Píš komentáre, ktoré hovoria, prečo kód robí to, čo robí. Žiadne čísla z plánu vývoja, dátumy, mená ani em pomlčky v komentároch.
  • Nechaj texty aplikácie na pokoji, kým issue nie je o texte.
  • Cesty API, názvy polí, kľúče nastavení, názvy tabuliek a názvy úloh, ktoré už vyšli, nechaj tak. Pridávaj, nikdy nepremenúvaj.

Príznak. Zlyhá kontrola štruktúry. Príčina. Správa pomenuje súbor a pravidlo. Riešenie. Presuň kód, alebo pošli obyčajné dáta z vyššieho modulu. Pozri Moduly.

Príznak. Webová aplikácia vyzerá stará. Príčina. Program servíruje build, ktorý mal vstavaný. Riešenie. Zostav webovú aplikáciu znova pred programom.

Príznak. End-to-end testy sa nespustia. Príčina. Testovací prehliadač nie je nainštalovaný. Riešenie. Spusti npx --prefix app/frontend playwright install chromium.

Pravidlá, ktoré musí pull request dodržať
  • Modul sa s iným modulom rozpráva iba cez jeho službu (Go) alebo jeho index.ts (web). Nikdy cez jeho store alebo súbory.
  • SQL býva iba v súboroch store*.go modulu, nad vlastnými tabuľkami modulu.
  • Súčasť webu patrí do lib/ui iba vtedy, keď ju používajú 2 alebo viac modulov.
  • Žiadne balíky util, common, shared ani helpers.
  • Každé volanie von ide cez core/outbound.

Tieto pravidlá kontrolujú testy, takže zlý import zlyhá pri zostavení. Úplný zoznam a názvy kontrol sú v Moduly.

Čo spúšťa CI
Úloha Spúšťa
Web check, lint, test, build a end-to-end sadu
Go go build, go vet a go test -timeout 60m ./... na amd64 a arm64, natívne aj v emulácii
Race go test -race ./...
Contract Zhodu s openapi.json, kontroly rozsahu na každej ceste, sadu pre sťahovače
Fault and scale Behy s pádom, pomalým zápisom, chybným vonkajším serverom a pamäťou
Image Vývojový image sa zostaví, spustí a nahlási svoju verziu

Podrobnosti o dlhých behoch sú v Testovanie.

Súvisiace stránky

Odkaz na Súvisiace stránky

HolyArrs je zadarmo. Ak ti ušetril čas, daj mu hviezdičku na GitHube, podpor ho alebo kúp mi kávu.