Пређи на садржај

Доприношење

Подешавање

Направи једну малу измену на правом месту и пошаљи је као pull request.

Пре него што почнеш

Линк до Пре него што почнеш
  • Прво отвори issue, или остави коментар на постојећем. Напиши шта желиш да промениш и зашто.
  • Сачекај одговор, да не направиш нешто што неће бити прихваћено.
  • Заврши Подешавање да можеш да изградиш и покренеш HolyArrs.

Питања иду на Discord. Идеје иду на r/HolyArrs. Issue-и су за багове и roadmap.

Пошаљи свој први pull request

Линк до Пошаљи свој први pull request
  1. Нађи модул коме твоја измена припада. Имена у Модули се поклапају са именима фолдера, па је исправка погрешног Discord обавештења измена у alerts.

  2. Направи измену у app/backend/internal/<module>/ и app/frontend/src/lib/<module>/. Нека то буде једна исправка или једна функција.

  3. Изгради веб апликацију, па програм, и пробај измену у претраживачу. Погледај Подешавање.

  4. Покрени провере из Тестирање.

    Не би требало да видиш ниједну грешку.

  5. Ако си променио страницу, покрени њен end-to-end пројекат, на пример npm --prefix app/frontend run e2e -- --project=movies.

  6. Отвори pull request. Повежи issue, напиши шта се променило и како си тестирао, и додај или ажурирај тестове за измену.

  7. На свом првом pull request-у, бот тражи да потпишеш уговор за сараднике (contributor licence agreement). Одговори једном реченицом коју тражи.

Измена Иди на
Нова рута Модули
Нови модул Модули. Прво отвори issue
Задржана функција Подешавање
Верзија Објављивање. Само за одржаваоце

Како изгледа добар pull request

Линк до Како изгледа добар pull request
  • Пиши коментаре који кажу зашто код ради то што ради. Без бројева из roadmap-а, датума, имена и дугих цртица у коментарима.
  • Не дирај текстове у апликацији осим ако је issue о текстовима.
  • Већ објављене API путање, имена поља, кључеве подешавања, имена табела и имена задатака остави какви су. Увек додај, никада не преименуј.

Симптом. Структурна провера пада. Узрок. Порука наводи фајл и правило. Решење. Премести код, или проследи обичне податке из вишег модула. Погледај Модули.

Симптом. Веб апликација изгледа старо. Узрок. Програм служи build који је уградио. Решење. Поново изгради веб апликацију пре програма.

Симптом. End-to-end тестови не могу да се покрену. Узрок. Тест претраживач није инсталиран. Решење. Изврши npx --prefix app/frontend playwright install chromium.

Правила која pull request мора да испоштује
  • Модул прича са другим модулом само преко његовог сервиса (Go) или његовог index.ts (веб). Никада преко његовог store-а или његових фајлова.
  • SQL живи само у store*.go фајловима модула, над табелама тог модула.
  • Веб део иде у lib/ui само када га користе 2 или више модула.
  • Без пакета util, common, shared или helpers.
  • Сваки позив ка споља иде кроз core/outbound.

Тестови проверавају ова правила, па погрешан увоз обара build. Цела листа и имена провера су у Модули.

Шта CI покреће
Задатак Покреће
Web check, lint, test, build и end-to-end скуп
Go go build, go vet и go test -timeout 60m ./... на amd64 и arm64, природно и под емулацијом
Race go test -race ./...
Contract Поклапање са openapi.json, провере опсега на свакој рути, скуп за преузимаче
Fault and scale Покретања са падом, спором упису, лошим спољним сервисом и меморијом
Image Развојни image се гради, покреће и пријављује своју верзију

Детаљи дугих покретања су у Тестирање.

Повезане странице

Линк до Повезане странице

HolyArrs је бесплатан. Ако ти је уштедео време, остави звездицу на GitHub-у, постани спонзор или купи ми кафу.