Potrebbe essere una mia stranezza personale, ma mi piace tenere aggiornato il codice nei progetti viventi, comprese le librerie / i framework che usano. Parte di ciò è che ritengo che un'app Web sia più sicura se è completamente patchata e aggiornata. Parte di esso è solo un tocco di compulsività ossessiva da parte mia.
Negli ultimi sette mesi, abbiamo fatto una riscrittura importante del nostro software. Abbiamo abbandonato il framework Xaraya, che era lento ed essenzialmente morto come prodotto, e convertito in Cake PHP. (Abbiamo scelto Cake perché ci ha dato la possibilità di eseguire una riscrittura molto rapida del nostro software e abbastanza un aumento delle prestazioni su Xaraya per far valere la pena.)
Abbiamo implementato unit test con SimpleTest e seguito tutte le convenzioni di denominazione di file e database, ecc.
Cake è ora in fase di aggiornamento alla 2.0. E non sembra esserci un percorso di migrazione praticabile per un aggiornamento. Le convenzioni di denominazione per i file sono cambiate radicalmente e hanno eliminato SimpleTest a favore di PHPUnit.
Questo ci costringerà a rimanere sul ramo 1.3 perché, a meno che non ci sia una sorta di strumento di conversione, non sarà possibile aggiornare Cake e quindi migliorare gradualmente il nostro codice legacy per raccogliere i benefici del nuovo framework Cake . Quindi, come al solito, finiremo con un vecchio framework nel nostro repository Subversion e lo ripareremo noi stessi secondo necessità.
E questo è ciò che mi prende ogni volta. Quindi molti prodotti open source non rendono abbastanza facile mantenere aggiornati i progetti basati su di essi. Quando gli sviluppatori iniziano a giocare con un nuovo giocattolo luccicante, verranno fatte alcune patch critiche ai rami più vecchi, ma la maggior parte del loro focus sarà sulla nuova base di codice.
Come gestite i cambiamenti radicali nei progetti open source che utilizzate? E, se stai sviluppando un prodotto open source, tieni a mente i percorsi di aggiornamento quando sviluppi nuove versioni?