Add stability docs
parent
453b9a616b
commit
44fdc05e45
|
@ -168,22 +168,10 @@ An example:
|
||||||
|
|
||||||
Optional, but highly recommended.
|
Optional, but highly recommended.
|
||||||
|
|
||||||
### Package links <span>(require, require-dev, conflict, replace, provide)</span>
|
### Package links
|
||||||
|
|
||||||
Each of these takes an object which maps package names to version constraints.
|
All of the following take an object which maps package names to
|
||||||
|
[version constraints](01-basic-usage.md#package-versions).
|
||||||
* **require:** Packages required by this package.
|
|
||||||
* **require-dev:** Packages required for developing this package, or running
|
|
||||||
tests, etc. They are installed if install or update is ran with `--dev`.
|
|
||||||
* **conflict:** Mark this version of this package as conflicting with other
|
|
||||||
packages.
|
|
||||||
* **replace:** Packages that can be replaced by this package. This is useful
|
|
||||||
for large repositories with subtree splits. It allows the main package to
|
|
||||||
replace all of it's child packages.
|
|
||||||
* **provide:** List of other packages that are provided by this package. This
|
|
||||||
is mostly useful for common interfaces. A package could depend on some virtual
|
|
||||||
`logger` package, any library that provides this logger, would simply list it
|
|
||||||
in `provide`.
|
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
@ -193,7 +181,59 @@ Example:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Optional.
|
All links are optional fields.
|
||||||
|
|
||||||
|
`require` and `require-dev` additionally support stability flags (root-only).
|
||||||
|
These allow you to further restrict or expand the stability of a package beyond
|
||||||
|
the scope of the [minimum-stability](#minimum-stability) setting. You can apply
|
||||||
|
them to a constraint, or just apply them to an empty constraint if you want to
|
||||||
|
allow unstable packages of a dependency's dependency for example.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
{
|
||||||
|
"require": {
|
||||||
|
"monolog/monolog": "1.0.*@beta"
|
||||||
|
"acme/foo": "@dev"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#### require
|
||||||
|
|
||||||
|
Lists packages required by this package. The package will not be installed
|
||||||
|
unless those requirements can be met.
|
||||||
|
|
||||||
|
#### require-dev
|
||||||
|
|
||||||
|
Lists packages required for developing this package, or running
|
||||||
|
tests, etc. They are installed if install or update is ran with `--dev`.
|
||||||
|
|
||||||
|
#### conflict
|
||||||
|
|
||||||
|
Lists packages that conflict with this version of this package. They
|
||||||
|
will not be allowed to be installed together with your package.
|
||||||
|
|
||||||
|
#### replace
|
||||||
|
|
||||||
|
Lists packages that are replaced by this package.
|
||||||
|
|
||||||
|
This is useful for packages that contain sub-packages, for example the main
|
||||||
|
symfony/symfony package contains all the Symfony Components which are also
|
||||||
|
available as individual packages. If you require the main package it will
|
||||||
|
automatically fulfill any requirement of one of the individual components,
|
||||||
|
since it replaces them.
|
||||||
|
|
||||||
|
Caution is advised when using replace however, for the sub-package example
|
||||||
|
above you should typically only replace using `self.version` as a version
|
||||||
|
constraint, to make sure the main package only replaces the sub-packages of
|
||||||
|
that exact version, and not any other version, which would be incorrect.
|
||||||
|
|
||||||
|
#### provide
|
||||||
|
|
||||||
|
List of other packages that are provided by this package. This is mostly
|
||||||
|
useful for common interfaces. A package could depend on some virtual
|
||||||
|
`logger` package, any library that implements this logger interface would
|
||||||
|
simply list it in `provide`.
|
||||||
|
|
||||||
### suggest
|
### suggest
|
||||||
|
|
||||||
|
@ -306,6 +346,19 @@ To do that, `autoload` and `target-dir` are defined as follows:
|
||||||
|
|
||||||
Optional.
|
Optional.
|
||||||
|
|
||||||
|
### minimum-stability <span>(root-only)</span>
|
||||||
|
|
||||||
|
This defines the default behavior for filtering packages by stability. This
|
||||||
|
defaults to `dev` but in the future will be switched to `stable`. As such if
|
||||||
|
you rely on a default of `dev` you should specify it in your file to avoid
|
||||||
|
surprises.
|
||||||
|
|
||||||
|
All versions of each package is checked for stability, and those that are less
|
||||||
|
stable than the `minimum-stability` setting will be ignored when resolving
|
||||||
|
your project dependencies. Specific changes to the stability requirements of
|
||||||
|
a given package can be done in `require` or `require-dev` (see
|
||||||
|
[package links](#package-links)).
|
||||||
|
|
||||||
### repositories <span>(root-only)</span>
|
### repositories <span>(root-only)</span>
|
||||||
|
|
||||||
Custom package repositories to use.
|
Custom package repositories to use.
|
||||||
|
|
Loading…
Reference in New Issue