콘텐츠로 이동

기여하기

설정

맞는 곳에서 작은 변경 하나를 하고 풀 리퀘스트로 보내세요.

시작하기 전에

시작하기 전에 링크
  • 먼저 이슈를 열거나 이미 있는 이슈에 댓글을 다세요. 무엇을 왜 바꾸려는지 적으세요.
  • 병합되지 않을 것을 만들지 않도록 답변을 기다리세요.
  • HolyArrs를 빌드하고 실행할 수 있도록 개발 환경 준비를 마치세요.

질문은 Discord에 올리세요. 아이디어는 r/HolyArrs에 올리세요. 이슈는 버그와 로드맵을 위한 곳입니다.

첫 풀 리퀘스트 보내기

첫 풀 리퀘스트 보내기 링크
  1. 변경이 속할 모듈을 찾으세요. 모듈의 이름은 폴더 이름과 같으므로, Discord 알림이 잘못됐다면 alerts를 바꾸면 됩니다.

  2. app/backend/internal/<module>/과 app/frontend/src/lib/<module>/에서 변경하세요. 수정 하나 또는 기능 하나로 한정하세요.

  3. 웹 앱을 빌드한 다음 프로그램을 빌드하고, 브라우저에서 변경을 확인하세요. 개발 환경 준비를 참고하세요.

  4. 테스트의 검사를 실행하세요.

    실패가 하나도 없어야 합니다.

  5. 페이지를 바꿨다면 그 페이지의 엔드투엔드 프로젝트를 실행하세요. 예: npm --prefix app/frontend run e2e -- --project=movies.

  6. 풀 리퀘스트를 여세요. 이슈를 연결하고, 무엇이 바뀌었고 어떻게 테스트했는지 적고, 변경에 맞는 테스트를 추가하거나 고치세요.

  7. 첫 풀 리퀘스트에서는 봇이 기여자 라이선스 동의서에 서명해 달라고 요청합니다. 봇이 요청하는 한 문장으로 답하세요.

변경이 들어갈 곳

변경이 들어갈 곳 링크
변경 볼 곳
새 경로 모듈
새 모듈 모듈. 먼저 이슈를 여세요
보류된 기능 개발 환경 준비
릴리스 릴리스 내기. 메인테이너 전용

좋은 풀 리퀘스트의 모습

좋은 풀 리퀘스트의 모습 링크
  • 코드가 왜 그렇게 동작하는지 설명하는 주석을 쓰세요. 주석에 로드맵 번호, 날짜, 이름, 엠 대시는 넣지 않습니다.
  • 이슈가 문구에 관한 것이 아니라면 앱의 문구는 그대로 두세요.
  • 이미 릴리스된 API 경로, 필드 이름, 설정 키, 테이블 이름, 작업 이름은 그대로 두세요. 추가만 하고 이름은 절대 바꾸지 않습니다.

문제가 생기면

문제가 생기면 링크

증상. 구조 검사가 실패합니다. 원인. 메시지에 파일과 규칙이 나옵니다. 해결. 코드를 옮기거나, 높은 모듈에서 단순 데이터를 넘기세요. 모듈을 참고하세요.

증상. 웹 앱이 예전 모습입니다. 원인. 프로그램은 자신에게 내장된 빌드를 제공합니다. 해결. 프로그램보다 먼저 웹 앱을 다시 빌드하세요.

증상. 엔드투엔드 테스트가 시작되지 않습니다. 원인. 테스트용 브라우저가 설치되어 있지 않습니다. 해결. npx --prefix app/frontend playwright install chromium을 실행하세요.

풀 리퀘스트가 지켜야 할 규칙
  • 모듈은 다른 모듈과 그 모듈의 서비스(Go)나 index.ts(웹)를 통해서만 대화합니다. 스토어나 파일을 직접 건드리지 않습니다.
  • SQL은 모듈의 store*.go 파일에만 있고, 그 모듈 자신의 테이블만 다룹니다.
  • 웹 부품은 모듈 2개 이상이 쓸 때만 lib/ui에 둡니다.
  • util, common, shared, helpers 패키지는 만들지 않습니다.
  • 외부 호출은 모두 core/outbound를 거칩니다.

테스트가 이 규칙을 검사하므로 잘못된 import는 빌드를 실패시킵니다. 전체 목록과 검사 이름은 모듈에 있습니다.

CI가 실행하는 것
작업 실행 내용
Web check, lint, test, build와 엔드투엔드 테스트 전체
Go amd64와 arm64에서 네이티브와 에뮬레이션으로 go build, go vet, go test -timeout 60m ./...
Race go test -race ./...
Contract openapi.json 일치 여부, 모든 경로의 스코프 검사, 다운로더 테스트 묶음
Fault and scale 충돌, 느린 쓰기, 외부 서비스 오류, 메모리 실행
Image 개발 이미지가 빌드되고 시작되어 자신의 버전을 보고하는지

긴 실행에 대한 자세한 내용은 테스트에 있습니다.

HolyArrs는 무료입니다. 시간을 아끼는 데 도움이 됐다면 GitHub에서 스타를 누르거나, 후원하거나, 커피 한 잔을 사 주세요.