Potrebbe essere un mio capriccio personale, ma mi piace mantenere aggiornato il codice nei progetti viventi, incluse le librerie / i framework che usano. In parte credo che un'app Web sia più sicura se è completamente aggiornata e aggiornata. In parte è solo un tocco di ossessiva compulsività da parte mia.
Negli ultimi sette mesi, abbiamo effettuato una grande riscrittura del nostro software. Abbiamo abbandonato il framework Xaraya, che era lento e sostanzialmente morto come prodotto, e convertito in Cake PHP. (Abbiamo scelto Cake perché ci ha dato la possibilità di eseguire una rapida riscrittura del nostro software e un incremento delle prestazioni su Xaraya per farne valere la pena.)
Abbiamo implementato il test delle unità con SimpleTest e seguito tutte le convenzioni sui nomi di file e database, ecc.
La torta viene ora aggiornata 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 abbandonato SimpleTest in favore di PHPUnit.
Questo ci costringerà a rimanere nella sezione 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 sfruttare i vantaggi del nuova struttura della torta. Quindi, come al solito, finiremo con un vecchio framework nel nostro repository Subversion e lo applicheremo come necessario.
E questo è quello che mi fa ogni volta. Così tanti 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 lucido, verranno apportate alcune patch critiche ai rami più vecchi, ma la maggior parte del focus sarà sulla nuova base di codice.
Come gestisci i cambiamenti radicali nei progetti open source che usi? E, se stai sviluppando un prodotto open source, tieni a mente i percorsi di aggiornamento quando sviluppi nuove versioni?