PHPackages                             pronovix/monorepo-helper - 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. pronovix/monorepo-helper

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

pronovix/monorepo-helper
========================

Monorepo helper Composer plugin.

5.3.0(9mo ago)06331GPL-2.0-or-laterPHPPHP ~8.3.0

Since Aug 26Pushed 2mo ago6 watchersCompare

[ Source](https://github.com/Pronovix/monorepo-helper)[ Packagist](https://packagist.org/packages/pronovix/monorepo-helper)[ RSS](/packages/pronovix-monorepo-helper/feed)WikiDiscussions master Synced 2w ago

READMEChangelogDependencies (14)Versions (307)Used By (0)

Monorepo Helper Composer plugin
===============================

[](#monorepo-helper-composer-plugin)

This Composer plugin finds all packages in a GIT monorepo and ensures every time when Composer installs *the latest version of a package* and the package is available inside the monorepo then the monorepo version of the package gets installed (symlinked or copied from the monorepo) instead other available versions.

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

[](#installation)

```
$ composer global require pronovix/monorepo-helper
```

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

[](#how-it-works)

The plugin tries to find the latest, valid, semantic versioning GIT tag in monorepo's remote origin. If it does not find a valid semantic versioning tag it falls back to the latest dev version.

The identified version from GIT tags should be always the same as the latest version available version on Packagist or in any other Composer repository from a library. For example, if the published version from the foo/bar package is "1.0.0-alpha1" on Packagist then it is expected to have a "1.0.0-alpha1" GIT tag in your monorepo's remote origin.

The plugin can only fetch the latest tags from the remote origin if the runtime environment has access to the origin repository (via API keys, SSH keys, etc.) If it does not have access to remote origin it is recommended to enable the plugin's offline mode and before every `composer` command make sure that the latest tags from the remote origin get fetched with `git fetch origin` manually or automatically.

Configuration options
---------------------

[](#configuration-options)

You can configure this plugin by setting the following configuration options in the root package's composer.json in the [extra](https://getcomposer.org/doc/04-schema.md#extra) section under the `monorepo-helper` key or with the related environment variables. The configuration in the root package's composer.json has the highest priority when the plugin's configuration gets resolved.

`{{"extra": {"monorepo-helper": { "key": "value"}}}}`Environment variableTypeDefault valueDescriptionenabledPRONOVIX\_MONOREPO\_HELPER\_ENABLEDboolTRUEAllows to disable the plugin. Could be useful if there is an unfixed error in the plugin.offline-modePRONOVIX\_MONOREPO\_HELPER\_OFFLINE\_MODEboolFALSEIf it is set to TRUE then the plugin does not try to fetch the latest tags from remote origin. You should ensures that latest tags are being fetched before the plugin actives.max-discover-depthPRONOVIX\_MONOREPO\_HELPER\_MAX\_DISCOVERY\_DEPTHint5The maximum package discovery depth from the monorepo's root.excluded-directoriesPRONOVIX\_MONOREPO\_HELPER\_EXCLUDED\_DIRECTORIESarray\[\]Set of excluded directories (besides vendor) where the plugin should not look for monorepo packages. The environment variable should contain a comma separated list.monorepo-rootPRONOVIX\_MONOREPO\_HELPER\_MONOREPO\_ROOTstringNULLCould be useful it the plugin installed globally. You can specify the root of the monorepo.Note: For boolean type configuration options use 1 or 0 in environment variables.

The plugin respects the [COMPOSER\_MIRROR\_PATH\_REPOS](https://getcomposer.org/doc/03-cli.md#composer-mirror-path-repos) configuration.

###  Health Score

52

—

FairBetter than 96% of packages

Maintenance72

Regular maintenance activity

Popularity14

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity93

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 71.4% 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 ~8 days

Recently: every ~39 days

Total

305

Last Release

139d ago

Major Versions

2.14.4-alpha1 → 3.0.12021-05-06

3.15.1 → 4.1.0-alpha22023-08-23

4.12.0 → 5.0.0-alpha12025-04-25

PHP version history (8 changes)3.0.0-alpha2PHP ^7.3.0

3.2.0-alpha3PHP ^7.4.0

3.7.0-alpha1PHP ~7.4.0 || ~8.0.0 || ~8.1.6

3.7.0-alpha2PHP ~7.4.0 || ~8.1.6

3.12.0-alpha1PHP ~8.1.6

4.8.0-alpha2PHP ~8.1.6 || ~8.2.0

4.11.0-alpha1PHP ~8.1.6 || ~8.2.0 || ~8.3.0

4.12.3PHP ~8.3.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/4b934519ad88d26f2171de1abed39ae7441ac3f3947a3b25e4bc46aa41939ae6?d=identicon)[tamasd](/maintainers/tamasd)

---

Top Contributors

[![mxr576](https://avatars.githubusercontent.com/u/1755573?v=4)](https://github.com/mxr576 "mxr576 (15 commits)")[![morvaim2](https://avatars.githubusercontent.com/u/52444452?v=4)](https://github.com/morvaim2 "morvaim2 (5 commits)")[![GaborSzanto85](https://avatars.githubusercontent.com/u/101284100?v=4)](https://github.com/GaborSzanto85 "GaborSzanto85 (1 commits)")

---

Tags

composermonorepocomposerutilitymonorepo

###  Code Quality

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/pronovix-monorepo-helper/health.svg)

```
[![Health](https://phpackages.com/badges/pronovix-monorepo-helper/health.svg)](https://phpackages.com/packages/pronovix-monorepo-helper)
```

###  Alternatives

[composer/composer

Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.

29.5k196.2M3.0k](/packages/composer-composer)[friendsofphp/php-cs-fixer

A tool to automatically fix PHP code style

13.5k245.4M24.2k](/packages/friendsofphp-php-cs-fixer)[symfony/framework-bundle

Provides a tight integration between Symfony components and the Symfony full-stack framework

3.6k246.0M11.2k](/packages/symfony-framework-bundle)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

101466.4k45](/packages/friendsoftypo3-content-blocks)[phpro/grumphp

A composer plugin that enables source code quality checks.

4.3k16.3M982](/packages/phpro-grumphp)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751284.3k37](/packages/civicrm-civicrm-core)

PHPackages © 2026

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