marcocesarato/php-conventional-changelog
Generate changelogs and release notes automatically from git history using Conventional Commits and SemVer. CLI tool (composer-friendly) outputs customizable Markdown changelog files and helps streamline versioning and releases for PHP projects.
composer.json scripts (e.g., post-release), enabling automation in:
php artisan release → trigger changelog).composer.json or package.json is manually edited post-integration. Mitigate via:
skipBump: true).pre-commit). Configure skipVerify: true or adjust hooks.--history) could slow down CI. Test with project-specific commit volumes.laravel-zero or deployer for versioning?.changelog config (e.g., repo root vs. Laravel’s config/)? Impact on deployments?laravel: scope)? How to maintain consistency across teams?composer require --dev.php artisan changelog) to wrap the package’s CLI..changelog path) to Laravel’s config system.composer changelog on tag pushes.before_script to install dependencies and trigger changelog generation.root in .changelog to target the correct package.composer changelog).--commit flag).types, ignorePatterns).- name: Generate Changelog
run: composer changelog --commit --annotate-tag
// app/Console/Commands/GenerateChangelog.php
public function handle()
{
$this->call('vendor:publish', ['--provider' => 'ConventionalChangelogServiceProvider']);
Artisan::call('changelog', ['--commit' => true]);
}
CONTRIBUTING.md or internal release guides.php artisan changelog --major."issueUrlFormat if needed).root to point to the correct directory.feat: add auth middleware).commitlint).composer changelog --minor --commit.main.marcocesarato/php-conventional-changelog (check for breaking changes in CHANGELOG.md)..changelog config in a shared template (e.g., Laravel’s package.json or a config repo).config/caching to preload settings if dynamically loaded.fix: resolve XSS in Blade).composer changelog locally before PRs.--patch, --history).--from-tag.composer.json permissions or skipBump.--from-tag to limit history scope in CI.changesets..changelog (e.g., complex preset rules) to reduce maintenance overhead.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Git history corrupted | Changelog generation fails | Backup tags/commits; use --from-tag to recover. |
| Non-conventional commits | Incomplete changelog | Enforce commitlint in CI; document required formats. |
| CI timeout | Changelog not generated | Optimize Git fetch depth or run in a separate job. |
| Permission denied (composer.json) | Version bump fails | Run CI with elevated permissions or use skipBump. |
| GPG setup missing | Signed tags fail | Make signed tags optional; document setup. |
| Config file syntax errors | Changelog generation fails | Validate .changelog via PHP linting in CI. |
.changelog config.How can I help you explore Laravel packages today?