symplify/monorepo-builder
Tools for PHP monorepos: scaffold a repo, merge package composer.json files into the root, validate shared dependency versions, bump inter-package constraints, propagate versions back to packages, and automate releases via a single monorepo-builder.php config.
$container error on Symfony Console 8.1 (#119)Full Changelog: https://github.com/symplify/monorepo-builder/compare/12.7.0...12.7.1
disableAutoloadMerge(sections, forTypes) API — independently control which composer.json autoload sections (autoload, autoload-dev) get skipped from root merge, optionally filtered by package type. New Symplify\MonorepoBuilder\Config\AutoloadSection and Symplify\MonorepoBuilder\Config\PackageType enums power the API; mixing enum cases and plain strings in the same call is supported (escape hatch for composer/installers ecosystem types like wordpress-plugin, drupal-module, symfony-bundle, and for user-defined custom types). Multiple types are OR-matched. Two filter channels are intentionally distinct: pass forTypes: [] to skip every package regardless of type; pass a non-empty list to skip ONLY packages whose composer.json declares the matching type literally. (#117)MBConfig::shouldSkipAutoload(?string $packageType): bool and MBConfig::shouldSkipAutoloadDev(?string $packageType): bool let custom mergers consult the configured rules per package. The bundled AutoloadComposerKeyMerger and AutoloadDevComposerKeyMerger now consult them symmetrically. (#117)MBConfig::disableAutoloadMerge() continues to work but now emits an E_USER_DEPRECATED notice. It maps to skipping both sections for all packages — equivalent to disableAutoloadMerge(sections: [AutoloadSection::Autoload, AutoloadSection::AutoloadDev], forTypes: []). Update existing config files at your convenience.MBConfig::isAutoloadMergeDisabled() getter is marked [@deprecated](https://github.com/deprecated); prefer shouldSkipAutoload($packageType) and shouldSkipAutoloadDev($packageType) for new code.Full Changelog: https://github.com/symplify/monorepo-builder/compare/12.6.2...12.7.0
Full Changelog: https://github.com/symplify/monorepo-builder/compare/12.5.0...12.5.2
scripts-aliases, abandoned, readme, and any other non-standard keys in root composer.json are no longer silently dropped during merge (#105, #106)dataToAppend supports arbitrary composer.json keys — No longer limited to the 24 hardcoded sections (#105)composer.json is preserved by default — New sections are appended at the end; custom ordering is available via composerSectionOrder() (#107)ComposerJson::sortItemsByOrderedListOfKeys() and ArraySorter::recursiveSortBySchema()FilterOutDuplicatedRequireAndRequireDevJsonDecorator which was a no-op due to array_intersect comparing values instead of keysMergedAndDecoratedComposerJsonFactory (was merging object with itself)webmozart/assert ^2 (#103)ComposerJsonMerger and decoratorDECORATOR_ORDER constant for decorator execution orderingRequireRequireDevDuplicateCleaner, src-deps/composer-json-manipulator/Full Changelog: https://github.com/symplify/monorepo-builder/compare/12.4.5...12.5.0
How can I help you explore Laravel packages today?