If you are a molecular modeler extending the capabilities of SAMSON with custom extensions or pre-built tools, you might have encountered compatibility issues when updates arrive. This post is here to guide you through how SAMSON ensures seamless compatibility of its extensions through a unique versioning and checking policy, so you can focus on your modeling without interruptions.
The Importance of Extension Compatibility
SAMSON Extensions rely on the SAMSON Software Development Kit (SDK) to integrate with the platform. Each extension is built using a specific version of the SDK. This coupling means that the core SAMSON platform must verify whether a given extension can operate safely on its current version before it loads it during startup. Without a compatibility system in place, extensions could crash, or worse, deliver incorrect results due to mismatched APIs.
How Compatibility is Determined
SAMSON uses a strict semantic versioning policy to ensure compatibility. At a basic level, this means SAMSON extensions built with particular SDK versions can only run if their SDK version aligns with the semantic versioning rules of SAMSON:
- Matching major version numbers: The major version of the SDK and SAMSON must be the same (e.g., SDK 1.x.x is only compatible with SAMSON 1.x.x).
- Backward-compatible minor versions: The SDK’s minor version must be smaller than or equal to SAMSON’s minor version (e.g., SDK 1.3.x is compatible with SAMSON 1.5.x, but not with SAMSON 1.2.x).
For example, an extension built with SDK 1.5.2 runs perfectly with SAMSON 1.7.8. However, an SDK version like 1.8.5 would not work, since it anticipates features unavailable in SAMSON 1.7.8.
Automatic Updates for Seamless Workflow
You might wonder, “What happens if a newer compatible version of an extension becomes available?” SAMSON has this covered with automatic updates. As soon as an updated and compatible extension version is uploaded to SAMSON Connect, SAMSON will download and update it during startup if an internet connection is available.
For example, consider a user working with SAMSON 1.7.8 and an extension built with SDK 1.5.2. If a new version of the extension built with SDK 1.6.4 is released, SAMSON will automatically update to the new version. This ensures you’re always using the latest tools without needing manual supervision, as long as compatibility is preserved.
Dealing with Major Version Changes
However, it’s important to note that major version differences cannot be bridged. If SAMSON 2.0.0 is released and extensions are built using SDK 2.x.x versions, older SAMSON versions like 1.7.8 will not load these new extensions. In such cases, you can choose to update your SAMSON installation to ensure compatibility with the newest extensions.
Conclusion
SAMSON’s compatibility management ensures a balance of innovation and stability. With strict semantic versioning rules and features like automatic updates, SAMSON allows users to focus on their molecular modeling without constant maintenance headaches.
To learn more about SAMSON’s versioning and extension compatibility strategies, please visit the complete documentation at this page.
SAMSON and all SAMSON Extensions are free for non-commercial use. You can download SAMSON at https://www.samson-connect.net.
