Что такое «вверх по течению»?

27

Я всегда слышу, как люди говорят, что лучше «объединить поток» и тому подобное, когда дело доходит до разработки программного обеспечения и тому подобного. У меня есть чувство, что это связано с основной частью ядра Linux, но я, вероятно, ошибаюсь.

А также, что является противоположностью «вверх по течению». Если нехорошо идти «вверх по течению», какая альтернатива и почему?

n0pe
источник

Ответы:

33

Восходящий поток относится к создателю обсуждаемого компонента.

Например, если вы написали торрент-клиент, основанный на libtransmission, то в вашем клиенте обнаружена ошибка, которая прослеживается до libtransmission. Ошибка исправлена ​​патчем, который теперь включен в ваш клиент.

Слияние патча с вышестоящей версией в этом контексте означает отправку патча авторам libtransmission для включения. Таким образом, исправление будет распространено на каждый проект, основанный на libtransmission.

Альтернативой слиянию апстрима является сохранение патча для себя.

PLCO
источник
Таким образом, объединение всего вышеперечисленного идет вместе с менталитетом Open-Source? Одно исправление для нескольких программ?
n0pe
4
Слияние с апстримом - это то, что вы можете делать с открытым исходным кодом, потому что у вас есть доступ к источнику, и вы можете сами находить и исправлять ошибки. В закрытом источнике большинство сторон не имеют такого доступа (хотя в некоторых ситуациях лицензия может включать его), поэтому они ограничены сообщением об ошибке и / или поиском обходных путей. Upstream относится к многоуровневому подходу к разработке программного обеспечения, а также относится к улучшениям, а не только к исправлениям ошибок.
plco
Другими словами: «вверх по течению» означает «от кого вы получили источник»; вне мира с открытым исходным кодом нет восходящего потока, так как вы вообще не получили исходный код. =)
Ракслице
21

Используя Ubuntu в качестве примера.

Ubuntu - это дистрибутив, который объединяет множество программ, маленьких и больших. Среди прочих графические драйверы, X-сервер и Gnome. Сама Ubuntu не разрабатывает эти программы. Ubuntu «просто» упаковывает программное обеспечение вместе, обеспечивая совместную работу отдельных компонентов. Все то программное обеспечение, которое Ubuntu собирает вместе, называется восходящим с точки зрения Ubuntu.

В процессе объединения всего этого программного обеспечения могут появляться ошибки. Ошибка может быть в одном из компонентов программного обеспечения, например, в gnome, или в особом способе Ubuntu. В конце концов, дистрибутив - это дистрибутив, потому что он делает некоторые вещи по-своему.

Если ошибка вызвана тем, как Ubuntu делает что-то, то Ubuntu придется исправить эту ошибку для себя. Если ошибка действительно присутствует в одном из компонентов программного обеспечения, например, в Gnome, то Ubuntu придется исправлять Gnome. Когда Ubuntu отправляет патч обратно в Gnome, чтобы другие также могли воспользоваться патчем, тогда Ubuntu отправляет этот патч в восходящем направлении .

Если Ubuntu решает не отправлять это исправление в восходящем направлении, или вышестоящий проект отклоняет исправление (но Ubuntu решает сохранить исправление), то Ubuntu технически разветвил проект.

Противоположность вверх по течению будет вниз по течению, Ubuntu находится ниже по течению от Gnome. Я не слышу / не читаю этот термин, используемый часто.

Смотрите также статью об апстриме в Википедии.

lesmana
источник