Lumaktaw sa nilalaman

Contributing

Setup

Gumawa ng isang maliit na pagbabago sa tamang lugar at ipadala ito bilang pull request.

  • 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
  1. 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.

  2. Gawin ang pagbabago sa app/backend/internal/<module>/ at app/frontend/src/lib/<module>/. Isang ayos o isang tampok lang.

  3. I-build ang web app, tapos ang program, at subukan ang pagbabago sa browser. Tingnan ang Setup.

  4. Patakbuhin ang mga check sa Testing.

    Dapat wala kang makitang pagkabigo.

  5. Kung may binago kang page, patakbuhin ang end-to-end project nito, halimbawa npm --prefix app/frontend run e2e -- --project=movies.

  6. 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.

  7. Sa una mong pull request, hihilingin ng isang bot na pirmahan mo ang contributor licence agreement. Sagutin ito ng isang pangungusap na hinihingi nito.

Saan 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.

Sintomas. 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.

Mga 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.ts nito (web). Hindi kailanman sa store nito o sa mga file nito.
  • Ang SQL ay nasa mga store*.go file lang ng isang module, sa sariling mga table lang ng module na iyon.
  • Ang isang web part ay napupunta sa lib/ui lamang kapag 2 o higit pang module ang gumagamit nito.
  • Walang util, common, shared o helpers na 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.

Libre ang HolyArrs. Kung nakatipid ito ng oras mo, bigyan ito ng star sa GitHub, i-sponsor ito o ibili ako ng kape.