C'est peut-être une bizarrerie personnelle, mais j'aime garder le code à jour des projets vivants - y compris les bibliothèques / cadres qu'ils utilisent. En partie, je pense qu'une application Web est plus sécurisée si elle est entièrement corrigée et à jour. Une partie de cela est juste une touche de compulsivité obsessionnelle de ma part.
Au cours des sept derniers mois, nous avons procédé à une réécriture majeure de notre logiciel. Nous avons abandonné le framework Xaraya, qui était lent et essentiellement mort en tant que produit, et converti en Cake PHP. (Nous avons choisi Cake car cela nous a donné la chance de faire une réécriture très rapide de notre logiciel, et suffisamment d'amélioration des performances par rapport à Xaraya pour que cela en vaille la peine.)
Nous avons implémenté les tests unitaires avec SimpleTest et suivi toutes les conventions de dénomination des fichiers et des bases de données, etc.
Cake est maintenant mis à jour vers 2.0. Et, il ne semble pas y avoir de chemin de migration viable pour une mise à niveau. Les conventions de dénomination des fichiers ont radicalement changé et ils ont abandonné SimpleTest en faveur de PHPUnit.
Cela va nous forcer à rester sur la branche 1.3 car, à moins qu'il n'y ait une sorte d'outil de conversion, il ne sera pas possible de mettre à jour Cake puis d'améliorer progressivement notre code hérité pour profiter des avantages du nouveau cadre Cake . Donc, comme d'habitude, nous allons nous retrouver avec un ancien framework dans notre dépôt Subversion et le patcher nous-mêmes au besoin.
Et c'est ce qui m'attire à chaque fois. De nombreux produits open source ne facilitent pas la mise à jour des projets basés sur eux. Lorsque les développeurs commenceront à jouer avec un nouveau jouet brillant, quelques correctifs critiques seront effectués sur les anciennes branches, mais la plupart de leurs efforts seront concentrés sur la nouvelle base de code.
Comment gérez-vous les changements radicaux dans les projets open source que vous utilisez? Et, si vous développez un produit open source, gardez-vous à l'esprit les chemins de mise à niveau lorsque vous développez de nouvelles versions?