
CHANGELOG.md는 릴리즈 시점에 커밋 메시지를
type 및 scope 별로 정리해놓은 마크다운 형식의 파일입니다
따라서 프로젝트의 feature, bug fix, refactor 등의 변화를 한눈에 파악할 수 있습니다
git 명령어를 통해 생성하는 방법입니다
git log --pretty="- %s" > CHANGELOG.md
위의 명령어를 실행하면 --pretty 설정에 맞춰 CHANGELOG.md가 생성됩니다
pretty의 확장 옵션 종류는 굉장히 많은데
그건 필요할 때 찾아보는걸로 😉
generate-changelog라는 라이브러리를 통해서도 CHANGELOG.md를 생성할 수 있습니다
brew install node
#글로벌
npm i generate-changelog -g
#특정 프로젝트 종속
npm i generate-changelog -D
generate-changelog는 node.js 기반의
CHANGELOG.md를 자동으로 생성해주는 tool 입니다
해당 라이브러리는 node.js 기반이기 때문에
package.json이 없으면 정상적으로 실행되지 않습니다
프로젝트 루트 경로에 package.json을 만들고 {}만 작성해주면 준비 끝!
changelog generate


그런데 여기서 문제가...
예시와 다르게 저의 CHANGELOG.md는
...

type별로 구분되지 않고 모든 커밋 로그가 Other Changes에 모여있었습니다
뭐가 문제인지 찾고 찾고 또 찾다가
문제의 원인을 찾아냈습니다..!
generate-changelog는 기본적으로 Angular 커밋 컨벤션을 따르는데
저 또한 이 컨벤션을 따르고 있었습니다
그런데 딱 1가지 차이가 문제의 원인이 되었습니다
그것은 type과 콜론(:) 사이에 띄어쓰기였습니다...😅
type: ~ 과 type : ~
이 둘의 차이로 인해 제대로 파싱이 안되는 문제가 발생했던 것이었습니다
돌아보면 원인을 찾아서 다행이었다고 생각합니다
시도하고, 문제를 만나고, 해결하려고 노력하는 과정이
가장 빠르게 배우는 방법이라고 피부로 느끼는 순간이었습니다!