2012-12-20 20 views
7

私は、新しいプロジェクトと作曲家を使ったSymfony 2の依存関係のかなりのピクルに入っています。作者、最低限の安定性と依存関係の依存性

最初に、私はsymfony/framework-standard-edition v2.1.5を作曲家を使ってインストールします。これにより、これらの要件を持ち、最小安定性ノードを持たないコンポーザファイルが生成されます。

"require": { 
    "php": ">=5.3.3", 
    "symfony/symfony": "2.1.*", 
    "doctrine/orm": ">=2.2.3,<2.4-dev", 
    "doctrine/doctrine-bundle": "1.0.*", 
    "twig/extensions": "1.0.*@dev", 
    "symfony/assetic-bundle": "2.1.*", 
    "symfony/swiftmailer-bundle": "2.1.*", 
    "symfony/monolog-bundle": "2.1.*", 
    "sensio/distribution-bundle": "2.1.*", 
    "sensio/framework-extra-bundle": "2.1.*", 
    "sensio/generator-bundle": "2.1.*", 
    "jms/security-extra-bundle": "1.2.*", 
    "jms/di-extra-bundle": "1.1.*", 
    "kriswallsmith/assetic": "1.1.*@dev" 
}, 

これはうまくいきます。正常に動作し、すべての最新の安定版がインストールされます。

次に、私がバンドルを追加 - >https://packagist.org/packages/kunstmaan/admin-bundle

"require": { 
    "php": ">=5.3.3", 
    "symfony/symfony": "2.1.*", 
    "doctrine/orm": ">=2.2.3,<2.4-dev", 
    "doctrine/doctrine-bundle": "1.0.*", 
    "twig/extensions": "1.0.*@dev", 
    "symfony/assetic-bundle": "2.1.*", 
    "symfony/swiftmailer-bundle": "2.1.*", 
    "symfony/monolog-bundle": "2.1.*", 
    "sensio/distribution-bundle": "2.1.*", 
    "sensio/framework-extra-bundle": "2.1.*", 
    "sensio/generator-bundle": "2.1.*", 
    "jms/security-extra-bundle": "1.2.*", 
    "jms/di-extra-bundle": "1.1.*", 
    "kriswallsmith/assetic": "1.1.*@dev", 
    "kunstmaan/admin-bundle": "dev-master" 
}, 

このバンドルは

https://packagist.org/packages/doctrine/doctrine-fixtures-bundle) "DEV-マスター" の "教義/ドクトリン・備品・バンドル" に依存し、そのバンドルが依存*(https://packagist.org/packages/doctrine/data-fixtures

私がプロジェクトでコンポーザーアップデートを実行すると、doctrine/data-fixturesの依存関係を満たすものがないことがわかります。名前のタイプミス、または最小安定性がデフォルトで安定しているため、使用可能な「安定」バージョンがありません。

doctrine-fixtures-bundleを "dev"安定性にインストールしたいのは、dev-masterを置くと自動的にこの依存性が "dev"安定性に置かれるからです。しかし、これはこのデポのデープのために何もしません、彼らは私の最小限の安定性であるので、安定してインストールしたいと思っています。

この時点では、doctrine/data-fixtures:dev-masterを追加するか、プロジェクトのcomposer.jsonに@devを付けて修正できます。

しかし、これは一例(knpmenubundle、fosuserbundleなど)なので、自分の作曲者ファイルにインストールしないdepsのすべてのdepsを手動で追加しなければなりません。

もう一つの解決策は私のプロジェクトの最小安定性をdevに落とすことですが、その当時、Symfony2のような安定したものを含め、すべて私のdepsはタグ付きリリースではなく開発版をインストールします。

答えて

13

これ以外にも1つの良い方法があります:nag peopleので、より多くのリリースにタグを付けることができます。あなたが本当に不安定なもので作業する必要がある場合は、"@dev"が必要なものをすべてホワイトリストに入れることが最良の代替IMOです。安定していないより不安定な場合は、常に@stableとタグ付けし、最小安定度をdevに設定することができます。ほとんどの場合あなたのお尻を保存するロックファイルはまだあります;)

関連する問題