For molecular modelers, managing compatibility between software versions and ensuring seamless workflows can often be a challenge. This is where SAMSON’s versioning approach becomes particularly helpful. In this post, we’ll explore how semantic versioning in SAMSON works and why it is crucial for ensuring compatibility when working with SAMSON Extensions and the Software Development Kit (SDK).
Why Versioning Matters in Molecular Modeling
Molecular modeling involves a variety of tools and extensions that interact with one another. A simple update of one component can sometimes disrupt the delicate balance of compatibility. SAMSON employs a semantic versioning system to ensure that changes to its core platform or SDK do not lead to unexpected incompatibilities with SAMSON Extensions used by researchers. Let’s break down what this means and how it can help you.
How Semantic Versioning Works
SAMSON and its SDK follow a strict semantic versioning convention, defined by major.minor.patch (e.g., 1.7.8). This triplet encodes compatibility as follows:
- Major version changes: Introduce non-backwards-compatible updates. For example, upgrading from 1.x.x to 2.0.0 may introduce changes that older extensions cannot handle.
- Minor version changes: Add new functionalities in a backwards-compatible manner. For instance, updating from 1.5.x to 1.6.0 ensures extensions built with 1.5.x remain functional.
- Patch version changes: Provide backwards-compatible bug fixes. Moving from 1.7.7 to 1.7.8 should not impact compatibility.
Extension Compatibility Made Simple
One of the most critical applications of semantic versioning is ensuring that SAMSON Extensions work as expected:
- When SAMSON starts up, it checks the SDK version used to build each extension and ensures compatibility with the current platform.
- An extension built with SDK version
1.5.2, for example, will function with SAMSON version1.7.8, provided the major version (1) is identical, and the SDK’s minor version (5) does not exceed the SAMSON platform’s minor version (7). - By adhering to this system, SAMSON ensures that extensions do not break when minor or patch updates occur.
However, a newer extension (built with SDK 1.8.5) won’t work on an older SAMSON platform (such as 1.7.8) because it may rely on features introduced in SDK 1.8.x that aren’t available in SAMSON 1.7.x.
Automatic Updates for Convenience
SAMSON simplifies extension management with its automatic update functionality:
- If a compatible new version of an extension becomes available on SAMSON Connect, SAMSON automatically updates the extension (when an Internet connection is available).
- For example, if you are using SAMSON
1.7.8with an extension built on SDK1.6.4, any updated version of the extension built with SDK1.7.xwill automatically replace the older version.
This ensures users benefit from improvements and bug fixes without manually managing the updates, provided the SDK versions remain compatible.
Ensuring a Smooth Workflow
For molecular modelers relying on SAMSON Extensions, understanding versioning can save significant time and effort. By keeping SAMSON updated and being mindful of SDK versions, modelers can ensure that extensions load and function optimally.
To explore all the details, check the official documentation page on Semantic Versioning in SAMSON.
Note: SAMSON and all SAMSON Extensions are free for non-commercial use. Get SAMSON at SAMSON Connect.
