PHPackages                             sitepark/composer-project - 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. sitepark/composer-project

ActiveComposer-plugin[Utility &amp; Helpers](/categories/utility)

sitepark/composer-project
=========================

Tools to manage composer projects

1.12.0(2mo ago)09.2k↓35%MITPHPPHP &gt;=8.0 &lt;8.6CI passing

Since May 8Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/sitepark/composer-project)[ Packagist](https://packagist.org/packages/sitepark/composer-project)[ Docs](https://github.com/sitepark/composer-project/)[ RSS](/packages/sitepark-composer-project/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (7)Versions (17)Used By (0)

[![codecov](https://camo.githubusercontent.com/15a970acbc04fec048f97421652d638638a8d944fb612f2adb50a7421e80b2f1/68747470733a2f2f636f6465636f762e696f2f67682f736974657061726b2f636f6d706f7365722d70726f6a6563742f6272616e63682f6d61696e2f67726170682f62616467652e7376673f746f6b656e3d36384d6b356a31425933)](https://codecov.io/gh/sitepark/composer-project)

`composer-project` is a composer plugin for managing a project workflow based on this [Branching model](https://sitepark.github.io/github-project-workflow/branching-model.html)

Features:

- Determine the version of the active Git branch.
- Determination of the next version of the active Git branch.
- Checks if all dependencies are stable and the active git branch can be released.
- Create a hotfix branch from a released version.
- Create a release

`composer-project` supports the following branches

- `main`
- `support/[MAJOR].x`
- `hotfix/[MAJOR].[MINOR].x`

Install
-------

[](#install)

The plugin is intended to be used in a CI/CD environment and is installed there globally.

```
$ composer global require "sitepark/composer-project" --dev
```

Usage
-----

[](#usage)

After `composer-project` is installed, the following commands are available in the global composer:

- `composer project:version` - Outputs the current version of the Git branch
- `composer project:releaseVersion` - Outputs the next release version of the current Git branch. Here to the version of the last release of the Git branch is determined and for the branches `main` and `support/[MAJOR].x` the minor version is incremented by one. For branches of the form `hotfix/[MAJOR].[MINOR].x` the patch level is incremented by one.
- `composer project:verifyRelease` - It is checked whether the current branch is releasable. For this it is added whether all dependencies were defined with a stable version.
- `composer project:startHotfix` - Creates a hotfix branch of the form `hotfix/[MAJOR].[MINOR].x` based on the current checked out level, where this should be a tag level. the Current tag level should always be the latest patch level of a given minor version. This version is determined and based on this version the Hotifx branch is named.
- `composer project:release` - Here the next release version of the current branch is determined and a tag of the form `[MAJOR].[MINOR].[PATCH]` is created. Releases can be created for the branches `main`, `support/[MAJOR].x` and `hotfix/[MAJOR].[MINOR].x`.

### `project:verifyRelease`

[](#projectverifyrelease)

You can use `project:verifyRelease` to check whether the current branch is releasable. This checks whether all dependencies have been defined with a stable version.

The stability of the versions is checked via `Composer\Semver\VersionParser:parseStability`. Possible values are: `dev`, `alpha`, `beta` `RC` or `stable`. The branch can only be released if all dependencies have been defined with the stability `stable`.

Use

```
composer show
```

To display all dependencies and their versions.

Configuration
-------------

[](#configuration)

### `allowed-stabilities`

[](#allowed-stabilities)

**default-value:** `["stable"]`

In exceptional cases, it may be necessary to create a release even though dependencies have been defined with non-stable versions. For example, the following configuration can be set for the project in the `composer.json` file:

```
{
  "extra" : {
    "verify-release" : {
      "allowed-stabilities" : ["beta"]
    }
  }
}
```

In this case, `beta` versions are also permitted. Several stability levels can be defined.

### `ignored`

[](#ignored)

**default-value:** `["roave/security-advisories"]`

It's also possible to declare dependencies which should be generally ignored when verifying dependencies:

```
{
  "extra" : {
    "verify-release" : {
      "ignored" : ["roave/security-advisories", "phpcompatibility/php-compatibility"]
    }
  }
}
```

###  Health Score

51

—

FairBetter than 96% of packages

Maintenance83

Actively maintained with recent releases

Popularity24

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 74.5% 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 ~72 days

Recently: every ~21 days

Total

15

Last Release

88d ago

PHP version history (4 changes)1.0.0PHP &gt;=8.0 &lt;8.3

1.2.0PHP &gt;=8.0 &lt;8.4

1.5.0PHP &gt;=8.0 &lt;8.5

1.9.0PHP &gt;=8.0 &lt;8.6

### Community

Maintainers

![](https://www.gravatar.com/avatar/d5cce5967bf0e9502713f49d1794da9bca3f153459af1ea2772f669c7fc64b91?d=identicon)[sitepark](/maintainers/sitepark)

---

Top Contributors

[![sitepark-veltrup](https://avatars.githubusercontent.com/u/92872893?v=4)](https://github.com/sitepark-veltrup "sitepark-veltrup (38 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (9 commits)")[![Schleuse](https://avatars.githubusercontent.com/u/2717384?v=4)](https://github.com/Schleuse "Schleuse (4 commits)")

---

Tags

plugincomoserproject-workflowrelease-process

###  Code Quality

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/sitepark-composer-project/health.svg)

```
[![Health](https://phpackages.com/badges/sitepark-composer-project/health.svg)](https://phpackages.com/packages/sitepark-composer-project)
```

###  Alternatives

[vaimo/composer-patches

Applies a patch from a local or remote file to any package that is part of a given composer project. Patches can be defined both on project and on package level. Optional support for patch versioning, sequencing, custom patch applier configuration and patch command for testing/troubleshooting added patches.

2994.3M16](/packages/vaimo-composer-patches)[ergebnis/composer-normalize

Provides a composer plugin for normalizing composer.json.

1.1k37.3M2.1k](/packages/ergebnis-composer-normalize)[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)[ramsey/conventional-commits

A PHP library for creating and validating commit messages according to the Conventional Commits specification. Includes a CaptainHook action!

1931.2M122](/packages/ramsey-conventional-commits)[ffraenz/private-composer-installer

A composer install helper for private packages

2331.7M5](/packages/ffraenz-private-composer-installer)

PHPackages © 2026

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