PHPackages                             lotimopa/composer-update-report - 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. lotimopa/composer-update-report

Abandoned → [spiriitlabs/composer-update-report](/?search=spiriitlabs%2Fcomposer-update-report)ArchivedComposer-plugin[Utility &amp; Helpers](/categories/utility)

lotimopa/composer-update-report
===============================

Composer plugin that generates a Markdown report after each composer update

v1.0.0(1mo ago)0139MITPHPPHP ^8.1

Since Apr 30Pushed 1mo agoCompare

[ Source](https://github.com/lotimopa/composer-update-report)[ Packagist](https://packagist.org/packages/lotimopa/composer-update-report)[ RSS](/packages/lotimopa-composer-update-report/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (2)Versions (2)Used By (0)

composer-update-report
======================

[](#composer-update-report)

A Composer plugin that automatically generates a Markdown report after each `composer update`, by comparing the current `composer.lock` with the version recorded in Git.

Requirements
------------

[](#requirements)

- PHP &gt;= 8.1
- Composer &gt;= 2.0
- The project must be versioned with **Git** (the plugin reads `composer.lock` from `HEAD`)

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

[](#installation)

```
composer require --dev lotimopa/composer-update-report
```

> The plugin activates automatically upon installation — no additional configuration is required.

How it works
------------

[](#how-it-works)

On each `composer update`, the plugin:

1. Reads `composer.lock` from `HEAD` (state before the update)
2. Compares it with the current `composer.lock` (state after the update)
3. Categorises the changes
4. Generates a `composer-update-YYYY-MM-DD.md` file at the project root

If no version changes are detected, no file is created.

Report contents
---------------

[](#report-contents)

The report is structured into sections:

SectionContents**Drupal Core**Updates to `drupal/core*` packages**Drupal Contrib Modules**Updates to `drupal/*` packages**Vendor Libraries**Symfony components (grouped by version) and other libraries**New packages**Packages absent from the previous `composer.lock`**Removed packages**Packages present in the previous `composer.lock` but now removed### Example generated report

[](#example-generated-report)

```
# Update summary — 30/04/2026

Based on the `composer.lock` diff, here is a summary of all updated packages.

### 🚀 Major and minor updates

#### 🔵 Drupal Core

* `drupal/core` : `10.2.5` ➝ `10.3.0`

#### 🧩 Drupal Contrib Modules

* `drupal/pathauto` : `1.11.0` ➝ `1.12.0`

#### 📦 Vendor libraries

* **Symfony components** — updated from `6.4.6` to `6.4.8`:

    * `symfony/console`, `symfony/http-kernel`, `symfony/routing`

* **Other libraries**:

    * `league/csv` : `9.14.0` ➝ `9.15.0`

### ✅ New packages

* `drupal/gin` : `3.0.0`

### ❌ Removed packages

* `drupal/obsolete_module` : `1.0.0`
```

Notes
-----

[](#notes)

- The report includes both `require` and `require-dev` packages.
- Symfony components sharing the same before/after version are grouped into a single line for readability.
- The generated file is not committed automatically; it is intended to be copied into a ticket, a PR, or a tracking tool.
- If `composer.lock` does not yet exist in `HEAD` (first commit, empty repository), the plugin prints a warning and generates nothing.

License
-------

[](#license)

MIT — see [LICENSE](LICENSE)

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance92

Actively maintained with recent releases

Popularity15

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

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

Unknown

Total

1

Last Release

40d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6094a5064c01693d5b8817604cfd4c66207ddb5e4f62ab73d99feab90594164d?d=identicon)[lotimopa](/maintainers/lotimopa)

---

Top Contributors

[![lotimopa](https://avatars.githubusercontent.com/u/267104737?v=4)](https://github.com/lotimopa "lotimopa (2 commits)")

### Embed Badge

![Health badge](/badges/lotimopa-composer-update-report/health.svg)

```
[![Health](https://phpackages.com/badges/lotimopa-composer-update-report/health.svg)](https://phpackages.com/packages/lotimopa-composer-update-report)
```

###  Alternatives

[symfony/runtime

Enables decoupling PHP applications from global state

74694.9M933](/packages/symfony-runtime)[ergebnis/composer-normalize

Provides a composer plugin for normalizing composer.json.

1.1k40.0M2.6k](/packages/ergebnis-composer-normalize)[drupal/core-composer-scaffold

A flexible Composer project scaffold builder.

5344.1M525](/packages/drupal-core-composer-scaffold)[drupal/core-project-message

Adds a message after Composer installation.

2124.0M192](/packages/drupal-core-project-message)[sandersander/composer-link

Adds ability to link local packages for development with composer

98441.4k](/packages/sandersander-composer-link)[phpro/grumphp-shim

GrumPHP Phar distribution

284.6M333](/packages/phpro-grumphp-shim)

PHPackages © 2026

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