답변:
업스트림은 논의중인 구성 요소의 작성자를 나타냅니다.
예를 들어 libtransmission을 기반으로하는 토렌트 클라이언트를 작성한 경우, 클라이언트에서 libtransmission으로 추적되는 버그가 발견됩니다. 버그는 이제 클라이언트에 포함 된 패치로 수정되었습니다.
이 컨텍스트에서 패치를 업스트림으로 병합하면 패치를 libtransmission 작성자에게 보내서 포함시킬 수 있습니다. 이런 식으로 수정 사항은 libtransmission을 기반으로하는 모든 프로젝트에 전파됩니다.
업스트림 병합의 대안은 패치를 유지하는 것입니다.
우분투를 예로 사용합니다.
우분투는 크고 작은 많은 소프트웨어를 하나로 묶은 배포판입니다. 그래픽 드라이버, X 서버 및 Gnome이 있습니다. 우분투 자체는 이러한 소프트웨어를 개발하지 않습니다. 우분투는 소프트웨어를 함께 포장하여 개별 구성 요소가 함께 작동하는지 확인합니다. Ubuntu가 함께 제공하는 모든 소프트웨어 는 Ubuntu의 관점에서 업스트림 이라고 합니다.
모든 소프트웨어를 결합하는 과정에서 버그가 발생할 수 있습니다. 버그는 소프트웨어 구성 요소 중 하나 (예 : gnome)에 있거나 우분투가하는 특별한 방식 일 수 있습니다. 결국, 배포판은 배포판이 매우 특별한 방식으로 수행되기 때문에 배포판입니다.
우분투가하는 방식으로 버그가 발생하면 우분투는 그 버그를 스스로 수정해야합니다. 버그가 실제로 Gnome과 같은 소프트웨어 구성 요소 중 하나에있는 경우 Ubuntu는 Gnome을 패치해야합니다. Ubuntu가 패치를 Gnome으로 다시 보낼 때 다른 사람들도 패치의 혜택을 볼 수 있으면 Ubuntu는 해당 패치를 업스트림으로 보냅니다 .
우분투가 해당 패치를 업스트림으로 보내지 않기로 결정하거나 업스트림 프로젝트가 패치를 거부하면 (우분투가 여전히 패치를 유지하기로 결정한 경우) 우분투는 기술적 으로 프로젝트를 분기 했습니다.
업스트림의 반대쪽은 다운 스트림이되고, 우분투는 그놈의 다운 스트림입니다. 자주 사용되는 용어를 듣지 못합니다.