Come faccio a sapere che posso aggiornare in modo sicuro Boost Serialization Library su un sistema di produzione senza compromettere la compatibilità con i dati esistenti? C'è qualche test che dovrei eseguire per essere sicuro che tutti i dati memorizzati nel formato binario dalla versione precedente della libreria saranno letti correttamente dal nuovo? La libreria Boost Serialization garantisce una sorta di compatibilità tra le versioni?Upgrade della libreria di serializzazione
risposta
La versione iniziale era in Boost 1.32. Sembra è possibile visualizzare la cronologia di rilascio da allora qui: http://www.boost.org/doc/libs/1_43_0/libs/serialization/doc/release.html
Diverso da quello che io suggerirei di chiedere sulla spinta mailing list: http://www.boost.org/community/groups.html#users
Boost.serialization è compatibile ma is not guaranteed to be forwards compatible.
Ciò significa:
- è possibile creare un archivio con una versione precedente di boost.serialization che può essere letto con una versione più recente.
- Non è possibile garantire che un archivio creato con una versione più recente di boost.serialization sia leggibile da uno più vecchio.
Se si inviano messaggi tra un client e un server in entrambe le direzioni, ad esempio, potrebbe essere necessario aggiornare la versione di boost su entrambi in Lockstep.
Il 'formato filo' non cambia con ogni versione di boost. Quindi, tra 2 versioni specifiche di boost, potresti non avere alcun problema - Non riesco a trovare una documentazione specifica su quale versione del formato di archivio viene utilizzata all'interno della quale versione di boost.
Nota anche se la retrocompatibilità è "garantita", è solo un'espressione di intenti, anche se immagino che potresti riavere i tuoi soldi ;-). Le versioni boost 1.42 e 1.43 avevano un bug che significava che le versioni successive non potevano leggerle indietro - see the 1.45 release notes.
È possibile creare file di test utilizzando la versione corrente del software e memorizzarli. Quindi includi il caricamento di questi file nei tuoi test automatici.
Sfortunatamente, anche se il tuo codice supererà questo test, non puoi essere sicuro al 100% di compatibilità, perché ci può ancora essere una sorta di contenuto serializzato che non può essere caricato. Bene, è ancora meglio di niente.
Questo test coprirà automaticamente solo la retrocompatibilità. La verifica della compatibilità diretta (verso l'alto) sarà più complicata. Uno sarà necessario creare dati di test per ogni nuova release e provare a caricarlo da ogni vecchia versione ...
esteso la compatibilità in avanti per boost :: serializzazione è answered here
- 1. Libreria di serializzazione Erlang
- 2. Libreria di serializzazione binaria Scala
- 3. Libreria di serializzazione Xml per applicazioni iPhone
- 4. Serializzazione XML della lista
- 5. La libreria di serializzazione binaria C++ boost è compatibile con le versioni precedenti/future?
- 6. Opinioni sulla libreria di serializzazione di Expression Tree di CodePlex?
- 7. Rails Postgis Upgrade Issues
- 8. Hibernate Upgrade: StatisticsService()
- 9. MVC2 -> MVC3 Upgrade
- 10. Clickonce. Upgrade n.
- 11. Patch vs. Upgrade
- 12. Rails upgrade a angular 2
- 13. Serializzazione della struttura dati Clojure
- 14. serializzazione gson della stringa unicode non funzionante
- 15. Serializzazione della classe interna statica
- 16. Json Funzionalità di serializzazione della cassetta crono
- 17. Perché la serializzazione binaria è più veloce della serializzazione xml?
- 18. Java "serializzazione del metodo" della classe anonima
- 19. SVN Upgrade working copy - TortoiseSVN
- 20. Errore "PIP installare --upgrade distribuire"
- 21. Come funziona il main upgrade di WiX?
- 22. Rails 4.1.0.beta1 upgrade fallisce
- 23. Serializzazione della classe anonima in Java
- 24. Dovrei preoccuparmi della codifica durante la serializzazione?
- 25. Motivo della libreria libboost_log_setup.a?
- 26. nell'integrazione della libreria mupdf
- 27. App Upgrade Rails Da 1.2.3 a 3.1.0?
- 28. Che cos'è l'intestazione HTTP "Upgrade-Insecure-Requests"?
- 29. Azure 2.5 SDK Upgrade Cause CSPack Fail
- 30. Oggetti funzione serializzazione