sbuerk / extended-path-repository
Composer plugin that extends the built-in path repository with additional version metadata detection and tolerant (non-failing) path matching.
Package info
github.com/sbuerk/extended-path-repository
Type:composer-plugin
pkg:composer/sbuerk/extended-path-repository
Requires
- php: ^8.2
- composer-plugin-api: ^2.9
- composer/semver: ^3.0
Requires (Dev)
- composer/composer: ^2.9
- friendsofphp/php-cs-fixer: ^3.64
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.0
This package is auto-updated.
Last update: 2026-07-05 17:28:29 UTC
README
A Composer plugin that extends the built-in
path repository with:
- Extended version detection – derive a path package's version from its
composer.jsonversion, fromextra."typo3/cms".version, or from a siblingVERSIONfile, before falling back to Composer's stock determination. - Tolerant path matching – a configured
urlthat matches nothing (a missing directory or an empty glob) is silently ignored instead of aborting the whole Composer run.
The plugin keeps the exact same configuration syntax as the stock path
repository ("type": "path"); once installed it transparently upgrades every
path repository in your project.
{
"repositories": [
{ "type": "path", "url": "packages/*" }
]
}
Installation
composer require sbuerk/extended-path-repository
Important
Because Composer instantiates repositories before plugins are activated, the
plugin must already be installed for its behaviour to apply. Install it first,
then add your (extended / tolerant) path repositories – see
docs/installation.md and
docs/limitations.md.
The plugin declares Composer's plugin-ordering hints in its composer.json
extra section so that, once present, it is activated as early as possible –
before normal packages are downloaded and installed:
{
"extra": {
"plugin-modifies-downloads": true,
"plugin-modifies-install-path": true,
"plugin-optional": false
}
}
plugin-modifies-downloads– Composer activates the plugin before other packages are fetched.plugin-modifies-install-path– Composer activates the plugin as early as possible.plugin-optional: false– the plugin must not be silently skipped in non-interactive runs.
These hints only affect ordering after the plugin is installed; they do not change the first-install caveat described above.
Requirements
- PHP 8.2+
- Composer 2.9+ (
composer-plugin-api: ^2.9)
Documentation
Short overview here – details live in docs/:
- Installation
- Configuration & usage
- Version detection
- How it works (architecture)
- Limitations
- Development & testing
Contributing
Contributions are welcome – please read CONTRIBUTING.md.
Releasing
Maintainers cut releases with the bin/release script:
bin/release x.y.z
It updates the changelog, opens and merges the release pull request, pushes the
version tag (which triggers the GitHub release) and re-opens the [Unreleased]
changelog section. See
CONTRIBUTING.md for the details.
Requires an authenticated gh CLI.
License
Released under the GNU General Public License v2.0 or later.