オープンソースアプリケーションの変更


9

最初に記述しなかったオープンソースアプリケーションに機能を追加する場合の一般的なワークフローは何ですか?コードを知るにはどうすればよいですか?変更または追加が必要なスポットを見つけるにはどうすればよいですか?他に何も壊さずに実際に変更するにはどうすればよいですか?すべてがまだ機能していることをテストするにはどうすればよいですか?
そのようなプロジェクトの一般的なガイドラインは何ですか?


2
他の人が利益を得られるように、プロジェクトへの変更を通常はパッチとして送信する必要もあります

回答:


6

いくつかのプロトコルがあり、だいたい誰もが時間とともにそれを廃止しますが、ここでは展開されています。

  • 分散ソースをダウンロードします。
  • あなたは少し自分でコードをナビゲートし始めます

    • それがコンパイルされたプログラムだ場合、あなたは学ぶ、それをコンパイルする方法。
    • コンパイルに失敗した場合は、作者/メーリングリストに報告し、指示を求めます
  • あなたがコードについて本当に理解していない場合...

    • まあ、いや、あなた彼らに近寄りません
    • あなたはおそらく標準に達しておらず、実際の助けにはなれないので、あなたはそれを落とします。
    • 著者が機能のリクエストを受け入れる場合は、機能を送信します。
  • そうしないと

    • 変えたい場所を見つけます。

    • 細かい点が気になる場合は、作者/メーリングリストに質問して、意図を説明してください。

    • ディストリビューションのメインディレクトリに移動します(一番上のディレクトリはuntarring / unzippingから出てきます)。

    • 君は diff -ur . > mypatch.path

    • あなたmypatch.patchは作者に、あなたが何をしたのか、なぜそれをしたのかを説明し、そして(すでにそこにいるので)パッチの権利を放棄することを明確に述べます。

  • 著者があなたの貢献を好まない場合

    • 何らかの変更をプラグインとしてリリースする方法があるかどうかを確認します

      • その場合は、プラグインの管理者になる準備が整いました
    • そうしないと

      • あなたはあなたのブログで状況について炎上し、そこでパッチをリリースします、無料でダウンロードしてあなたの説明とあなたの怒りを試してください、

      • あなたはたまにあなたのパッチのサポートを購入しようとするバグシステム/メーリングリストをたまに悩まされます。禁止されないようにしてください。

    • これらのいずれの場合も、コードをフォークすることはありません。これは非常に骨の折れるやりがいのないプロセスであるため、時間についていくことがほとんどできず、ユーザーを悲しく混乱させることになります。大企業がOSSに関する彼の決定をいじめようとしている場合にのみ、フォークシャウドは実際に起こります。

  • そうしないと

    • あなたはその著者からさらなる指示を受けます

側に:diff -ur .パッチに最近の代替があり、githubの方法です。

  • あなたはあなたの名前でgithubで彼らのコードを「フォーク」します
    (あなたはあなたのアカウントに彼らのコードのコピーを持っています)
  • あなたのgitをあなたのその個人的なコピーに接続し、
  • それに変更を加えて、チェックインし、
  • そして、主要な作者にあなたのgithubプロジェクトを見ることを伝えます。

  • 彼らがそれを好めば、彼らは同期します。

  • それ以外の場合は、ブログに「gitfork」をリンクできます。

OPが新機能のパッチを採用していないことで製品の作者を煽るよう提案するまでは問題ありませんが、これが面白いのか深刻なものなのか、どちらにせよ、はっきりとはわかりません。製品チームは、新機能のパッチが気に入らない/望んでいません。ぜひ、投稿してください。ただし、決定がどのように非論理的であるかに関係なく、受け入れられなかった場合は常に大々的にしてください。-1-参考までに、あなたがそれを削除した場合、私は喜んで私の投票を取り消します。
ocodo 2011

私が変更したいアプリケーションは、私の変更によって標準を破る厳しい標準に従っています。私は自分のパッチを適用するよう依頼する立場にもないと思います。
ダニ

@Slomojo OSSは未熟な人々でいっぱいであり、そのようなことは常に発生します。誰もがラバのように動作するように準備し、その後、ときどき堅固で時には不愉快あることに基づいて拒否する必要があります。そして、少なくとも、あなたは常にそれについて怒りの機会を持ち、あなたがおそらく正しいと思う人を見つけることができます。さて、フォークからフォークすることは、それは間違った、そして非常に子供っぽい一歩となるでしょう。
ZJR 2011

@Dani LOL、あなたは本当にパッチを共有してそれについて怒鳴る必要があります。それはあなたの人生を消費するのでフォークを避けてください、それは給料なしで継続的にリファクタリングするような気がします。とにかく、メーリングリストとバグレポートシステムがある場合は、そのような種類の拡張機能に興味があるかどうかを確認してください。何よりよいのは、拡張するためのAPIや、変更をプラグインするためのプラグインなどでした。そのような場合、それは常に最良のオプションです:プラグインの維持。...でそれを編集します。
ZJR

2
自動テストケースがある場合は、パッチを送信する前に実行してください。
oenone 2011

0

通常。

ランダムなOSプロジェクトの場合は、あちこちでマイナーなバグを修正するでしょう。

最終的には、一連の変更を「パッチ」として送信します。

自分の物が良ければ、通常はコミット権を取得します。

私は一般的な質問であり、質問のためにできるだけ曖昧で具体的ではありません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.