코드 기여 가이드
기여 방법
문서, 코드, 기타 내용 모두 다음 방식으로 기여할 수 있습니다.
- Pull Request: 저장소에 코드를 제출하고, 코드 리뷰를 거친 뒤 메인 브랜치에 병합합니다
- Issue: 문제나 제안을 제출하고, 논의 후 구현 여부를 결정하여 개발자에게 배정합니다
코드 기여 절차
코드를 제출하기 전에 로컬에서 Git 전역 설정을 완료했는지 확인해 주세요. 로컬 Git의 커밋 이메일과 사용자 이름은 플랫폼에 등록된 이메일 및 사용자 이름과 일치해야 합니다. 그렇지 않으면 잘못된 커밋 기록이 생성될 수 있으며 기여자 목록에 반영되지 않습니다.
자신의 이메일과 사용자 이름이 올바른지 확실하지 않다면 터미널에서 Git 설정을 확인하세요.
git config --global user.name
git config --global user.email수정이 필요하다면 다음 명령을 사용하세요. "Your Name"과 "your.email@example.com"을 각각 자신의 사용자 이름과 이메일로 바꾸면 됩니다.
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"설정을 완료한 뒤에는 설정이 적용되도록 터미널을 다시 시작하는 것을 권장합니다.
- 프로젝트 Fork: 오른쪽 위의 Fork를 클릭해 자신의 저장소로 복사합니다
- 브랜치 생성:
git checkout -b feature/your-feature - 변경 사항 커밋:
git commit -m "feat: 변경 내용 설명" - 브랜치 푸시:
git push origin feature/your-feature - PR 제출: Pull Request를 생성합니다
기여된 코드는 코드 리뷰를 거치며, 통과되면 메인 브랜치에 병합됩니다.
GDScript 프로그래밍 규칙 참고
이 프로젝트는 Godot 공식 문서의 GDScript 스타일 가이드 코드 규칙을 따릅니다. 아래는 참고 규칙입니다.
형식 규칙
- 들여쓰기: 공백 대신 탭을 사용하며, 들여쓰기 단계마다 탭 하나를 사용합니다
- 줄 길이: 100자 이내로 유지하고, 가능하면 80자 이하를 권장합니다. 너무 길면 읽기 어렵습니다
- 줄바꿈: LF 줄바꿈을 사용하고, Git 충돌을 줄이기 위해 파일 끝에는 줄바꿈을 남깁니다
- 인코딩: 깨짐을 방지하기 위해 UTF-8 without BOM을 사용합니다
일반적으로 Godot 기본 스크립트 편집기나 VSCode를 사용하면 이러한 형식 규칙을 자동으로 만족할 수 있습니다. 다른 편집기를 사용한다면 이 규칙에 유의해 주세요.
명명 규칙
| 요소 유형 | 명명 스타일 | 예시 |
|---|---|---|
| 파일 이름 | snake_case | player_controller.gd |
| 클래스 이름 | PascalCase | class_name PlayerController |
| 함수/변수 | snake_case | func move_player() |
| 시그널 | snake_case(과거형) | signal door_opened |
| 상수 | CONSTANT_CASE | const MAX_HEALTH = 100 |
| 열거형 이름 | PascalCase | enum GameState |
| 열거형 값 | CONSTANT_CASE | IDLE, RUNNING, JUMPING |
스크립트 안의 이름은 영어만 사용해야 합니다. 문제를 피하기 위해 다른 언어는 사용하지 마세요.
주석 규칙
- 클래스 주석: 각 클래스 상단에는 클래스의 기능과 사용 방법을 설명하는 주석이 필요합니다. 이 주석은 문서로 자동 생성되므로 가능한 한 자세히 작성해 주세요
- 함수 주석: 각 public 함수 상단에는 함수의 기능, 매개변수, 반환값을 설명하는 주석이 필요합니다. private 함수나 내부 유틸리티 함수는 생략할 수 있습니다
- 변수 주석: 필요한 변수, 특히 특정 의미나 용도가 있는 변수에는 주석을 추가하는 것을 권장합니다
- 시그널 주석: 각 시그널 상단에는 시그널의 용도와 매개변수를 설명하는 주석이 필요합니다
- TODO 주석: 할 일을 추가해야 한다면
TODO주석을 사용하고, 할 일의 내용과 우선순위를 설명해 주세요
커밋 규칙
오픈 소스 프로젝트에서 커밋 메시지 규칙은 초기 학습 비용과 적응 과정이 필요하지만, 장기적인 보상은 큽니다. "엄격한" 메시지 규칙은 개발자 간 이해와 소통 시간을 줄이고, CHANGELOG 생성도 더 편리하고 표준화되게 합니다.
Commit 메시지
이 프로젝트는 Conventional Commits 1.0.0 규칙을 참고합니다. 구체적인 형식은 다음과 같습니다.
<type>(<scope)>: <subject>세 가지 필드로 구성됩니다. type(필수), scope(선택), subject(필수).
type(유형) 은 commit의 종류를 설명합니다. 다음 식별자 중 하나를 사용해 주세요.
| 유형 | 설명 |
|---|---|
| feat | 새 기능(feature) |
| fix | bug 수정 |
| docs | 문서 수정(documentation) |
| test | 테스트 추가 또는 기존 테스트 수정 |
| ci | CI 설정 파일과 스크립트 변경 |
scope(범위) 는 commit이 영향을 미치는 범위를 설명합니다. 프로젝트에 따라 모듈, 컴포넌트, 파일 등이 될 수 있습니다.
feat(something): ...fix(ui): ...docs(readme): ...- 영향 범위가 넓다면 생략하거나
(*)를 사용할 수 있습니다.
subject(주제) 는 이번 제출 목적을 짧게 설명합니다.
예시는 다음과 같습니다.
feat(xxx): 리플레이 기능 추가
fix: 리플레이 기능에서 재생 속도가 너무 빨라 프로그램이 충돌하는 문제 수정
docs(readme): readme 업데이트Pull Request
PR(Pull Request)은 자신의 코드를 메인 저장소의 메인 브랜치에 제출하는 데 사용됩니다. PR을 제출하기 전에 코드가 다음 규칙을 만족하는지 확인해 주세요.
- 코드 형식이 프로젝트의 코드 스타일에 맞습니다.
- 커밋 메시지가 Git Commit 메시지 규칙을 따릅니다.
- 제출한 코드는 테스트를 거쳤으며 알려진 문제가 없습니다.
위 조건을 대체로 만족한다면 PR 제출을 시작할 수 있습니다.
PR 제출 규칙
PR 정보에는 다음 내용이 포함되어야 합니다.
- 제목: PR 내용을 간결하고 명확하게 설명합니다. Git Commit 메시지를 사용할 수 있습니다.
- 설명: PR 내용을 자세히 설명합니다. 구현한 기능, 구현 방식, 영향 범위 등을 포함해 주세요.
- issue 연결: PR이 몇 개의 issue를 수정하는 것이라면 PR 정보에 issue 링크를 추가해 주세요.
추가 제안
- 유지보수자의 시간과 에너지를 아끼기 위해 PR 설명은 가능한 한 자세히 작성해 주세요.
- 간단한 bug 수정이나 문구 수정이 아니라면, 변경 내용을 빠짐없이 설명하는 PR 본문을 작성하는 것이 좋습니다.
- 때로는 PR 안의 commit 내용을 수정해야 할 수 있습니다. PR 댓글 영역의 논의를 계속 확인해 주세요.
- 모든 PR이 병합되는 것은 아닙니다. 미리 양해 부탁드립니다.
코드 리뷰
리뷰 절차
PR을 제출하면 프로젝트 유지보수자가 코드를 리뷰합니다. 리뷰 과정에서 유지보수자는 코드 스타일, 성능 최적화, 보안 개선 등 다양한 개선 제안을 할 수 있습니다. 유지보수자가 제공한 제안을 주의 깊게 읽고, 제안에 따라 수정해 주세요.
리뷰 기준
코드 리뷰 과정에서 프로젝트 유지보수자는 다음 기준을 따릅니다.
- 코드 스타일: 코드 스타일이 프로젝트의 코드 스타일 가이드에 맞는지 확인합니다.
- 성능 최적화: 코드에 심각한 성능 문제가 있다면 성능 최적화 방안을 제시해 주세요.
- 문서 업데이트: 코드 수정이 문서에 영향을 준다면 해당 문서를 업데이트해 주세요.
도움 요청
대부분의 경우 프로젝트 유지보수자는 코드 리뷰 중 발생한 문제 해결을 도와, 코드가 메인 브랜치에 원활히 병합될 수 있도록 지원합니다. 도움이 필요하다면 PR 댓글 영역의 논의를 계속 확인해 주세요.
유지보수자 신청
프로젝트에 일정한 PR 기여를 한 뒤에는 유지보수자 신청 자격을 갖게 됩니다. 유지보수자가 되고 싶다면 다음 절차에 따라 이메일로 신청해 주세요.
사용자 이름과 이메일을 포함한 개인 Git 계정 정보를 준비합니다. 이는 기여 기록 확인과 이후 초대 메일 발송에 사용됩니다.
프로젝트 기여 정보를 준비합니다. 여기에는 이전에 제출되어 병합된 PR 링크, 토론 참여 횟수, 피드백한 Issue 수 등이 포함될 수 있습니다.
konado@godothub.com으로 메일을 보내 주세요. 메일 제목은 "Konado 유지보수자 신청"으로 하고, 본문에는 위 정보를 포함해 주세요.원한다면 이메일에 자기소개를 첨부할 수 있습니다. 관심사, 기술, 오픈 소스 프로젝트 참여 경험 등을 포함하면 우리가 당신을 더 잘 이해하는 데 도움이 됩니다.
프로젝트 유지보수자 팀은 가능한 한 빨리 신청에 답변합니다. 기여 기록을 확인한 뒤 초대 메일을 당신의 이메일로 보냅니다. 메일의 안내에 따라 유지보수자 신분 확인과 저장소 권한 설정을 완료해 주세요.
Konado 프로젝트의 일원이 되어 우리와 함께 오픈 소스 커뮤니티에 기여하기를 바랍니다!