「上流」とは何ですか?


27

ソフトウェアの設計などに関しては、「アップストリームにマージする」などの方が良いと言う人が常にいます。私は主流のLinuxカーネルのものと関係があると感じていますが、おそらく間違っています。

また、「上流」の反対は何ですか。「上流」に行くのが良くない場合、代替手段とその理由は何ですか?

回答:


33

アップストリームとは、議論されているコンポーネントの発信元を指します。

たとえば、libtransmissionに基づくトレントクライアントを作成した場合、libtransmissionに戻って追跡されるバグがクライアントで見つかります。このバグは、クライアントに含まれているパッチで修正されています。

このコンテキストでパッチをアップストリームにマージすると、libtransmissionの作成者にパッチを送信して含めるようになります。この方法では、修正はlibtransmissionに基づくすべてのプロジェクトに伝播されます。

アップストリームをマージする別の方法は、パッチを自分で保持することです。


それで、アップストリームのすべてをマージすることは、オープンソースの考え方と一緒ですか?いくつかのソフトウェアの1つの修正?
-n0pe

4
アップストリームのマージは、ソースにアクセスでき、バグを自分で見つけて修正できるため、オープンソースソフトウェアで実行できます。クローズドソースでは、ほとんどの関係者はそのようなアクセス権を持たないため(状況によってはライセンスに含まれる場合があります)、バグの報告や回避策の発見に限定されます。アップストリームとは、ソフトウェア開発への多層アプローチを指し、バグ修正だけでなく改善にも適用されます。
-plco

別の言い方をすれば、「上流」とは「ソースの入手元」を意味します。オープンソースの世界以外では、ソースをまったく入手しなかったため、アップストリームはありません。=)
rakslice

21

例としてUbuntuを使用します。

Ubuntuは、大小さまざまなソフトウェアをまとめて配布するディストリビューションです。グラフィックドライバー、Xサーバー、Gnomeなどがあります。Ubuntu自体はこれらのソフトウェアを開発していません。Ubuntuは、ソフトウェアを「ちょうど」まとめて、個々のコンポーネントが確実に連携するようにします。Ubuntuが一緒に梱包しているすべてのソフトウェアは、Ubuntuの観点から上流と呼ばれています。

そのようなソフトウェアをすべて組み合わせるプロセスでは、バグが発生する可能性があります。バグは、gnomeなどのソフトウェアコンポーネントの1つにあるか、Ubuntuが非常に特殊な方法で処理している可能性があります。結局のところ、ディストリビューションは独自の非常に特別な方法でいくつかのことを行うため、ディストリビューションです。

バグの原因がUbuntuの動作方法にある場合、Ubuntu自体でそのバグを修正する必要があります。バグが実際にソフトウェアコンポーネントの1つ(Gnomeなど)にある場合、UbuntuはGnomeにパッチを適用する必要があります。UbuntuがパッチをGnomeに送り返すため、他の人もパッチの恩恵を受けることができる場合、Ubuntuはそのパッチをアップストリームに送信します。

Ubuntuがそのパッチをアップストリームに送信しないことを決定した場合、またはアップストリームプロジェクトがパッチを拒否した場合(ただし、ubuntuはまだパッチを保持することにした場合)、Ubuntuは技術的にプロジェクトを分岐しました。

アップストリームの反対はダウンストリームであり、UbuntuはGnomeのダウンストリームです。私は頻繁に使用される用語を聞いたり読んだりしません。

ウィキペディアのアップストリームに関する記事も参照してください。

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