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(8mo ago)06331GPL-2.0-or-laterPHPPHP ~8.3.0

Since Aug 26Pushed 1mo 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 2d 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

54

—

FairBetter than 97% of packages

Maintenance79

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

91d 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

[franzl/studio

Develop your Composer libraries with style

1.1k634.5k15](/packages/franzl-studio)[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)[civicrm/civicrm-core

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

728272.9k20](/packages/civicrm-civicrm-core)[mediamonks/composer-vendor-cleaner

Removes as much as possible from your vendor dir when space or number of files is important

2658.4k](/packages/mediamonks-composer-vendor-cleaner)

PHPackages © 2026

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