回答:
アップストリームとは、議論されているコンポーネントの発信元を指します。
たとえば、libtransmissionに基づくトレントクライアントを作成した場合、libtransmissionに戻って追跡されるバグがクライアントで見つかります。このバグは、クライアントに含まれているパッチで修正されています。
このコンテキストでパッチをアップストリームにマージすると、libtransmissionの作成者にパッチを送信して含めるようになります。この方法では、修正はlibtransmissionに基づくすべてのプロジェクトに伝播されます。
アップストリームをマージする別の方法は、パッチを自分で保持することです。
例として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のダウンストリームです。私は頻繁に使用される用語を聞いたり読んだりしません。
ウィキペディアのアップストリームに関する記事も参照してください。