Je commence à utiliser Symfony2 et à suivre de nombreux tutoriels. J'ai constaté que lorsqu'ils ont installé de nouvelles fonctionnalités à l'aide de composer.json
, ils ont "toujours" déclaré dev-master
. Je ne connais pas les raisons pour lesquelles ils l'utilisent toujours. Un exemple de DoctrineFixturesBundle :
{
"require": {
"doctrine/doctrine-fixtures-bundle": "dev-master"
}
}
En fait, j'ai googlé et trouvé des gens qui ont écrit que si nous utilisons le dev-master
au lieu d'une version stable
. Il y aurait des conflits à l'avenir parce que la version d'aujourd'hui peut-être 1.5.0
et demain peut-être 1.6.0
.
Donc, ce que nous utilisons vraiment dans les travaux pratiques - dev-master
ou specified version
et pourquoi?
Dans la mesure du possible, vous devez utiliser une version spécifique (au mieux stable avec étiquette).
Tandis que composer.lock
verrouille la dépendance sur un commit spécifique même lorsque vous utilisez dev-master
... chaque composer update
mettra à jour la dépendance vers la dernière version et mettra ensuite à jour le fichier de verrouillage.
Si votre fichier de verrouillage est en quelque sorte supprimé/perdu et qu'il n'est pas sauvegardé/sous contrôle de version, vous pouvez facilement vous retrouver avec un projet qui ne fonctionne pas après avoir exécuté composer install
ou composer update
!
Un exemple simple serait symfony/symfony
lui-même ... de nouveaux commits pourraient introduire de nouvelles ruptures BC (compatibilité descendante) dans le dev-master
branche à tout moment en laissant votre application dans un état non fonctionnel.