web-dev-qa-db-ja.com

composer.jsonで「dev-master」を使用する必要があるのはいつですか?

私は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とその理由は何ですか。

22
lvarayut

可能な限り、特定の(せいぜい安定したタグが付けられた)バージョンを使用する必要があります。

composer.lockdev-masterを使用している場合でも特定のコミットに依存関係をロックしますが、composer updateはすべて依存関係を最新バージョンに更新し、その後ロックファイルを更新します。

ロックファイルが何らかの理由で削除/失われ、バックアップされていない/バージョン管理下にある場合、composer installまたはcomposer update!を実行すると、プロジェクトが機能しなくなる可能性があります。

単純な例はsymfony/symfony自体です...新しいコミットは、アプリケーションが機能しない状態になると、いつでもdev-masterブランチに新しいBC(下位互換性)ブレークを導入する可能性があります。

23