Skąd wiadomo, że mogę bezpiecznie zaktualizować Boost Serialization Library w systemie produkcyjnym, nie łamiąc kompatybilności z istniejącymi danymi? Czy jest jakiś test, który powinienem wykonać, aby mieć pewność, że wszystkie dane zapisane w formacie binarnym przez poprzednią wersję biblioteki zostaną pomyślnie odczytane przez nową? Czy sama biblioteka Boost Serialization gwarantuje kompatybilność pomiędzy wersjami?Aktualizacja biblioteki aktualizacji szeregowej
Odpowiedz
Wstępne wydanie dotyczyło zwiększenia 1.32. Wydaje się, można przejrzeć historię zwalniającą odtąd tutaj: http://www.boost.org/doc/libs/1_43_0/libs/serialization/doc/release.html
Poza tym sugeruję prosząc na liście impuls do korespondencji: http://www.boost.org/community/groups.html#users
Boost.serialization jest wstecznie kompatybilne ale is not guaranteed to be forwards compatible.
To znaczy:
- można utworzyć archiwum ze starszą wersją boost.serialization który może być odczytany z nowszej wersji.
- Nie ma gwarancji, że archiwum utworzone za pomocą nowszej wersji boost.serialization będzie można odczytać przez starsze.
Jeśli na przykład wysyłasz wiadomości między klientem a serwerem w obu kierunkach, być może trzeba będzie uaktualnić wersję boost na obu w lockstep.
"Forma drutu" nie zmienia się z każdą wersją boostu w wersji. Pomiędzy dwiema konkretnymi wersjami boosta możesz nie mieć problemu - nie mogę znaleźć konkretnej dokumentacji, która wersja formatu archiwum jest używana w której wersji boost.
Należy również pamiętać, że podczas gdy kompatybilność wsteczna jest "gwarantowana", to tylko wyrażanie intencji - choć wydaje mi się, że można odzyskać swoje pieniądze ;-). Wersje boost 1.42 i 1.43 miały błąd, który oznaczał, że nowsze wersje nie mogą ich odczytać - see the 1.45 release notes.
Można tworzyć pliki testowe przy użyciu bieżącej wersji oprogramowania i zapisywać je. Następnie dołącz te pliki do automatycznych testów.
Niestety, nawet jeśli twój kod zda ten test, nie możesz być w 100% pewien zgodności, ponieważ nadal może istnieć jakaś serializowana treść, której nie można załadować. Cóż, to wciąż lepsze niż nic.
Ten test automatycznie obejmuje tylko kompatybilność wsteczną. Testowanie zgodności w przód (w górę) będzie bardziej skomplikowane. Jeden będzie trzeba utworzyć dane testowe dla każdej nowej wersji i spróbować załadować go za każdym starej wersji ...
Rozszerzone kompatybilność w przód dla boost :: serializacji jest answered here
- 1. aktualizacja duplikatu aktualizacji klucza
- 2. Aktualizacja biblioteki DLL
- 3. Aktualizacja instrukcja aktualizacji wielu wierszy
- 4. Aktualizacja aktualizacji serwera serwera Linux
- 5. Aktualizacja aktualizacji GHC 7.4 haskell98?
- 6. błąd po aktualizacji biblioteki support
- 7. Pasek stanu aktualizacji Snapchat Aktualizacja iOS7
- 8. angular.js: aktualizacja modelu nie wyzwala aktualizacji widoku
- 9. Przeglądanie pomijanych aktualizacji wtyczki Maven Aktualizacja
- 10. Aktualizacja aktualizacji MySQL WHEN/THEN/ELSE
- 11. Aktualizacja przejdź websocket biblioteki do najnowszej wersji
- 12. Dynamiczna alokacja pamięci szeregowej
- 13. Czy faza "Aktualizacji biblioteki Androida" może zostać przyspieszona?
- 14. Dlaczego konda aktualizacji downgrade niektóre biblioteki
- 15. Brak TabLayout po aktualizacji Biblioteki Wsparcia Projektowego
- 16. Usterka uwierzytelniania PAM IntelliJ na CVS Aktualizacja po aktualizacji hasła
- 17. Aktualizacja tabeli w wyzwalaczu po aktualizacji w tej samej tabeli
- 18. Aktualizacja wyzwalacza SQL wielokrotnego rzędu z pojedynczej aktualizacji instrukcji SQL
- 19. AKTUALIZACJA Ten sam wiersz po aktualizacji z wyzwalaczem
- 20. BottomSheetBehavior nie działa, gdy projekt biblioteki aktualizacja 24.2.0
- 21. Automatyczna aktualizacja java application
- 22. TabLayout upaść po aktualizacji biblioteki wsparcia do 23.2.1
- 23. Zawieszenie TabLayout po aktualizacji biblioteki pomocy technicznej do 23.2.0
- 24. Obsługa zmiany interfejsu biblioteki ffmpeg podczas aktualizacji ffmpeg
- 25. co to jest identyfikator wersji szeregowej?
- 26. GLM z autoregresyjnym określeniem dla korelacji szeregowej
- 27. Json.Net - Nazwa właściwości szeregowej bez cytatów
- 28. Usuwanie elementów opakowania z szeregowej tablicy XML
- 29. Jakiego rodzaju ramek używać w komunikacji szeregowej?
- 30. PHP jak dodać dane do szeregowej tablicy