MyFans uses conventional commits to automatically generate changelogs. This ensures consistent, readable release notes without manual maintenance.
<type>(<scope>): <subject>
<body>
<footer>
- feat: New feature (triggers minor version bump)
- fix: Bug fix (triggers patch version bump)
- docs: Documentation changes
- style: Code style changes (formatting, missing semicolons, etc.)
- refactor: Code refactoring without feature changes
- perf: Performance improvements
- test: Adding or updating tests
- chore: Maintenance tasks, dependency updates
- ci: CI/CD configuration changes
- build: Build system changes
frontend: Frontend changesbackend: Backend changescontract: Smart contract changesdocs: Documentationci: CI/CD
# Feature addition
git commit -m "feat(frontend): add creator profile page"
# Bug fix
git commit -m "fix(backend): resolve subscription renewal issue"
# Breaking change
git commit -m "feat(contract)!: change subscription payment structure
BREAKING CHANGE: Subscription payment now requires upfront payment"
# Multiple scopes
git commit -m "feat(frontend,backend): implement real-time notifications"Mark breaking changes with ! after type/scope or include BREAKING CHANGE: in footer:
git commit -m "feat(contract)!: update subscription interface"
# OR
git commit -m "feat(contract): update subscription interface
BREAKING CHANGE: The subscribe method now requires additional parameters"The changelog is automatically generated when:
- Code is pushed to
mainbranch - Workflow is manually triggered from GitHub Actions
Generate changelog locally:
# Install conventional-changelog-cli
npm install -g conventional-changelog-cli
# Generate changelog
conventional-changelog -p angular -i CHANGELOG.md -s
# Or generate from scratch
conventional-changelog -p angular -i CHANGELOG.md -s -r 0The generated CHANGELOG.md includes:
- Features: New functionality
- Bug Fixes: Resolved issues
- Performance Improvements: Optimizations
- Breaking Changes: Incompatible changes
- Commit links: Direct links to commits
- Issue references: Automatically linked issues
- Write clear subjects: Keep under 72 characters
- Use imperative mood: "add feature" not "added feature"
- Reference issues: Include issue numbers in footer
- Group related changes: Use consistent scopes
- Explain breaking changes: Always document impact
feat(frontend): add subscription management dashboard
Implements user interface for managing active subscriptions,
viewing payment history, and canceling subscriptions.
Closes #123fix(backend): prevent duplicate subscription charges
Added idempotency check to subscription renewal process
to prevent users from being charged multiple times.
Fixes #456# Too vague
git commit -m "fix stuff"
# Missing type
git commit -m "add new feature"
# Not imperative
git commit -m "feat: added subscription page"Conventional commits also enable semantic versioning:
feat: Minor version bump (1.0.0 → 1.1.0)fix: Patch version bump (1.0.0 → 1.0.1)BREAKING CHANGE: Major version bump (1.0.0 → 2.0.0)
The changelog workflow:
- Runs on every push to
main - Generates/updates
CHANGELOG.md - Commits changes back to repository
- Skips CI on changelog commits (
[skip ci])
- Ensure commits follow conventional format
- Check GitHub Actions logs for errors
- Verify repository permissions
- Only commits since last tag are included
- Use
-r 0flag to regenerate entire changelog
- Delete
CHANGELOG.mdand regenerate from scratch
Review and clean up CHANGELOG.md before major releases to ensure clarity and accuracy.
Last Updated: 2026-04-22