Qu'est-ce que «en amont»?

27

J'entends toujours des gens dire qu'il vaut mieux "fusionner en amont" et des trucs comme ça quand il s'agit de concevoir des logiciels et autres. J'ai le sentiment que cela a à voir avec les trucs traditionnels du noyau Linux, mais je me trompe probablement.

Et aussi, quel est le contraire de "l'amont". S'il n'est pas bon d'aller "en amont" quelle est l'alternative et pourquoi?

n0pe
la source

Réponses:

33

En amont se réfère à l'initiateur du composant en cours de discussion.

Par exemple, si vous avez écrit un client torrent basé sur libtransmission, un bogue est détecté dans votre client et retracé jusqu'à libtransmission. Le bug est corrigé avec un patch qui est maintenant inclus dans votre client.

Fusionner le correctif en amont dans ce contexte signifierait envoyer le correctif aux auteurs de libtransmission pour inclusion. De cette façon, le correctif serait propagé à chaque projet basé sur libtransmission.

L'alternative à la fusion en amont consiste à conserver le correctif pour vous-même.

plco
la source
Donc, tout fusionner en amont va de pair avec la mentalité Open-Source? Un correctif pour plusieurs logiciels?
n0pe
4
La fusion en amont est quelque chose que vous pouvez faire avec un logiciel open source car vous avez accès à la source et vous pouvez trouver et corriger vous-même les bogues. En source fermée, la plupart des parties ne disposent pas d'un tel accès (bien que dans certaines situations la licence puisse l'inclure), elles se limitent donc à signaler le bogue et / ou à trouver des solutions. En amont se réfère à une approche multicouche pour développer des logiciels et s'applique également aux améliorations et pas seulement aux corrections de bugs.
plco
En d'autres termes: "en amont" signifie "de qui vous avez obtenu la source"; en dehors du monde Open Source, il n'y a pas en amont, car vous n'avez pas du tout obtenu la source. =)
rakslice
21

Utiliser Ubuntu comme exemple.

Ubuntu est une distribution qui regroupe de nombreux logiciels ensemble, petits et grands. Il existe des pilotes graphiques, le serveur X et Gnome, entre autres. Ubuntu lui-même ne développe pas ces logiciels. Ubuntu rassemble «simplement» le logiciel, en s'assurant que les composants individuels fonctionnent ensemble. Tous les logiciels qu'Ubuntu assemble sont appelés en amont du point de vue d'Ubuntu.

Dans le processus de combinaison de tous ces logiciels, des bugs peuvent apparaître. Le bogue peut être dans l'un des composants logiciels, par exemple gnome, ou il peut être lié à la manière très particulière dont Ubuntu fait les choses. Après tout, une distribution est une distribution parce qu'elle fait certaines choses à sa manière très spéciale.

Si le bogue est causé par la façon dont Ubuntu fait les choses, alors Ubuntu devra le corriger lui-même. Si le bogue se trouve en fait dans l'un des composants logiciels, par exemple Gnome, alors Ubuntu devra patcher Gnome. Lorsque Ubuntu renvoie le correctif à Gnome, afin que d'autres puissent également bénéficier du correctif, Ubuntu envoie ce correctif en amont .

Si Ubuntu décide de ne pas envoyer ce correctif en amont, ou si le projet en amont rejette le correctif (mais ubuntu décide de conserver le correctif), Ubuntu a techniquement bifurqué le projet.

L'opposé de l'amont serait en aval, Ubuntu est en aval de Gnome. Je n'entends pas / ne lis pas ce terme souvent utilisé.

Voir aussi l' article sur l'amont dans Wikipedia.

lesmana
la source