Dear Community and @insiders,
We’ve decided to implement a significant update in Speckle 2.19 regarding the serializer within Speckle’s core. This change introduces a unified strategy for generating object IDs across specklepy and speckle-sharp, eliminating the dependency on .NET 5.0’s BinaryFormatter—a necessity with the adoption of .NET 8 and future versions.
This issue was first highlighted by @fmeijer in 2021. Despite the inherent stability of Speckle Core, the need for action has become pressing. We appreciate @sanchez and @vwb for their persistent reporting on this matter.
Thanks to @Jedd’s diligent efforts, we’ve successfully replaced the old system, ensuring compatibility across our primary SDKs and the upcoming TypeScript SDK.
What are the implications of this update?
Pros:
- Consistent object IDs across Python and C#
- Full support for .NET 8
- Doubling of processing speed
Cons:
- Viewer diffing will perceive all objects as changed from previous versions.
- Connectors will treat received objects as needing updates.
- Blender users will need to remap materials post-receive.
Please note, these disadvantages will only impact the initial transition to version 2.19. Particularly for those using diffing, plan your update schedule carefully to manage these changes effectively.