Saya selalu mendengar orang mengatakan lebih baik untuk "menggabungkan upstream" dan hal-hal seperti itu ketika datang untuk merancang perangkat lunak dan sejenisnya. Saya merasa ada hubungannya dengan hal-hal kernel linux mainstream tapi saya mungkin salah.
Dan juga, apa kebalikan dari "hulu". Jika tidak baik untuk pergi "hulu" apa alternatifnya dan mengapa?
sumber
Menggunakan Ubuntu sebagai contoh.
Ubuntu adalah distribusi yang mengemas banyak perangkat lunak bersama, kecil dan besar. Ada driver grafis, server X, dan Gnome, antara lain. Ubuntu sendiri tidak mengembangkan perangkat lunak itu. Ubuntu "hanya" mengemas perangkat lunak bersama, memastikan bahwa masing-masing komponen bekerja bersama. Semua perangkat lunak yang disatukan oleh Ubuntu disebut upstream dari sudut pandang Ubuntu.
Dalam proses menggabungkan semua perangkat lunak itu bersama bug mungkin muncul. Bugnya mungkin ada di salah satu komponen perangkat lunak, misalnya gnome, atau mungkin dengan cara yang sangat khusus Ubuntu dalam melakukan sesuatu. Lagi pula, distribusi adalah distribusi karena melakukan beberapa hal dengan caranya sendiri yang sangat istimewa.
Jika bug disebabkan oleh cara Ubuntu melakukan sesuatu, maka Ubuntu harus memperbaiki bug itu sendiri. Jika bug sebenarnya ada di salah satu komponen perangkat lunak, misalnya Gnome, maka Ubuntu harus menambal Gnome. Ketika Ubuntu mengirim kembali tambalan ke Gnome, maka yang lain juga dapat mengambil manfaat dari tambalan itu, lalu Ubuntu mengirim tambalan itu ke atas .
Jika Ubuntu memutuskan untuk tidak mengirim tambalan itu ke atas, atau proyek upstream menolak tambalan itu (tetapi ubuntu memutuskan untuk tetap menyimpan tambalan itu), maka secara teknis Ubuntu telah memotong proyek itu.
Kebalikan dari upstream adalah downstream, Ubuntu downstream dari Gnome. Saya tidak mendengar / membaca istilah yang sering digunakan.
Lihat juga artikel tentang hulu di Wikipedia.
sumber