diff --git a/doc/04-schema.md b/doc/04-schema.md index 07626a1d9..e0a5f77d5 100644 --- a/doc/04-schema.md +++ b/doc/04-schema.md @@ -66,12 +66,16 @@ installer capable of installing packages of that type. Out of the box, composer supports two types: -* **library:** This is the default. It will simply copy the files to `vendor`. -* **composer-installer:** A package of type `composer-installer` provides an -installer for other packages that have a custom type. Symfony could supply a -`symfony/bundle-installer` package, which every bundle would depend on. -Whenever you install a bundle, it will fetch the installer and register it, in -order to be able to install the bundle. +- **library:** This is the default. It will simply copy the files to `vendor`. +- **metapackage:** An empty package that contains requirements and will trigger + their installation, but contains no files and will not write anything to the + filesystem. As such, it does not require a dist or source key to be + installable. +- **composer-installer:** A package of type `composer-installer` provides an + installer for other packages that have a custom type. Symfony could supply a + `symfony/bundle-installer` package, which every bundle would depend on. + Whenever you install a bundle, it will fetch the installer and register it, in + order to be able to install the bundle. Only use a custom type if you need custom logic during installation. It is recommended to omit this field and have it just default to `library`. diff --git a/res/composer-schema.json b/res/composer-schema.json index f6ecc1d51..b435408cd 100644 --- a/res/composer-schema.json +++ b/res/composer-schema.json @@ -9,7 +9,7 @@ "required": true }, "type": { - "description": "Package type, either 'library' for common packages, 'composer-installer' for custom installers, or a custom type defined by whatever project this package applies to.", + "description": "Package type, either 'library' for common packages, 'composer-installer' for custom installers, 'metapackage' for empty packages, or a custom type defined by whatever project this package applies to.", "type": "string" }, "target-dir": {