PHPackages                             spekulatius/painfreereleases - 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. spekulatius/painfreereleases

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

spekulatius/painfreereleases
============================

Helps you to maintain a CHANGELOG absolute painfree.

0.1.5(6y ago)115[4 issues](https://github.com/spekulatius/PainfreeReleases/issues)BSD-3-ClausePHPPHP &gt;=5.4.0CI failing

Since Apr 17Pushed 5y ago2 watchersCompare

[ Source](https://github.com/spekulatius/PainfreeReleases)[ Packagist](https://packagist.org/packages/spekulatius/painfreereleases)[ Docs](https://peterthaleikis.com)[ RSS](/packages/spekulatius-painfreereleases/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (3)Versions (7)Used By (0)

PainfreeReleases
================

[](#painfreereleases)

[![Build Status](https://camo.githubusercontent.com/eb9a04746f1be9d7085af2aa254e1a61b99a5e6baac5460f2f1875f1f40ba514/68747470733a2f2f6170692e7472617669732d63692e6f72672f7370656b756c61746975732f5061696e6672656552656c65617365732e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/spekulatius/PainfreeReleases)[![Latest Stable Version](https://camo.githubusercontent.com/6caec3da144e4f3f2f3069c923e56565694c228b8c0e0c6ae593eeaeeb22f506/68747470733a2f2f706f7365722e707567782e6f72672f7370656b756c61746975732f5061696e6672656552656c65617365732f76657273696f6e2e737667)](https://github.com/spekulatius/PainfreeReleases/releases)[![Latest Unstable Version](https://camo.githubusercontent.com/53512c3cf7bf572f393f8cc3b1d95ed62d5976d19f973852935957daaeb27ebe/68747470733a2f2f706f7365722e707567782e6f72672f7370656b756c61746975732f5061696e6672656552656c65617365732f762f756e737461626c652e737667)](https://packagist.org/packages/spekulatius/PainfreeReleases)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/a3d5cd03454583e8df61c9677db1ba80cf8a75404858b75359be4b8156ae2608/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f7370656b756c61746975732f5061696e6672656552656c65617365732e737667)](https://scrutinizer-ci.com/g/spekulatius/PainfreeReleases?branch=master)[![Total Downloads](https://camo.githubusercontent.com/adf81c11c5608f296d18202d36e917fb5306a5fea3f82252fc92f1a65008b5df/68747470733a2f2f706f7365722e707567782e6f72672f7370656b756c61746975732f5061696e6672656552656c65617365732f646f776e6c6f6164732e737667)](https://packagist.org/packages/spekulatius/PainfreeReleases)[![License](https://camo.githubusercontent.com/8bc4e91c54aca20a55e63e45f4f0efaf0fff3d585836627ff23f94dad85d9e86/68747470733a2f2f706f7365722e707567782e6f72672f7370656b756c61746975732f5061696e6672656552656c65617365732f6c6963656e73652e737667)](https://github.com/spekulatius/PainfreeReleases/blob/master/license.md)

PainfreeReleases makes maintaining a [CHANGELOG absolute painfree](https://github.com/spekulatius/PainfreeReleases).

🚧 *This package is still in development. Please be careful and patient, if you decide to use it.*

Features: What does it actually do?
-----------------------------------

[](#features-what-does-it-actually-do)

The basic idea here is pretty simple: Instead of running

```
git tag 1.2.3

```

you run

```
painfreereleases 1.2.3

```

to generate a new release in the CHANGELOG.md-file. In detail it does the following steps for you:

- Generates you a [CHANGELOG.md-file](https://github.com/spekulatius/PainfreeReleases/blob/master/CHANGELOG.md) out of your git tags and commits.
- commits it,
- and tags your release.

Requirements: What do you need?
-------------------------------

[](#requirements-what-do-you-need)

Any regular developer machine using Linux should work. Maybe Mac OS. Windows? No idea.

The only direct requirement is PHP:

- PHP 5.4.0

Note: During the installation of PainfreeReleases [Composer](https://getcomposer.org) will be installed/updated and used to manage the dependencies.

Installation: How do I get this?
--------------------------------

[](#installation-how-do-i-get-this)

*Each* user (usually developer) needs to run the following command to install *and* configure the package for *each* project:

1. change into *your project folder* and
2. adjust and run the following commands to *install and set up* painfreereleases for your project/machine:

    ```
    # install or update composer - we need this to manage the dependencies
    curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer;

    # install the package as a global dependency and symlink it.
    composer global require spekulatius/painfreereleases;
    sudo chmod +x ~/.composer/spekulatius/painfreereleases/painfreereleases;
    sudo ln -s ~/.composer/spekulatius/painfreereleases/painfreereleases /usr/local/bin/painfreereleases;

    # run the initial steps
    painfreereleases init;

    # commit the change
    git add composer.json composer.lock CHANGELOG.md;
    git commit -m 'DOC: Adding PainfreeReleases :sunny:'
    ```

[Roadmap: See where PainfreeReleases goes](https://github.com/spekulatius/PainfreeReleases/issues)
--------------------------------------------------------------------------------------------------

[](#roadmap-see-where-painfreereleases-goes)

Please see the issues for planned enhancements and the roadmap.

- Adding tests :/
- "Ignore tags" option with regex match. e.g. "^archive" to not process any tags matching this.
- Making grouping based on keywords config manageable
- Groups should have a priority for order in the output
- Custom log message decorators to allow styling of the output e.g. with links to the issue tracker.
- Different output formats, also allowing to push to gitlab, github or bitbucket.

License 😌
---------

[](#license-relieved)

For information regarding the license see [license.md](https://github.com/spekulatius/PainfreeReleases/blob/master/license.md).

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 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 ~287 days

Recently: every ~359 days

Total

6

Last Release

2241d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/8433587?v=4)[Peter Thaleikis](/maintainers/spekulatius)[@spekulatius](https://github.com/spekulatius)

---

Top Contributors

[![spekulatius](https://avatars.githubusercontent.com/u/8433587?v=4)](https://github.com/spekulatius "spekulatius (16 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/spekulatius-painfreereleases/health.svg)

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

###  Alternatives

[markstory/mini-asset

An asset compression library. Provides file concatenation and a flexible filter system for preprocessing and minification.

66741.1k3](/packages/markstory-mini-asset)[kubotak-is/php-del

Tool to remove code based on specific comments.

1640.8k](/packages/kubotak-is-php-del)[lochmueller/seocli

SEO CLI Tool

1113.4k](/packages/lochmueller-seocli)

PHPackages © 2026

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