Bidra
Konfiguration
Gör en liten ändring på rätt ställe och skicka den som en pull request.
Innan du börjar
Länk till Innan du börjar- Öppna först ett ärende, eller kommentera ett som redan finns. Skriv vad du vill ändra och varför.
- Vänta på svar, så att du inte bygger något som inte kommer att tas in.
- Slutför Konfiguration så att du kan bygga och köra HolyArrs.
Frågor går till Discord. Idéer går till r/HolyArrs. Ärenden är till för buggar och färdplanen.
Skicka din första pull request
Länk till Skicka din första pull request-
Hitta modulen din ändring hör hemma i. Namnen i Moduler motsvarar mappnamn, så en felaktig Discord-avisering är en ändring i
alerts. -
Gör ändringen i
app/backend/internal/<module>/ochapp/frontend/src/lib/<module>/. Håll dig till en enda rättning eller en enda funktion. -
Bygg webbappen och sedan programmet, och prova ändringen i webbläsaren. Se Konfiguration.
-
Kör kontrollerna i Testning.
Du ska inte se något fel.
-
Om du ändrade en sida kör du dess end-to-end-projekt, till exempel
npm --prefix app/frontend run e2e -- --project=movies. -
Öppna pull requesten. Länka ärendet, skriv vad som ändrats och hur du testade, och lägg till eller uppdatera tester för ändringen.
-
På din första pull request ber en bot dig skriva under avtalet för bidragsgivare. Svara med den enda mening den ber om.
Vart en ändring hör hemma
Länk till Vart en ändring hör hemma| Ändring | Gå till |
|---|---|
| En ny route | Moduler |
| En ny modul | Moduler. Öppna ett ärende först |
| En tillbakahållen funktion | Konfiguration |
| En version | Utgivning. Bara för underhållare |
Så ser en bra pull request ut
Länk till Så ser en bra pull request ut- Skriv kommentarer som förklarar varför koden gör som den gör. Inga färdplansnummer, datum, namn eller långa tankstreck i kommentarer.
- Låt appens ordval vara, om inte ärendet handlar om ordval.
- Behåll släppta API-sökvägar, fältnamn, nyckelnamn för inställningar, tabellnamn och jobbnamn som de är. Lägg till, byt aldrig namn.
Om det inte fungerar
Länk till Om det inte fungerarSymptom. En strukturkontroll misslyckas. Orsak. Meddelandet nämner filen och regeln. Lösning. Flytta koden, eller skicka ner vanlig data från den högre modulen. Se Moduler.
Symptom. Webbappen ser gammal ut. Orsak. Programmet serverar den build det har inbyggd. Lösning. Bygg webbappen igen före programmet.
Symptom. End-to-end-testerna kan inte starta.
Orsak. Testwebbläsaren är inte installerad.
Lösning. Kör npx --prefix app/frontend playwright install chromium.
För experter
Länk till För experterRegler en pull request måste följa
- En modul pratar med en annan modul bara via dess tjänst (Go) eller dess
index.ts(webb). Aldrig via dess store eller dess filer. - SQL finns bara i en moduls
store*.go-filer, över modulens egna tabeller. - En webbdel hamnar i
lib/uibara när 2 eller fler moduler använder den. - Inga paket som heter
util,common,sharedellerhelpers. - Varje anrop utåt går genom
core/outbound.
Tester kontrollerar reglerna, så en felaktig import får bygget att misslyckas. Hela listan och kontrollernas namn finns i Moduler.
Vad CI kör
| Jobb | Kör |
|---|---|
| Web | check, lint, test, build och end-to-end-sviten |
| Go | go build, go vet och go test -timeout 60m ./... på amd64 och arm64, både nativt och under emulering |
| Race | go test -race ./... |
| Contract | Matchningen mot openapi.json, behörighetskontroller på varje route, nedladdarsviten |
| Fault and scale | Körningar med krasch, långsam skrivning, felande externa tjänster och minne |
| Image | En utvecklingsimage byggs, startar och rapporterar sin version |
Detaljer om de långa körningarna finns i Testning.
Relaterat
Länk till RelateratHolyArrs är gratis. Om det sparade dig tid kan du ge det en stjärna på GitHub, sponsra det eller bjuda mig på en kaffe.