私はSymfony2を使い始めており、多くのチュートリアルに従っています。 composer.json
を使用していくつかの新機能をインストールすると、「常に」dev-master
を宣言したことがわかりました。彼らがいつもそれを使う理由は分かりません。 DoctrineFixturesBundle の例:
{
"require": {
"doctrine/doctrine-fixtures-bundle": "dev-master"
}
}
実際、私はググってみて、stable
バージョンの代わりにdev-master
を使用すると、今日のバージョンはおそらく1.5.0
で、明日は1.6.0
かもしれないので、将来的にはいくつかの競合が発生します。
それで、実際の作業で実際に使用するもの-dev-master
またはspecified version
とその理由は何ですか。
可能な限り、特定の(せいぜい安定したタグが付けられた)バージョンを使用する必要があります。
composer.lock
はdev-master
を使用している場合でも特定のコミットに依存関係をロックしますが、composer update
はすべて依存関係を最新バージョンに更新し、その後ロックファイルを更新します。
ロックファイルが何らかの理由で削除/失われ、バックアップされていない/バージョン管理下にある場合、composer install
またはcomposer update
!を実行すると、プロジェクトが機能しなくなる可能性があります。
単純な例はsymfony/symfony
自体です...新しいコミットは、アプリケーションが機能しない状態になると、いつでもdev-master
ブランチに新しいBC(下位互換性)ブレークを導入する可能性があります。