|
| 1 | +# Contributing Guidelines |
| 2 | + |
| 3 | + |
| 4 | +When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change. |
| 5 | + |
| 6 | +Please note we have a code of conduct, please follow it in all your interactions with the project. |
| 7 | + |
| 8 | +--- |
| 9 | +## 1. Issue |
| 10 | +새로운 제안이나 버그 발견 시 이슈를 먼저 생성해주세요. |
| 11 | + |
| 12 | +**Issue 탬플릿 사용:** |
| 13 | +`.github/ISSUE_TEMPLATE`하위 템플릿과 연계하여 작성해주세요. |
| 14 | + |
| 15 | +| Issue Type | About | |
| 16 | +|---------------|-------------------------------------------| |
| 17 | +| bug | Internal bug report | |
| 18 | +| chore | Maintenance or housekeeping task | |
| 19 | +| documentation | Documentation update or request | |
| 20 | +| enhancement | Improvement to an existing feature | |
| 21 | +| feature | New feature request | |
| 22 | +| incident | Production incident / service outage | |
| 23 | +| postmortem | Incident postmortem / root cause analysis | |
| 24 | +| question | Internal technical question | |
| 25 | + |
| 26 | +### **상세 기록** |
| 27 | +Summary를 작성하고, 이슈 유형에 맞게 필요한 내용을 추가로 작성해주세요. |
| 28 | +- bug의 경우 재현 방법(Steps to Reproduce)과 기대 결과(Expected Result), 실제 결과(Actual Result)를 상세히 작성해주세요. |
| 29 | + |
| 30 | +--- |
| 31 | +## 2. Branch Strategy (Issue-based Workflow) |
| 32 | +모든 브랜치는 생성된 이슈를 기반으로 생성하며, `develop` 브랜치에서 분기합니다. |
| 33 | + |
| 34 | +**브랜치 생성 규칙**: `prefix/(이슈 번호)-Summary` |
| 35 | + |
| 36 | +prefix는 Issue Type과 같습니다. |
| 37 | + |
| 38 | +--- |
| 39 | + |
| 40 | +## 3. Commit Convention |
| 41 | +커밋 메시지는 다음과 같은 형식을 사용합니다: |
| 42 | +`Type(Scope): Summary (Issue No)` |
| 43 | + |
| 44 | +| Type | About | |
| 45 | +|-----------------|-----------------------------------| |
| 46 | +| **feat** | 새로운 기능 추가 | |
| 47 | +| **fix** | 버그 수정 | |
| 48 | +| **enhancement** | 기존 기능의 향상 및 개선 | |
| 49 | +| **docs** | 문서 수정 (README, 가이드 등) | |
| 50 | +| **chore** | 빌드 업무 수정, 패키지 매니저 설정 등 (코드 수정 없음) | |
| 51 | +| **hotfix** | 긴급한 버그 수정 | |
| 52 | +| **test** | 테스트 코드 추가 및 수정 | |
| 53 | +| **refactor** | 코드 리팩토링 (기능 변화 없음) | |
| 54 | + |
| 55 | +| Scope | About | |
| 56 | +|---------------|------------------| |
| 57 | +| contracts | 컨트랙트 관련 작업 | |
| 58 | +| documents | 일반 문서 관련 작업 | |
| 59 | +| packages | 패키지 및 모듈 관련 작업 | |
| 60 | +| admission | 입학 서비스 관련 작업 | |
| 61 | +| analytics | 분석 서비스 관련 작업 | |
| 62 | +| application | 지원서 서비스 관련 작업 | |
| 63 | +| document | 특정 문서 파일 관련 작업 | |
| 64 | +| evaluation | 평가 서비스 관련 작업 | |
| 65 | +| gateway | 게이트웨이 관련 작업 | |
| 66 | +| identity | 인증 및 신원 관리 관련 작업 | |
| 67 | +| notification | 알림 서비스 관련 작업 | |
| 68 | +| observability | 모니터링 및 관측성 관련 작업 | |
| 69 | +| schedule | 스케줄 서비스 관련 작업 | |
| 70 | +| infra | 인프라 관련 작업 | |
| 71 | +| ci | CI/CD 파이프라인 관련 작업 | |
| 72 | +--- |
| 73 | + |
| 74 | +## 4. Pull Request Process |
| 75 | +* 모든 pull request는 전부 template을 통하여 작성되어야합니다. |
| 76 | + |
| 77 | +* 다음과 같은 형식으로 작성합니다: `Type(Scope): Summary (이슈 번호)` |
| 78 | + |
| 79 | +* 멀티 템플릿의 경우, PR 생성했을 때의 URL 뒤에 `&template={템플릿 파일 이름}` 을 붙여줘야 합니다. |
| 80 | + (ex. `https://github.com/EntryDSM/entrydsm-platform/compare/main...documentation/branch-name?expand=1&template=documentation.md`) |
| 81 | + |
| 82 | +* **PR 템플릿 사용:** |
| 83 | +`.github/PULL_REQUEST_TEMPLATE.md`하위 템플릿과 연계하여 작성해주세요. |
| 84 | + |
| 85 | +* **이슈 연결:** PR 설명란에 `Closes #이슈번호`를 적어 해당 이슈가 자동으로 닫히도록 설정합니다. |
| 86 | + |
| 87 | +* **리뷰 프로세스:** |
| 88 | + 1. 하나 이상의 승인(Approve)이 필요합니다. |
| 89 | + 2. 리뷰어의 수정 요청이 있다면 반영 후 다시 알립니다. |
| 90 | + 3. 승인 완료 후 머지(Merge)를 진행합니다. |
| 91 | + |
| 92 | +* **PR 시 주의사항** |
| 93 | + * 발생한 Conflict에 대해서는 PR 작성자가 해결합니다. |
| 94 | + * 가능 한 작은 크기의 PR을 제출하여 리뷰어가 쉽게 검토하도록 합니다. |
| 95 | + * 권장 PR의 크기는 다음과 같습니다: |
| 96 | + * 변경된 코드 라인 수: 200 ~ 300라인 이내 |
| 97 | + * 파일 개수: 10개 이내 |
| 98 | + * 리뷰 소요 시간: 리뷰어가 15 ~ 30분 이내에 전체 내용을 파악하고 피드백을 줄 수 있는 정도 |
| 99 | + * 하나의 PR에는 하나의 중심 내용만 넣어야 합니다. |
| 100 | + * 기능 구현(feat), 리팩토링(refactor), 버그 수정(fix), 스타일 수정(chore) 등이 섞여있다면 무조건 분리합니다. |
| 101 | + * PR 작성 시 github 프로젝트를 선택하지 않습니다. |
0 commit comments