私は最近、小さいながらも有名なオープンソースプロジェクトにプルリクエストを送信しました。このプルリクエストにより、新しい機能と単体テスト(および既存のテストの改善)が追加されました。しかし、作者はこのプロジェクトのプルリクエストを受け付けていません...しかし、それは後私がすでに作業を行っているまで明らかにされませんでした。
今、私はこの余分なコードを置いています、そしてそれを無駄にするのは残念です。私はそれで何ができますか?そして、どうすればこの状況を将来回避できますか?
GitHub(およびおそらく他のサービスも)では、標準的な方法は、貢献者が必要とする情報を含むCONTRIBUTINGファイルをプロジェクトのルートディレクトリに含めることです。 GitHubも 潜在的な寄稿者が問題を作成したりリクエストをプルしたりするときにこのファイルのコンテンツに簡単にアクセスできるようにします 。貢献することを目的とした取り組みを行う前に、正しいことは、CONTRIBUTINGファイルを読むか、プロジェクトの所有者に連絡することです。これは、彼らにあなたの貢献を受け入れさせるためにあなたが何をする必要があるかを決定するのに役立ちます。
あなたが学んだことに基づいて、寄稿者がプルリクエストを受け入れるなら、それは素晴らしいことです。変更を加えてプルリクエストを送信できます。ガイドラインに従っている限り、それは受け入れられるべきです。しかし、プロジェクトがプルリクエストを受け入れていない場合はどうなりますか?または、何らかの理由でプルリクエストが受け入れられませんか?まだ選択肢があります。
まず、パッチファイルを作成できます。 Gitはこれをサポートしています 。どういうわけかパッチファイルを配布することができます。おそらく、プロジェクトに問題を作成し、パッチを添付します。それが非常に人気がある場合、おそらく作成者は再考するでしょう。閉鎖されるかもしれませんが、十分な詳細を提供すれば、同じものを検索している人々があなたの問題とパッチを見つけて、それを自分で適用できる可能性があります。
パッチについて注意すべき点-パッチは小さくしておくことをお勧めします。たとえば、既存のテストを改善したとおっしゃいました。パッチでは、機能を実装するための変更と、機能の機能を確認するための新しいテストまたは変更されたテストに焦点を当てます。
これだけでは不十分な場合は、プロジェクトをフォークすることを検討できます。 READMEで元のプロジェクトを指すことができます。元のプロジェクトと同期させる必要はありませんが、有益な場合があります。これにより、あなた(および作成者がプルリクエストを受け入れない場合は他の人)が変更を送信できるようになります。元のプロジェクトの変更でプロジェクトを最新の状態に保っていなくても、あなたの貢献は誰かを助けるかもしれません。
繰り返しになりますが、フォークを実行した場合は、元のプロジェクトに拡張リクエストとして問題を追加し、プロジェクトを指すことができます。それは他のプロジェクトの所有者にあなたの拡張が人気があるかどうかを見てそれを引き込むことを再考させたり、メインプロジェクトと問題を見つけて彼らを助ける何かを手に入れる人々を助けるかもしれません。
今後この状況を回避するには、コードの記述に時間を費やす前に、ソフトウェアのメンテナーに、コードを受け入れて機能を追加することに関心があるかどうかを尋ねてください。
プロジェクトの実行方法によっては、決定を下す前に、問題追跡システム、フォーラム、またはメーリングリストに機能要求を文書化することをお勧めします。