Can you please help me to understand stability concept in composer
What makes a package considered as a particular stability?
- is it tag name?
- is it branch name?
- or something else?
When you create a package, how to set its stability, can you give examples for:
- dev
- alpha
- beta
- RC
- stable
- Can package A be considered stable if it requires as dependecy B that is dev?
- If I have a package Bar tagged v0.1.3 with composer.json with
"minimum-stability": "stable"
and I require to Bar package another package by cli command
composer require symfony/dom-crawler:4.2
There is no problem and the package is installed.
But when I have package Baz that has same as Bar composer.json
"minimum-stability": "stable"
and i require to the Baz package of Bar
composer require bar/package
i get error:
Installation request for bar/package ^0.1.3 satisfiable by bar/package[^0.1.3]
bar/package ^0.1.3 requires symfony/dom-crawler 4.2 -> satisfiable by symfony/dom-crawler[v4.2.0] but these conflict with your requirements or minimum-stability.
How this can conflict with minium stability? Both Bar and Baz have the same minimum stability in their composer.json
"minimum-stability": "stable"
and when I requested symfony/dom-crawler in Bar there was no conflict, so why there is a conflict when i require Baz as depencedny in Bar?
- Is package symfony/dom-crawler[v4.2.0] stable? and if not then what it is in terms of stability?