Prisidėjimas
Sąranka
Padaryk vieną mažą pakeitimą tinkamoje vietoje ir išsiųsk jį kaip pull request.
Prieš pradedant
Nuoroda į Prieš pradedant- Pirmiausia atidaryk issue arba pakomentuok esamą. Parašyk, ką nori keisti ir kodėl.
- Palauk atsakymo, kad nepadarytum to, kas nebus priimta.
- Pabaik sąranką, kad galėtum sukompiliuoti ir paleisti HolyArrs.
Klausimus rašyk į Discord. Idėjas rašyk į r/HolyArrs. Issues skirti klaidoms ir planui.
Išsiųsk pirmą pull request
Nuoroda į Išsiųsk pirmą pull request-
Rask modulį, kuriam tavo pakeitimas priklauso. Pavadinimai modulių puslapyje sutampa su aplankų pavadinimais, todėl blogas Discord pranešimas yra pakeitimas
alertsmodulyje. -
Padaryk pakeitimą
app/backend/internal/<module>/irapp/frontend/src/lib/<module>/. Laikykis vieno pataisymo arba vienos funkcijos. -
Sukompiliuok žiniatinklio programą, paskui programą, ir išbandyk pakeitimą naršyklėje. Žiūrėk sąranką.
-
Paleisk patikras iš testavimo puslapio.
Turėtum pamatyti, kad nieko nenulūžo.
-
Jei pakeitei puslapį, paleisk jo end-to-end projektą, pavyzdžiui,
npm --prefix app/frontend run e2e -- --project=movies. -
Atidaryk pull request. Nurodyk issue, parašyk, kas pasikeitė ir kaip tai išbandei, ir pridėk ar atnaujink pakeitimo testus.
-
Per pirmą pull request botas paprašys pasirašyti bendradarbio licencijos sutartį. Atsakyk vienu sakiniu, kurio jis prašo.
Pasirinkimai
Nuoroda į PasirinkimaiKur eina pakeitimas
Nuoroda į Kur eina pakeitimas| Pakeitimas | Eik į |
|---|---|
| Naujas maršrutas | Moduliai |
| Naujas modulis | Moduliai. Pirmiausia atidaryk issue |
| Atidėta funkcija | Sąranka |
| Versija | Versijų išleidimas. Tik prižiūrėtojams |
Koks yra geras pull request
Nuoroda į Koks yra geras pull request- Komentarai turi sakyti, kodėl kodas daro tai, ką daro. Jokių plano numerių, datų, vardų ar ilgųjų brūkšnių komentaruose.
- Programos tekstų nelieski, nebent issue yra būtent apie tekstą.
- Išleistų API kelių, laukų pavadinimų, nustatymų raktų, lentelių pavadinimų ir užduočių pavadinimų nekeisk. Pridėk, bet niekada nepervadink.
Jei neveikia
Nuoroda į Jei neveikiaPožymis. Struktūros patikra nepavyksta. Priežastis. Pranešime nurodytas failas ir taisyklė. Sprendimas. Perkelk kodą arba perduok paprastus duomenis iš aukštesnio modulio. Žiūrėk modulius.
Požymis. Žiniatinklio programa atrodo sena. Priežastis. Programa aptarnauja build, kurį į save įdėjo. Sprendimas. Prieš programą dar kartą sukompiliuok žiniatinklio programą.
Požymis. End-to-end testai nepasileidžia.
Priežastis. Neįdiegta testų naršyklė.
Sprendimas. Vykdyk npx --prefix app/frontend playwright install chromium.
Pažengusiems
Nuoroda į PažengusiemsTaisyklės, kurių pull request turi laikytis
- Modulis kalbasi su kitu moduliu tik per jo servisą (Go) arba jo
index.ts(žiniatinklis). Niekada per jo store ar jo failus. - SQL gyvena tik modulio
store*.gofailuose ir tik virš to modulio lentelių. - Žiniatinklio dalis keliama į
lib/uitik tada, kai ją naudoja 2 ar daugiau modulių. - Jokių
util,common,sharedarhelperspaketų. - Kiekvienas išorinis kreipinys eina per
core/outbound.
Testai tikrina šias taisykles, todėl blogas importas nutraukia build. Pilnas sąrašas ir patikrų pavadinimai yra modulių puslapyje.
Ką paleidžia CI
| Užduotis | Paleidžia |
|---|---|
| Web | check, lint, test, build ir end-to-end rinkinį |
| Go | go build, go vet ir go test -timeout 60m ./... su amd64 ir arm64, natūraliai ir per emuliaciją |
| Race | go test -race ./... |
| Contract | openapi.json atitikimą, teisių patikras kiekvienam maršrutui, atsisiuntimo programų rinkinį |
| Fault and scale | Strigčių, lėto rašymo, blogos išorinės paslaugos ir atminties bandymus |
| Image | Kūrimo image sukompiliuojamas, paleidžiamas ir parodo savo versiją |
Ilgų bandymų detalės yra testavimo puslapyje.
Susiję puslapiai
Nuoroda į Susiję puslapiaiHolyArrs yra nemokama. Jei sutaupė tau laiko, pažymėk jį žvaigždute GitHub, paremk jį arba nupirk man kavos.