Rozmawiałem z kolegą o jednym raczej nieoczekiwanym/niepożądanym działaniu jakiegoś pakietu, którego używamy. Chociaż na naszym końcu jest łatwa łatka (lub przynajmniej obejście) bez widocznych efektów ubocznych, zdecydowanie zalecił rozszerzenie odpowiedniego kodu poprzez mocne łatanie i umieszczanie łaty w górę strumienia, miejmy nadzieję, że zostanie zaakceptowany w pewnym momencie w przyszłości. W rzeczywistości utrzymujemy poprawki przeciwko konkretnym wersjom kilku pakietów, które są stosowane automatycznie w każdej nowej kompilacji. Głównym argumentem jest to, że jest to słuszne, w przeciwieństwie do "brzydkiego" obejścia lub kruchej łatki małpy. Z drugiej strony, faworyzuję praktyczność nad czystością, a moja ogólna zasada jest taka, że "bez łatki"> "łatka małpy"> "łatka", przynajmniej dla czegoś innego niż (krytyczna) łatka.Do łatki (małpy) lub nie (małpy), to jest pytanie
Zastanawiam się, czy istnieje zgoda co do tego, kiedy lepiej jest (twarda) łatka, łatka małpy lub po prostu próbować obejść pakiet innej firmy, który nie robi dokładnie tego, co by się chciał. Czy ma to głównie związek z przyczyną łatki (np. Naprawianie błędu, modyfikowanie zachowania, dodawanie brakującej cechy), dany pakiet (rozmiar, złożoność, dojrzałość, responsywność programisty), coś innego lub nie ma ogólnych zasad i jeden powinien decydować indywidualnie dla każdego przypadku?
Inną korzyścią wysłaniem poprawkę upstream jest to, że można dostać to kod * przeglądowi przez ludzi kto stworzył oprogramowanie *. To nie jest nic nieznaczące. – Daenyth
Przesyłanie łatki jest wspaniałe, ale jakie są szanse, że twój patch zostanie przyjęty? Projekty Apache zaczęły się jako zbiór nieoficjalnych łatek dla https NCSA, ponieważ z jakiegoś powodu po prostu nie lubiły przyjmować łat. – Gabe