변경 로그 규약
변경 로그 규약
섹션 제목: “변경 로그 규약”이 페이지는 모든 공개 NextPDF 저장소가 변경 사항을 기록하고 릴리스를 발행할 때 따르는 규약을 설명합니다. 규약 참고 자료이며, 특정 패키지 동작을 보증하지 않습니다. 패키지별, 버전별 설명은 각 저장소의 CHANGELOG.md에 있습니다. 이 페이지는 저장소 간 변경 로그 요약이 일관되고 유출 없이 생성되도록 각 저장소가 공유하는 규칙을 정의합니다.
Conventional Commits 1.0.0
섹션 제목: “Conventional Commits 1.0.0”모든 커밋 제목은 type(scope): description 형식을 따릅니다. type은 다음 중 하나입니다:
| 유형 | 의미 | 사용자 대상 | 버전 영향 |
|---|---|---|---|
feat | 새로운 기능 | 예 | 마이너 증가 |
fix | 동작 수정 | 예 | 패치 증가 |
perf | 동작 변화 없는 성능 개선 | 예 | 패치 증가 |
refactor | 내부 재구성, 관찰 가능한 변경 없음 | 아니요 | 없음 |
docs | 문서만 | 아니요 | 없음 |
test | 테스트만 | 아니요 | 없음 |
build / ci | 빌드 또는 파이프라인만 | 아니요 | 없음 |
chore | 유지보수, 의존성, 도구 | 아니요 | 없음 |
revert | 이전 커밋 되돌림 | 경우에 따라 다름 | 경우에 따라 다름 |
호환성을 깨는 변경은 유형 또는 범위 뒤의 !(feat(api)!: …) 또는 BREAKING CHANGE: 푸터로 표시합니다. 두 경우 모두 Semantic Versioning에서는 메이저 버전을 올립니다. 보안 관련 수정은 저장소 간 요약의 Security 열로 분류될 수 있도록 기록합니다.
Semantic Versioning 2.0.0
섹션 제목: “Semantic Versioning 2.0.0”버전 증가는 기계적으로 결정됩니다. 호환성을 깨는 변경이 하나라도 포함된 릴리스는 메이저입니다. 그렇지 않고 feat가 하나라도 포함된 릴리스는 마이너입니다. 그렇지 않고 fix 또는 perf가 하나라도 포함된 릴리스는 패치입니다. 1.0 이전 패키지는 SemVer §4에 따라 호환성을 깨는 변경에 대해 마이너를 올릴 수 있습니다. 요약이 정확하도록 커밋에는 호환성을 깨는 표시를 계속 포함해야 합니다.
Keep a Changelog 그룹화
섹션 제목: “Keep a Changelog 그룹화”각 저장소의 CHANGELOG.md는 Keep a Changelog 1.1.0을 따릅니다. 항목은 릴리스된 버전별로 Added, Changed, Deprecated, Removed, Fixed, Security 아래에 그룹화됩니다. [Unreleased] 섹션에는 저장소에서 진행 중인 메모가 들어갈 수 있지만, 저장소 간 요약은 태그가 지정되어 릴리스된 버전만 집계합니다. 릴리스되지 않은 작업은 공개 색인에 절대 나타나지 않습니다.
저장소 간 요약이 도출되는 방식(그리고 유출 없이 유지되는 방식)
섹션 제목: “저장소 간 요약이 도출되는 방식(그리고 유출 없이 유지되는 방식)”변경 로그 색인의 요약 테이블은 각 저장소의 Conventional Commits 이력을 최신 릴리스 태그에서 읽기 전용 방식으로 읽고, 범주를 집계하여 생성됩니다. 도출 규칙은 내부 세부 정보가 새어 나가지 않도록 의도적으로 좁게 설계되었습니다:
- 개수만, 내용은 아님. 사용자 대상 유형에 해당하는 커밋의 개수만 보고합니다. 커밋 제목, 본문, 푸터, 해시는 렌더링하지 않습니다.
- 사용자 대상 유형만.
docs,test,ci,chore,refactor는 제외됩니다. 이들은 패키지 사용자가 관찰할 수 있는 어떤 것도 변경하지 않습니다. - 릴리스된 것만. 커밋은 공개 패키지의 태그가 지정된 릴리스에 포함된 뒤에만 집계됩니다.
- 식별자 없음. 비공개 커밋 범위에 나타날 수 있는 내부 이슈, 티켓, 사이클, 웨이브, 작업 항목 참조는 절대 노출하지 않습니다. 범위 텍스트 자체를 렌더링하지 않고 유형만 읽기 때문입니다.
- 자동화 표기 없음. 기여자 자동화 트레일러는 읽거나 표시하지 않습니다.
이것이 공개 변경 로그가 집계된 커밋 피드가 아니라 범주 요약과 각 패키지의 CHANGELOG.md 링크로 구성되는 이유입니다. 요약은 구조적으로 내부 유출이 없음을 입증할 수 있습니다. 권위 있는 설명은 해당 내용을 소유한 패키지에 남아 있습니다.