コンポーザーを使用する大規模なプロジェクトでは、遅かれ早かれ1つの問題が発生します。 フレームワークまたは別のパッケージで、エラーを修正するか機能を追加します。開発者はプルリクエストを急いで受け入れません。 同時に、更新されたパッケージを一時的に使用し、プルリクエストがまだ受け入れられたら、公式バージョンに戻りたいと思います。 また、他のパッケージの依存関係でパッケージを指定できるため、状況は複雑です。
私自身もこの問題に遭遇しました:
yii / yii2-elasticsearchにはスクロールAPIのサポートはありませんが、必要です。 同時に、対応するプルリクエストは2015年10月以降ハングしています。 当然のことながら、必要な機能が実装されているプロジェクトにパッケージのバージョンを一時的に接続する方が便利だと思いました。 同時に、遅かれ早かれこのプルリクエストが受け入れられ、元に戻す必要があることを理解しています。
更新:判明したように、すべてがすでに決定さ
れて
おり、ドキュメントで詳細に説明さ
れています 。
1. forkを目的のパッケージバージョンにします。 私の場合、13leaf / yii2-elasticsearchから分岐しました。
beowulfenator / yii2-elasticsearchパッケージが登場しました。 パッケージに新しいブランチ、たとえば
bugfixを作成します。
2.
composer.jsonプロジェクトで、パッケージのバージョンを変更します。
dev-をブランチの名前に追加します。
"yiisoft/yii2-elasticsearch":"dev-bugfix"
3.プロジェクトの
composer.jsonでリポジトリへのリンクを指定します。
"repositories": [ { "type": "vcs", "url": "https://github.com/beowulfenator/yii2-elasticsearch.git" } ]
その後、
composer update
を実行すれば十分であり、公式パッケージの代わりに独自のパッケージが使用されます。
パッケージインスタンスのcomposer.jsonファイルでは、名前フィールドに「yiisoft / yii2-elasticsearch」と表示されることが重要です。 指定されたリポジトリーは明示的にpackagistよりも優先されるため、composerは公式のパッケージの代わりにパッケージを配置します。
それでも開発者がプルリクエストを受け入れた場合、composer.jsonの変更をキャンセルするだけで十分です。