Comment savoir que je peux mettre à niveau en toute sécurité boost Bibliothèque de sérialisation sur un système de production sans casser la compatibilité avec les données existantes? Existe-t-il un test que je devrais exécuter pour être sûr que toutes les données stockées au format binaire par la version précédente de la bibliothèque seront lues avec succès par le nouveau? Boost Serialization Bibliothèque elle-même garantit une sorte de compatibilité entre les versions? P>
3 Réponses :
La version initiale était à Boost 1.32. Il semble que vous puissiez voir l'historique de la libération depuis lors: http://www.boost.org/doc/ LIBS / 1_43_0 / LIBS / SERIALIZZATION / DOC / SORTIE.HTML P>
Autre que cela, je suggérerais de demander la liste de diffusion de Boost: http://www.boost.org/community/groups.html#uSuers p>
Boost.Sérialisation est compatible en arrière-plan, mais est pas em> garanti d'être en avant compatible . p>
Cela signifie: p>
Si vous envoyez des messages entre un client et un serveur dans les deux sens, par exemple, vous devrez peut-être mettre à niveau la version de Boost sur Lockstep. P>
Le "format de fil" ne change pas avec toutes les versions em> de boost. Donc, entre 2 versions spécifiques de boost, vous n'avez peut-être pas de problème - je ne trouve pas de documentation spécifique dont la version du format d'archivage est utilisée dans quelle version de Boost. P>
Notez également que la compatibilité à l'envers est «garantie», c'est juste exprimer une intention - bien que je suppose que vous pourriez récupérer votre argent ;-). Boost Versions 1.42 et 1.43 a eu un bug qui signifiait que les versions ultérieures ne peuvent pas les lire - Voir les notes de version 1.45 . P>
Vous pouvez créer des fichiers de test à l'aide de votre version actuelle du logiciel et de les stocker. Ensuite, incluez le chargement de ces fichiers dans vos tests automatiques. P>
Malheureusement, même si votre code réussira ce test, vous ne pouvez pas être sûr de 100% à la compatibilité, car il peut toujours y avoir une sorte de contenu sérialisé qui ne peut pas être chargé. Eh bien, c'est encore mieux que rien. P>
Ce test ne couvrira automatiquement que la compatibilité en arrière. La compatibilité des tests (vers le haut) sera plus compliquée. On aura besoin de créer des données de test pour chaque nouvelle version et d'essayer de le charger par chaque ancienne version ... P>
Compatibilité prolongée à l'avant pour boost :: La sérialisation est répondit ici P>