Jak automatizuju changelog z Git commitů
Psát changelog ručně je otrava. Projít desítky commitů, vybrat ty důležité, naformátovat... Po třetím releasu jsem hledal způsob jak to automatizovat.
Proč jsem to řešil
- Čas - ruční procházení commitů zabere hodiny
- Konzistence - každý release vypadal jinak
- Chyby - vždycky jsem něco přehlédl
- Historie - chtěl jsem mít propojení s issues a commity
Conventional Commits - základ všeho
Naučil jsem se psát commity podle konvence. Formát je jednoduchý:
type(scope): subject
feat(auth): add OAuth2 login
fix(api): prevent null pointer exception
docs(readme): update installation guide
chore(deps): bump React to v18
Typy co používám:
- feat - nová funkcionalita
- fix - oprava bugu
- docs - dokumentace
- chore - údržba, dependencies
- refactor - refaktoring bez změny chování
Nástroje co používám
standard-version - automaticky generuje changelog a bumpne verzi. Prostě spustím npx standard-version a mám hotovo.
conventional-changelog - když potřebuju jen vygenerovat changelog bez bump verze.
semantic-release - kompletní automatizace včetně publikace na npm. Na větší projekty super.
GitHub Release Notes - GitHub má teď built-in generování z PR. Pro jednodušší projekty stačí.
Můj workflow
- Píšu commity podle konvence (to je klíčové)
- Před releasem spustím
npm run release - Projdu vygenerovaný changelog - občas upravím znění
- Push s tagem
- CI/CD to publikuje
Celé to trvá pár minut místo hodiny.
Jeden tip na závěr
Začněte s Conventional Commits hned. I když teď changelog negenerujete, ta historie se vám bude hodit. A commitové zprávy budou čitelnější.
Máte otázky? Napište na info@sikulovi.cz
Vyzkoušejte PorovnejText.cz zdarma
Nejrychlejší český nástroj pro porovnání textů. Vše probíhá ve vašem prohlížeči, žádná registrace není potřeba.
Porovnat texty nyní →Související články
Git diff mi nestačí - kdy a proč používám online diff
Jako programátor pracuju s git diff denně. Ale někdy potřebuju rychle porovnat dva kousky kódu a nechce se mi kvůli tomu otvírat IDE. Kdy použít co.
Markdown a README - jak kontroluju změny
Píšete dokumentaci v Markdownu? Tady je jak porovnávám změny v README a dalších md souborech.
Jak kontroluju config soubory před deployem
Jedna špatná změna v YAML a máte outage. Tady je jak porovnávám konfigurace mezi prostředími.