Cum contribui
Configurare
Fă o schimbare mică în locul potrivit și trimite-o ca pull request.
Înainte să începi
Link către Înainte să începi- Deschide mai întâi o problemă (issue) sau comentează la una existentă. Spune ce vrei să schimbi și de ce.
- Așteaptă un răspuns, ca să nu construiești ceva ce nu va fi acceptat.
- Termină Configurare, ca să poți construi și rula HolyArrs.
Întrebările merg pe Discord. Ideile merg pe r/HolyArrs. Problemele (issues) sunt pentru bug-uri și foaia de parcurs.
Trimite primul pull request
Link către Trimite primul pull request-
Găsește modulul în care intră schimbarea ta. Numele din Module se potrivesc cu numele dosarelor, așa că o alertă Discord greșită înseamnă o schimbare în
alerts. -
Fă schimbarea în
app/backend/internal/<module>/și înapp/frontend/src/lib/<module>/. Rămâi la o singură reparație sau o singură funcție. -
Construiește aplicația web, apoi programul, și încearcă schimbarea în browser. Vezi Configurare.
-
Rulează verificările din Testare.
Ar trebui să nu vezi nicio eroare.
-
Dacă ai schimbat o pagină, rulează proiectul ei end-to-end, de exemplu
npm --prefix app/frontend run e2e -- --project=movies. -
Deschide pull request-ul. Leagă problema, spune ce s-a schimbat și cum ai testat, și adaugă sau actualizează testele pentru schimbare.
-
La primul tău pull request, un bot îți cere să semnezi acordul de licență pentru contribuitori. Răspunde cu propoziția pe care o cere.
Alegeri
Link către AlegeriUnde merge o schimbare
Link către Unde merge o schimbare| Schimbare | Mergi la |
|---|---|
| O rută nouă | Module |
| Un modul nou | Module. Deschide mai întâi o problemă |
| O funcție reținută | Configurare |
| O versiune | Publicarea versiunilor. Doar pentru mentenanți |
Cum arată un pull request bun
Link către Cum arată un pull request bun- Scrie comentarii care spun de ce face codul ce face. Fără numere din foaia de parcurs, date, nume sau liniuțe lungi (em dash) în comentarii.
- Lasă în pace textele aplicației, afară de cazul în care problema e despre texte.
- Păstrează cum sunt căile API, numele câmpurilor, cheile setărilor, numele tabelelor și numele sarcinilor deja publicate. Adaugă, nu redenumi niciodată.
Dacă nu merge
Link către Dacă nu mergeSimptom. O verificare de structură eșuează. Cauză. Mesajul numește fișierul și regula. Soluție. Mută codul sau trimite date simple din modulul de sus. Vezi Module.
Simptom. Aplicația web arată veche. Cauză. Programul servește build-ul pe care l-a inclus. Soluție. Construiește din nou aplicația web înaintea programului.
Simptom. Testele end-to-end nu pornesc.
Cauză. Browserul de test nu e instalat.
Soluție. Rulează npx --prefix app/frontend playwright install chromium.
Pentru experți
Link către Pentru experțiReguli pe care trebuie să le respecte un pull request
- Un modul vorbește cu alt modul doar prin serviciul lui (Go) sau prin
index.ts(web). Niciodată prin depozitul sau fișierele lui. - SQL stă doar în fișierele
store*.goale unui modul, pentru tabelele proprii ale acelui modul. - O parte web intră în
lib/uidoar când o folosesc 2 sau mai multe module. - Fără pachete
util,common,sharedsauhelpers. - Orice apel spre exterior trece prin
core/outbound.
Testele verifică aceste reguli, așa că un import greșit oprește build-ul. Lista completă și numele verificărilor sunt în Module.
Ce rulează CI
| Sarcină | Rulează |
|---|---|
| Web | check, lint, test, build și suita end-to-end |
| Go | go build, go vet și go test -timeout 60m ./... pe amd64 și arm64, nativ și în emulare |
| Race | go test -race ./... |
| Contract | Potrivirea cu openapi.json, verificări de scop pe fiecare rută, suita pentru programele de descărcare |
| Defecte și scară | Rulări cu oprire forțată, scriere lentă, serviciu extern defect și memorie |
| Imagine | O imagine de dezvoltare se construiește, pornește și raportează versiunea |
Detaliile rulărilor lungi sunt în Testare.
Vezi și
Link către Vezi șiHolyArrs este gratuit. Dacă ți-a economisit timp, dă-i o stea pe GitHub, sponsorizează-l sau cumpără-mi o cafea.