civicrm/composer-downloads-plugin
Composer plugin for CiviCRM projects that downloads extension archives and other remote packages during install or update. It brings external CiviCRM downloads into Composer dependency management, reducing manual steps and helping keep site builds reproducible.
composer.json constraint (^3.0 vs. a tighter pin) and whether the lockfile change ships behind the platform upgrade ticket rather than a standalone dependency PR.Caveat for the decision record: the release note is a single line. It confirms Composer 2.x support but does not state whether Composer 1.x support was dropped, what else changed under the major-version bump, or whether there are migration steps. Treat the breaking-change assumption as unverified until the changelog and diff are reviewed.
Adopt when:
Look elsewhere, or defer, when:
Due diligence before adoption: read the v3.0.0 diff, check the composer.json constraints for both composer-plugin-api/platform requirements and framework versions, and confirm the license and security-reporting channel.
For executives. This is a maintenance release that keeps a dependency current with Composer 2, the supported line of PHP's package manager. Composer 1 is end-of-life and receives no security fixes, so every package we depend on that cannot run on Composer 2 is a liability that compounds. Adopting v3.0.0 is a small, contained piece of work that reduces that liability and avoids a future forced migration under time pressure. There is no new product capability here and no user-facing change — the value is in retiring technical debt and keeping our dependency set patchable.
For engineering leads. Treat v3.0.0 as a breaking change by default: a major version that adds Composer 2 support is almost certainly a major version that removes Composer 1 support, and the release note does not say so explicitly. Before merging: review the changelog and diff, confirm the minimum PHP and Laravel versions, and check whether the package's composer.json allows the platform versions we actually run. Constrain the dependency in composer.json rather than relying on a floating range, and let the lockfile change land through a reviewed dependency-upgrade PR — ideally coupled to the Composer 2 cutover ticket so the two moves are tested together. Run the CI matrix against our oldest supported runtime as well as the current one; if any environment is still on Composer 1.x, it stays pinned to v2.x until that migration completes, and we should record that exception explicitly rather than leaving it implicit.
Bottom line for the go/no-go: adopt where we are already Composer 2-capable, gate it on a reviewed changelog and a passing CI matrix, and hold any Composer 1.x environments at the previous major until they migrate. The release is worth taking; the documentation around it is thin enough that verification, not the release itself, is the real work.
How can I help you explore Laravel packages today?