🚨 Breaking Change Alert: Key Updates in Speckle SDK Core for 2.18 Cycle

Dear @ Insiders

Who Should Read This: All users of the Speckle SDK (dotnet), including developers integrating or extending Speckle functionalities, should pay close attention to this update. Additionally, contributors to the speckle-sharp project repo are impacted explicitly by the code style changes.

When: These updates are part of the 2.18 development cycle for the Speckle SDK Core and will come into effect with that release.

As we continually evolve and improve Speckle, we must inform you, our developer community, and collaborators about significant changes. The 2.18 cycle of Speckle SDK Core has brought some impactful updates, including breaking changes, code deprecations, and style modifications. Here’s what you need to know:

Key Updates:

  1. For All SDK Users:
    • Code Deprecation:
      • Serializer V1: Now deprecated; users are advised to upgrade to the latest version.
      • MongoDBTransport: This feature is no longer actively checked for compatibility; use at your own risk. This is being considered for obsoletion; let us know if you are actively using this.
      • Server Transport V1: Already obsolete, with a final notice of upcoming removal issued.
    • Breaking Changes:
      • Operations.Send: New overloads were introduced; SQLite defaulting and disposal guidance was provided.
      • Operation.Receive: New overloads; SerializerVersion selection will no longer be supported going foward (serializer v1 is now deprecated), use of disposeTransports will no longer be supported going forward (you should dispose your own transports), OnErrorAction is no longer used (instead functions with throw exceptions for consistancy and clear stack trace)
      • Variable/Function Renames: To improve clarity and coherence.
      • Namespace Changes: Reorganized for a more intuitive developer experience.

Once you update to using the 2.18 Nuget, you may find some extra compiler warnings if you try to use (are currently using) obsolete methods. There will be a message with instructions on resolving (use a newer function overload or rename the function/property).

We’ve tried to minimise the scope for compiler Errors/breaking changes, but if you see them, it should be a relatively easy fix.

  1. For speckle-sharp Contributors:
    • Code Style Changes:
      • Variable Naming: We have updated to consistent conventions for better consistency across the project.
      • Analysers/Warnings: New standards implemented to maintain high-quality code contributions.

We will update the guidelines to reflect that contributions should not raise new warnings. Speckle code reviewers will advise if PRs should be revised before accepting.

If you are forking from the speckle-sharp repo and making contributions, then the .editorconfig file is kept in sync with all the changes we are including, so many of the guidelines can be met automagically.

Value for Developers and Contributors: These changes aim to enhance the Speckle SDK’s efficiency, clarity, and overall quality, benefiting all users and contributors. By staying informed and adapting your codebase and contributions, you ensure compatibility with the latest version of Speckle, contributing to a more robust and innovative platform.

We encourage you to review the detailed information in our updated documentation and release notes. If you have any questions or require assistance, post below.

Thank you for your continued support and collaboration in making Speckle a leading platform in the AEC industry.