Following on from composer/composer#12719, I have today learned that the stability suffixes apply to the package and not the particular version constraint that it is written on. This means that the following composer.json can be further normalised:
{
"require": {
"symfony/uid": "^8.0 || ~8.1.0@dev"
}
}
With this composer.json, running composer update --prefer-lowest will install version v8.0.0-BETA1. This means that the constraint could be normalised to ^8.0@dev (as the ^8.0 already covers / includes ~8.1.0, and the @dev is handled separately to the version constraint). Or perhaps @dev ^8.0 would be a more clear way to normalise this constraint.
Following on from composer/composer#12719, I have today learned that the stability suffixes apply to the package and not the particular version constraint that it is written on. This means that the following
composer.jsoncan be further normalised:{ "require": { "symfony/uid": "^8.0 || ~8.1.0@dev" } }With this
composer.json, runningcomposer update --prefer-lowestwill install versionv8.0.0-BETA1. This means that the constraint could be normalised to^8.0@dev(as the^8.0already covers / includes~8.1.0, and the@devis handled separately to the version constraint). Or perhaps@dev ^8.0would be a more clear way to normalise this constraint.