Přeskočit na obsah

Přispívání

Nastavení

Udělej jednu malou změnu na správném místě a pošli ji jako pull request.

  • Nejdřív otevři issue, nebo okomentuj existující. Napiš, co chceš změnit a proč.
  • Počkej na odpověď, ať nepostavíš něco, co se nesloučí.
  • Dokonči přípravu, ať můžeš HolyArrs sestavit a spustit.

Otázky patří na Discord. Nápady patří na r/HolyArrs. Issues jsou pro chyby a roadmapu.

Pošli první pull request

Odkaz na Pošli první pull request
  1. Najdi modul, do kterého změna patří. Názvy v modulech odpovídají názvům složek, takže špatné upozornění na Discordu je změna v alerts.

  2. Udělej změnu v app/backend/internal/<module>/ a app/frontend/src/lib/<module>/. Drž se jedné opravy nebo jedné funkce.

  3. Sestav webovou aplikaci, pak program, a změnu vyzkoušej v prohlížeči. Viz příprava.

  4. Spusť kontroly z testování.

    Neměl bys vidět žádné selhání.

  5. Když se změna týká stránky, spusť její end-to-end projekt, například npm --prefix app/frontend run e2e -- --project=movies.

  6. Otevři pull request. Přilinkuj issue, napiš, co se změnilo a jak jsi to testoval, a přidej nebo uprav testy ke změně.

  7. U prvního pull requestu tě bot požádá o podpis licenční smlouvy přispěvatele. Odpověz jednou větou, kterou po tobě chce.

Kam změna patří

Odkaz na Kam změna patří
Změna Kam jít
Nová trasa Moduly
Nový modul Moduly. Nejdřív otevři issue
Odložená funkce Příprava
Vydání Vydávání. Jen správci

Jak vypadá dobrý pull request

Odkaz na Jak vypadá dobrý pull request
  • Piš komentáře, které říkají, proč kód dělá to, co dělá. Žádná čísla z roadmapy, data, jména ani pomlčky v komentářích.
  • Nesahej na texty v aplikaci, pokud issue není právě o textech.
  • Cesty API, názvy polí, klíče nastavení, názvy tabulek a názvy úloh, které už vyšly, nech tak, jak jsou. Přidávej, nikdy nepřejmenovávej.

Když to nefunguje

Odkaz na Když to nefunguje

Příznak. Selže kontrola struktury. Příčina. Zpráva jmenuje soubor a pravidlo. Řešení. Přesuň kód, nebo obyčejná data předej z vyššího modulu. Viz moduly.

Příznak. Webová aplikace vypadá stará. Příčina. Program servíruje build, který má vestavěný. Řešení. Sestav webovou aplikaci znovu před programem.

Příznak. End-to-end testy se nespustí. Příčina. Testovací prohlížeč není nainstalovaný. Řešení. Spusť npx --prefix app/frontend playwright install chromium.

Pravidla, která musí pull request dodržet
  • Modul mluví s jiným modulem jen přes jeho službu (Go) nebo jeho index.ts (web). Nikdy přes jeho store nebo jeho soubory.
  • SQL žije jen v souborech store*.go modulu, nad tabulkami toho modulu.
  • Webová část patří do lib/ui jen tehdy, když ji používají 2 nebo více modulů.
  • Žádné balíčky util, common, shared ani helpers.
  • Každé volání ven jde přes core/outbound.

Tato pravidla hlídají testy, takže špatný import shodí build. Celý seznam a názvy kontrol jsou v modulech.

Co pouští CI
Úloha Spouští
Web check, lint, test, build a end-to-end sadu
Go go build, go vet a go test -timeout 60m ./... na amd64 a arm64, nativně i v emulaci
Race go test -race ./...
Kontrakt Shodu s openapi.json, kontrolu oprávnění u každé trasy, sadu pro stahovače
Poruchy a zátěž Běhy s pádem, pomalým zápisem, špatnou vnější službou a paměťou
Image Vývojový image se sestaví, spustí a ohlásí svou verzi

Podrobnosti o dlouhých během jsou v testování.

HolyArrs je zdarma. Pokud ti ušetřil čas, dej mu hvězdičku na GitHubu, podpoř ho sponzorstvím nebo kup mi kávu.