stavo parlando con un capo tecnico ieri. Si tratta di un progetto in C ++ che dipende da opencv e voleva includere una versione opencv specifica in svn e continuare a utilizzare questa versione ignorando eventuali aggiornamenti con i quali non ero d'accordo. Abbiamo avuto un'accesa discussione a riguardo.
I suoi argomenti:
-
Tutto deve essere consegnato in un unico pacchetto e non possiamo chiedere al cliente di installare librerie esterne.
-
Dipendiamo da una versione fissa in modo che i nuovi aggiornamenti di opencv non danneggino il nostro codice.
-
Non possiamo garantire che all'interno di un aggiornamento di versione, ex da 3.2.buildx a 3.2.buildy.
-
Buildy le firme delle funzioni non cambieranno.
I miei argomenti:
-
Vero tutto deve essere consegnato al client come un unico pacchetto, ma è a questo che servono gli script di compilazione. Scaricano le librerie esterne e creano un pacchetto.
-
Negli aggiornamenti della stessa versione 3.2.buildx alla 3.2.buildy è impossibile una modifica della firma, a meno che non sia un framework davvero schifoso, che non è il caso con opencv.
-
Ci priviamo dei nuovi aggiornamenti e funzionalità di quella libreria.
-
Se c'è un bug nella versione che abbiamo preso, e anche se c'è una correzione di bug più tardi, non saremo in grado di ottenere quella correzione.
-
È semplicemente inefficiente e anti design dipendere da una determinata versione / build di una libreria esterna poiché rende difficile in futuro il nostro progetto di adottare nuove modifiche.
Quindi mi piacerebbe sapere cosa ne pensate voi ragazzi. Ha davvero senso includere una versione specifica della libreria esterna nel nostro svn e continuare a usarlo ignorando tutti gli aggiornamenti?