10
votes

Boost Serialization Bibliothèque Upgrade

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?


0 commentaires

3 Réponses :


1
votes

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

Autre que cela, je suggérerais de demander la liste de diffusion de Boost: http://www.boost.org/community/groups.html#uSuers


0 commentaires

9
votes

Boost.Sérialisation est compatible en arrière-plan, mais est pas garanti d'être en avant compatible .

Cela signifie:

  • Vous pouvez créer une archive avec une ancienne version de Boost.Sérialisation qui peut être lu avec une version plus récente.
  • Il n'y a aucune garantie qu'une archive créée avec une version plus récente de Boost.Sérialisation sera lisible par un plus ancien.

    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.

    Le "format de fil" ne change pas avec toutes les versions 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.

    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 .


0 commentaires

1
votes

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.

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.

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 ...

Compatibilité prolongée à l'avant pour boost :: La sérialisation est répondit ici


0 commentaires