{"adoption": {"forks": 171, "observed_at": "2026-08-28T04:03:14.483940+00:00", "stars": 1016}, "canonical_url": "https://ross.abutalabs.com/products/composer-merge-plugin", "card": {"archived": false, "artifact_type": "plugin", "description": "Merge one or more additional composer.json files at Composer runtime", "domain": ["developer-tools", "web-development"], "enriched": true, "function": ["package-manager", "plugin-system", "dependency-audit", "build-tool"], "health_score": 61, "homepage": null, "language": "PHP", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["wikimedia/composer-merge-plugin"], "name": "wikimedia/composer-merge-plugin", "platform": ["php", "cli", "cross-platform"], "pushed_at": "2026-02-17T18:54:18+00:00", "repo": "wikimedia/composer-merge-plugin", "stars": 1016, "tags": ["composer", "composer-plugin", "dependency-management", "mediawiki", "php", "automation"], "topics": [], "urls": [], "use_cases": ["merge multiple composer.json files into one build", "install dependencies from MediaWiki extensions via Composer", "manage optional libraries with a composer.local.json file", "combine dependency configs across submodules and extensions", "let deployments add extra Composer-managed packages to a shipped app"], "what_it_is": "A Composer plugin that merges one or more additional composer.json files into the base configuration at Composer runtime. It was created to simplify dependency management for applications like MediaWiki that combine core libraries with optional extensions managed via Composer.", "when_to_avoid": ["you only need a single standard composer.json workflow", "you use a package manager other than Composer", "you need Composer 1.x-only plugin features with Composer 2 installed"], "when_to_choose": ["your application ships a composer.json but deployments need additional extension dependencies", "you maintain a project with many sub-packages each having their own composer.json", "you use MediaWiki with Composer-managed extensions"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/composer-merge-plugin", "repo": "wikimedia/composer-merge-plugin", "role": "main", "score": 53}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:14.483940+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:11:22.382466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "959f3cb07584e015bf3fd104c733efed593005d69222829c4056b2c4b71d8b69", "fetched_at": "2026-08-28T04:03:14.483940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wikimedia/composer-merge-plugin"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:14.483940+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:11:22.382466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "959f3cb07584e015bf3fd104c733efed593005d69222829c4056b2c4b71d8b69", "fetched_at": "2026-08-28T04:03:14.483940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wikimedia/composer-merge-plugin"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:11:22.382466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "959f3cb07584e015bf3fd104c733efed593005d69222829c4056b2c4b71d8b69", "fetched_at": "2026-08-28T04:03:14.483940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wikimedia/composer-merge-plugin"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:14.483940+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:14.483940+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:14.483940+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:11:22.382466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "959f3cb07584e015bf3fd104c733efed593005d69222829c4056b2c4b71d8b69", "fetched_at": "2026-08-28T04:03:14.483940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wikimedia/composer-merge-plugin"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:14.483940+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:14.483940+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:11:22.382466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "959f3cb07584e015bf3fd104c733efed593005d69222829c4056b2c4b71d8b69", "fetched_at": "2026-08-28T04:03:14.483940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wikimedia/composer-merge-plugin"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:14.483940+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:14.483940+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:14.483940+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:11:22.382466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "959f3cb07584e015bf3fd104c733efed593005d69222829c4056b2c4b71d8b69", "fetched_at": "2026-08-28T04:03:14.483940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wikimedia/composer-merge-plugin"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:14.483940+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:14.483940+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:11:22.382466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "959f3cb07584e015bf3fd104c733efed593005d69222829c4056b2c4b71d8b69", "fetched_at": "2026-08-28T04:03:14.483940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wikimedia/composer-merge-plugin"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:11:22.382466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "959f3cb07584e015bf3fd104c733efed593005d69222829c4056b2c4b71d8b69", "fetched_at": "2026-08-28T04:03:14.483940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wikimedia/composer-merge-plugin"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:11:22.382466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "959f3cb07584e015bf3fd104c733efed593005d69222829c4056b2c4b71d8b69", "fetched_at": "2026-08-28T04:03:14.483940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wikimedia/composer-merge-plugin"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:11:22.382466+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "959f3cb07584e015bf3fd104c733efed593005d69222829c4056b2c4b71d8b69", "fetched_at": "2026-08-28T04:03:14.483940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wikimedia/composer-merge-plugin"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 68, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4272, "days_push": 197, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 53, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}