web-dev-qa-db-ja.com

オープンソースプロジェクトをうまくフォークする

時間です。

愛するオープンソースプロジェクトにビジョンを追加するために長く懸命に努力してきました。そのプロジェクトは、取り組み、議論され、そして計り知れない量のコードと洞察に貢献してきました。

しかし、それは既存の開発者とうまくいかないでしょう。

最後にコードをフォークする必要があります。

これをどのように行い、既存のプロジェクトで可能な限り最良の条件を維持しますか? 「 ああそうですか?よろしくお願いします! "

交差選別のメカニズム のほかに、フォークの理由が論理的で許容できるものであると仮定すると、どのような問題が発生しますか?

コンペ?リソースの節約?ユーザーの密猟?

これらが問題と見なされなくなるほど多様化するまで、この間違いなく困難で長いプロセスをどのように進めますか?

決定の背後にある理由を議論するのではなく、コードをフォークすることが全体的な最善のソリューションであるとすでに確信していて、今のポイントは可能な限り最善の方法で前進することです。

-アダム

27
Adam Davis

自分のコードの分岐で作業したいですか、それともコミュニティを細分化したいですか?

私たちは内部でいくつかのプロジェクトをforkしました。変更を加えて所有者に発送します。彼らは「いいえ」と言い、肩をすくめて内部に持ち込み、自分で維持します。

心に留めておいてください、これらは巨大なプロジェクトではありませんでしたが、それはそれが行くところです。何も公開していない、サイトをホストしていない、など。残りのコードベースでソースをクライアントにプッシュするだけです。

Devメーリングリストよりも公にファッションの変更を「宣伝」する必要はまったくありませんでした。

オリジナルとの同等性を維持したい場合は、パッチ管理やマージなどに積極的に取り組む必要があります。

気になりたくない場合は、...しないでください。自分のプロジェクトにforkされたバージョンを単に必要とするのではなく、それが一般的な意図でない限り、それについて公表する理由はありません。

ソースはそこにありますので、それを使ってください。

20
Will Hartung

ほとんどのオープンソースプロジェクトでは、Wordの「フォーク」はそれほど温かく認識されていないことが多く、特定の機能セットを開発するために「トピックブランチ」で作業することを求める方がはるかに歓迎されるという経験を個人的に作りました。

そして、これは理にかなっています。「フォーク」は本来潜在的な競合相手ですが、「トピックブランチ」は-少なくとも設計上-最終的にプロジェクトにマージ/貢献されることを意味します。

8
none

最初に、実験的なリファクタリングを行いたいだけだと言います。あなたが知っている、あなたが遊んでみたいいくつかのアイデア。ただし、これらの変更により、プロジェクトのメインブランチとの下位互換性を解除する必要が生じる場合があるため、変更をコミットしないでください。

次に、フォークを作成します。もちろん、あなたは責任ある開発者なので、すべてのコードをリビジョン管理下に置いてください。 Launchpad、SourceForge、Google Codeなどを使用します。

しばらく寝転んで、自分で作業してください。次に、信頼できる人にあなたが作成したものを「見て」もらいます。その後、別の誰か。その後しばらくして、ソースを保持している場所ならどこでも、シンプルなプロジェクトのWebサイトを作成します。

その時までに、あなたが元のプロジェクトでうまくいっていないと思っていた人々もおそらく先に進んでいるでしょうから、怒る人は誰もいないでしょう。新しいプロジェクトがフォロワーを獲得するにつれて、元のプロジェクトの活動は低下します。


Codelogicのコメントについて:

正しい; OPが残したい人々は、自分でプロジェクトを維持することができないと思いました。

「組織は生き残るが、人々は生き残らない」と言っているのを聞いた。つまり、プロジェクトにとって非常に重要な人物が一人もいないため、残りのチームはその人物の離脱によって生じた空白を埋め合わせることができません。

ただし、オープンソースでは、創設者なしでプロジェクトを実行する意志、才能、および時間を誰も持っていないことがtrueである場合があります。

5
Bill Karwin