1
0
Fork 0

Update docs and add more helpful output to validate command, refs #9782

pull/9900/head
Jordi Boggiano 2021-05-20 16:11:51 +02:00
parent 89c3045e2b
commit 458bd41d8f
No known key found for this signature in database
GPG Key ID: 7BBD42C429EC80BC
2 changed files with 13 additions and 1 deletions

View File

@ -94,7 +94,9 @@ Out of the box, Composer supports four types:
CMSs like the [SilverStripe installer](https://github.com/silverstripe/silverstripe-installer)
or full fledged applications distributed as packages. This can for example
be used by IDEs to provide listings of projects to initialize when creating
a new workspace.
a new workspace. Setting the type to `project` also makes the `name` and
`description` fields optional, making it a good choice for closed source
projects wishing to use `composer validate`.
- **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

View File

@ -63,6 +63,16 @@ class ConfigValidator
$json->validateSchema();
} catch (JsonValidationException $e) {
foreach ($e->getErrors() as $message) {
if ($message === 'type : The property type is required') {
$message .= ' (see https://getcomposer.org/doc/04-schema.md#type)';
}
if ($message === 'name : The property name is required') {
$message .= ' (or set "type" to "project" to remove this requirement)';
}
if ($message === 'description : The property description is required') {
$message .= ' (or set "type" to "project" to remove this requirement)';
}
if ($laxValid) {
$publishErrors[] = $message;
} else {