vaimo/composer-changelogs
Composer plugin that generates changelog files from Git history, grouping commits by type and linking issues and merge requests so release notes are written automatically. Configurable via composer.json, it helps teams document changes consistently without manual effort.
composer --version). Docker images, Sail setups, and older CI templates are the usual offenders.composer require --dev vaimo/composer-changelogs. This is a build/release-time tool — never a runtime dependency, so composer install --no-dev deployments are unaffected.composer.json:
"config": { "allow-plugins": { "vaimo/composer-changelogs": true } }
extra.changelogs block in your root composer.json. Run composer list after install to see the commands the plugin registers, and check the bundled Mustache templates before writing your own.CHANGELOG.md entry for a tagged release by grouping commits between the previous tag and HEAD into buckets (Features, Fixes, Breaking). Commit your existing history conventions first — the output quality is entirely a function of your commit subjects.CHANGELOG.md as a build artifact that gets committed back, or generate it only into the release notes and keep the repo clean — pick one and be consistent.extra.changelogs. Map commit prefixes or labels to section headings (feat: → Features, fix: → Fixes, !/BREAKING CHANGE → Breaking). Keep this config in the repo so every contributor produces identical output."changelogs" script alias (and optionally a post-update-cmd hook) so composer changelogs works locally without anyone memorising the binary path..mustache template into your repo, adjust headings/ordering/link formats, and point the config at it. This is the main extension point — there is no Laravel service provider, no publishable config, and no container integration to lean on.fetch-depth: 1, which gives the plugin no history and no tags. Set fetch-depth: 0 (or explicitly fetch tags) in your checkout step — this is the single most common CI failure.vaimo/composer-changelogs to the 1.x line until it is upgraded; 2.0.0 will simply refuse to install there.symfony/* constraints did not shift unexpectedly in composer.lock.mustache/mustache (or something that pulls it), a composer update can now bump it across a major version. Rendering differences in escaping, section handling, or {{.}} semantics can silently mangle your changelog — diff the generated output after the upgrade.-vvv and inspect the actual subject lines in the tag range (git log --oneline <prev>..HEAD).composer install (no --no-dev), you are shipping a Composer plugin unnecessarily.How can I help you explore Laravel packages today?