Contributing
Setup
Gumawa ng isang maliit na pagbabago sa tamang lugar at ipadala ito bilang pull request.
Bago ka magsimula
Link papunta sa Bago ka magsimula- Magbukas muna ng issue, o mag-comment sa umiiral na. Sabihin kung ano ang gusto mong baguhin at bakit.
- Hintayin ang sagot, para hindi ka bumuo ng bagay na hindi ime-merge.
- Tapusin ang Setup para ma-build at mapatakbo mo ang HolyArrs.
Ang mga tanong ay sa Discord. Ang mga ideya ay sa r/HolyArrs. Ang mga issue ay para sa mga bug at sa roadmap.
Ipadala ang una mong pull request
Link papunta sa Ipadala ang una mong pull request-
Hanapin ang module na pinagmumulan ng pagbabago mo. Tugma sa mga pangalan ng folder ang mga pangalan sa Modules, kaya ang maling Discord alerto ay pagbabago sa
alerts. -
Gawin ang pagbabago sa
app/backend/internal/<module>/atapp/frontend/src/lib/<module>/. Isang ayos o isang tampok lang. -
I-build ang web app, tapos ang program, at subukan ang pagbabago sa browser. Tingnan ang Setup.
-
Patakbuhin ang mga check sa Testing.
Dapat wala kang makitang pagkabigo.
-
Kung may binago kang page, patakbuhin ang end-to-end project nito, halimbawa
npm --prefix app/frontend run e2e -- --project=movies. -
Buksan ang pull request. I-link ang issue, sabihin kung ano ang nagbago at paano mo ito sinubukan, at magdagdag o mag-update ng mga test para sa pagbabago.
-
Sa una mong pull request, hihilingin ng isang bot na pirmahan mo ang contributor licence agreement. Sagutin ito ng isang pangungusap na hinihingi nito.
Mga pagpipilian
Link papunta sa Mga pagpipilianSaan napupunta ang isang pagbabago
Link papunta sa Saan napupunta ang isang pagbabago| Pagbabago | Pumunta sa |
|---|---|
| Isang bagong route | Modules |
| Isang bagong module | Modules. Magbukas muna ng issue |
| Isang tampok na hindi pa bukas | Setup |
| Isang release | Releasing. Mga maintainer lang |
Ano ang itsura ng magandang pull request
Link papunta sa Ano ang itsura ng magandang pull request- Magsulat ng mga comment na nagsasabi kung bakit ginagawa ng code ang ginagawa nito. Walang numero ng roadmap, petsa, pangalan o em dash sa mga comment.
- Huwag galawin ang mga salita ng app maliban kung tungkol sa mga salita ang issue.
- Panatilihin ang mga path ng API na nailabas na, mga pangalan ng field, mga key ng setting, mga pangalan ng table at mga pangalan ng job. Magdagdag lang, huwag magpalit ng pangalan.
Kung hindi gumana
Link papunta sa Kung hindi gumanaSintomas. Bumagsak ang isang structure check. Dahilan. Pinangangalanan ng mensahe ang file at ang patakaran. Solusyon. Ilipat ang code, o magpasa ng simpleng data mula sa mas mataas na module. Tingnan ang Modules.
Sintomas. Luma ang itsura ng web app. Dahilan. Ang program ay nagseserbisyo ng build na naka-embed dito. Solusyon. I-build muli ang web app bago ang program.
Sintomas. Hindi makapagsimula ang mga end-to-end test.
Dahilan. Hindi naka-install ang test browser.
Solusyon. Patakbuhin ang npx --prefix app/frontend playwright install chromium.
Para sa mga eksperto
Link papunta sa Para sa mga ekspertoMga patakarang dapat sundin ng pull request
- Ang isang module ay nakikipag-usap sa ibang module sa pamamagitan lang ng service nito (Go) o ng
index.tsnito (web). Hindi kailanman sa store nito o sa mga file nito. - Ang SQL ay nasa mga
store*.gofile lang ng isang module, sa sariling mga table lang ng module na iyon. - Ang isang web part ay napupunta sa
lib/uilamang kapag 2 o higit pang module ang gumagamit nito. - Walang
util,common,sharedohelpersna package. - Bawat tawag sa labas ay dumadaan sa
core/outbound.
Sinusuri ng mga test ang mga patakarang ito, kaya babagsak ang build kapag mali ang import. Ang buong listahan at ang mga pangalan ng check ay nasa Modules.
Ano ang pinapatakbo ng CI
| Job | Pinapatakbo |
|---|---|
| Web | check, lint, test, build at ang end-to-end suite |
| Go | go build, go vet at go test -timeout 60m ./... sa amd64 at arm64, native at sa ilalim ng emulation |
| Race | go test -race ./... |
| Contract | Ang pagtutugma ng openapi.json, mga scope check sa bawat route, ang downloader suite |
| Fault at scale | Mga takbo ng crash, mabagal na pagsulat, masamang serbisyo sa labas at memory |
| Image | Isang development image ang nabu-build, nagsisimula at nag-uulat ng bersyon nito |
Ang mga detalye ng mahahabang takbo ay nasa Testing.
Kaugnay
Link papunta sa KaugnayLibre ang HolyArrs. Kung nakatipid ito ng oras mo, bigyan ito ng star sa GitHub, i-sponsor ito o ibili ako ng kape.