Che cos'è "upstream"?


27

Sento sempre la gente dire che è meglio "fondersi a monte" e cose del genere quando si tratta di progettare software e simili. Ho la sensazione che abbia a che fare con roba del kernel Linux tradizionale ma probabilmente mi sbaglio.

E inoltre, qual è l'opposto di "upstream". Se non va bene andare "a monte" qual è l'alternativa e perché?

Risposte:


33

A monte si riferisce all'autore del componente in discussione.

Ad esempio, se hai scritto un client torrent basato su libtransmission, nel tuo client viene trovato un bug che viene rintracciato su libtransmission. Il bug è stato corretto con una patch che è ora inclusa nel tuo client.

Unire la patch a monte in questo contesto significherebbe inviare la patch agli autori di libtransmission per l'inclusione. In questo modo la correzione verrebbe propagata a tutti i progetti basati sulla trasmissione di libtr.

L'alternativa alla fusione a monte è mantenere la patch per te.


Quindi la fusione di tutto a monte si accompagna alla mentalità Open-Source? Una soluzione per diversi software?
n0pe

4
La fusione a monte è qualcosa che puoi fare con il software open source perché hai accesso alla fonte e puoi trovare e correggere i bug da solo. In una fonte chiusa, la maggior parte delle parti non ha tale accesso (sebbene in alcune situazioni la licenza possa includerla), pertanto si limitano a segnalare il bug e / o a trovare soluzioni alternative. L'upstream si riferisce a un approccio multistrato allo sviluppo di software e si applica anche a miglioramenti non solo a correzioni di bug.
plco,

Per dirla in altro modo: "upstream" significa "da chi hai ottenuto la fonte"; al di fuori del mondo Open Source, non vi è alcun upstream, in quanto non è stata ottenuta la fonte. =)
rakslice,

21

Usando Ubuntu come esempio.

Ubuntu è una distribuzione che riunisce molti software insieme, piccoli e grandi. Ci sono driver grafici, il server X e Gnome, tra gli altri. Ubuntu stesso non sta sviluppando quel software. Ubuntu sta "solo" mettendo insieme il software, assicurandosi che i singoli componenti funzionino insieme. Tutto quel software che Ubuntu sta mettendo insieme è chiamato upstream dal punto di vista di Ubuntu.

Nel processo di combinazione di tutto quel software insieme potrebbero apparire dei bug. Il bug potrebbe essere in uno dei componenti del software, ad esempio gnome, oppure potrebbe essere nel modo molto speciale in cui Ubuntu sta facendo le cose. Dopotutto, una distribuzione è una distribuzione perché fa alcune cose nel suo modo molto speciale.

Se il bug è causato dal modo in cui Ubuntu sta facendo le cose, allora Ubuntu dovrà risolvere quel bug da solo. Se il bug si trova in effetti in uno dei componenti software, ad esempio Gnome, Ubuntu dovrà correggere Gnome. Quando Ubuntu rinvia la patch a Gnome, così anche altri possono trarre vantaggio dalla patch, quindi Ubuntu sta inviando quella patch a monte .

Se Ubuntu decide di non inviare quella patch a monte, o se il progetto upstream rifiuta la patch (ma ubuntu decide di mantenere ancora la patch), Ubuntu ha tecnicamente biforcuto il progetto.

L'opposto dell'upstream sarebbe a valle, Ubuntu è a valle di Gnome. Non sento / leggo quel termine usato spesso.

Vedi anche l' articolo sull'upstream in Wikipedia.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.