PHPackages                             matijakovacevic/changelog - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. matijakovacevic/changelog

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

matijakovacevic/changelog
=========================

Update and version CHANGELOG.md using local git commit messages and tags

1.0.1(7y ago)119[1 issues](https://github.com/matijakovacevic/changelog/issues)MITShell

Since Feb 20Pushed 7y ago1 watchersCompare

[ Source](https://github.com/matijakovacevic/changelog)[ Packagist](https://packagist.org/packages/matijakovacevic/changelog)[ RSS](/packages/matijakovacevic-changelog/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (3)Used By (0)

Changelog update script
=======================

[](#changelog-update-script)

Simple bash script to (version) update CHANGELOG.md using local GIT commit messages and tags.

Introduction
------------

[](#introduction)

The whole point of the script is to automate the process of updating the changelog, by writing your commit messages properly, so they are understood by others and properly "mark" the changes done in your code.

A good article on "How to Write a Git Commit Message" \[\]

Generated output of the script can be seen in this package changelog file, thus following 'eat your own dog food' principle.

Notice
------

[](#notice)

The script is easily "hackable", meaning it doesn't have validation for tags and such.

The whole point of the script is to help you automate the process and by inputting jibberish you will only do harm to your own time.

MacOS notice
------------

[](#macos-notice)

As the script uses GNU sed, it will not work on MacOS out-of-the-box (which uses BSD sed). If you want it to work on MacOS, you need to install `gsed` (GNU sed) and symlink it as `sed`.

[http://gridlab-d.shoutwiki.com/wiki/Mac\_OSX/Gsed](http://gridlab-d.shoutwiki.com/wiki/Mac_OSX/Gsed)

Installation
------------

[](#installation)

Per project

```
composer require --dev matijakovacevic/changelog
```

or globally

```
composer global require matijakovacevic/changelog
```

Usage
-----

[](#usage)

If there is no CHANGELOG.md, the script will create it. Otherwise, it gets the commits made from the last tag, ignoring merge commits, and puts them in the CHANGELOG.md file, as items under the 'new version' header.

The header is generated according to the last found tag, following semantic versioning \[\]. You can provide arguments like *(major|minor|patch)* if there are tags to be parsed, otherwise you can use your own version e.g. *1.5.2*

After completion, it will make a commit to the active branch, with changed CHANGELOG.md file and a commit message "changelog updated to $TAG"

```
changelog [major|minor|patch]
changelog 1.0.1
```

Per project (from composer bin folder)

```
./vendor/bin/changelog ...
```

or globally

```
changelog ...
```

Related stuff:
--------------

[](#related-stuff)

Keep a Changelog \[\]

github - Good ways to manage a changelog using git? - Stack Overflow \[\]

Some (more advanced) libraries:
-------------------------------

[](#some-more-advanced-libraries)

As I'm currently in PHP ecosystem, most of these are PHP libraries:

> Semantic versioning helper library for PHP

SemVer \[\]

> Generate change logs from your repositorys on GitHub. Based on releases, issues, labels and pull requests

ins0/github-changelog-generator \[\]

> Automate the tedious tasks of software releases. Happily release and publish your Git repositories, npm packages, GitHub &amp; GitLab releases, changelogs, and much more!

webpro/release-it \[\]

> Jira &amp; Git Workflow tool

Rentlio/jit \[\]

Contribute
----------

[](#contribute)

If you wish to contribute, you're free to make a pull request

###  Health Score

22

↓

LowBetter than 22% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

2

Last Release

2636d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1a5c2f797c459bf904070125992868fb899d6015615f5e22114394e74784d99b?d=identicon)[matijakovacevic](/maintainers/matijakovacevic)

---

Top Contributors

[![matijakovacevic](https://avatars.githubusercontent.com/u/2469719?v=4)](https://github.com/matijakovacevic "matijakovacevic (5 commits)")

---

Tags

changelogchangelog-generatorscriptscriptupdatechangelog

### Embed Badge

![Health badge](/badges/matijakovacevic-changelog/health.svg)

```
[![Health](https://phpackages.com/badges/matijakovacevic-changelog/health.svg)](https://phpackages.com/packages/matijakovacevic-changelog)
```

###  Alternatives

[pyrech/composer-changelogs

Display changelogs after each composer update

5904.0M25](/packages/pyrech-composer-changelogs)[sllh/composer-versions-check

Checks if packages are up to date to last major versions after update

2352.4M16](/packages/sllh-composer-versions-check)[marcocesarato/php-conventional-changelog

Generate changelogs and release notes from a project's commit messages and metadata and automate versioning with semver.org and conventionalcommits.org

2511.3M109](/packages/marcocesarato-php-conventional-changelog)[laravel-zero/phar-updater

A thing to make PHAR self-updating easy and secure.

162.1M92](/packages/laravel-zero-phar-updater)[tatter/patches

Automated project updates for CodeIgniter 4

3588.4k3](/packages/tatter-patches)[claudiodekker/changelog-updater

A PHP package to programmatically update your changelog file.

1315.5k](/packages/claudiodekker-changelog-updater)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
