For molecular modelers using SAMSON, ensuring that your installed SAMSON Extensions work seamlessly with the software is crucial. Managing compatibility between versions of the SAMSON platform and the Extensions you depend on can save significant time and effort. Let’s take a closer look at how SAMSON manages this compatibility with its versioning system and what you need to know to keep everything running smoothly.
A Practical Semantic Versioning Approach
SAMSON relies on semantic versioning (semver) to manage its updates, which applies strict rules to version numbers. Each version of SAMSON or its Software Development Kit (SDK) is expressed as major.minor.patch:
- Major: When non-backwards-compatible changes are made, the major number is incremented.
- Minor: New functionality that remains compatible incrementally increases the minor number.
- Patch: Smaller updates or bug fixes that do not alter compatibility adjust the patch number.
For Extensions, this means they are built with specific versions of the SDK, and SAMSON ensures that these Extensions function only when their SDK version is compatible with the current SAMSON version.
How Compatibility Works
When SAMSON starts, it checks the SDK version against its own version. Compatibility is determined by two simple rules:
- Rule 1: The major version number of the SDK and SAMSON must be identical.
- Rule 2: The SDK minor version must be smaller than or equal to the SAMSON minor version.
For instance, SAMSON version 1.7.8 will be compatible with Extensions built using SDK versions 1.3.5 or 1.7.7. However, it will not be compatible with an Extension built using SDK version 1.8.5, since the SDK minor version exceeds that of SAMSON.
Automatic Updates to Keep You Up to Date
SAMSON also includes an automatic update feature for Extensions. When a new, compatible version of an Extension appears on SAMSON Connect, it is downloaded and installed automatically (provided there is an internet connection and the user’s SAMSON version remains compatible).
For example, if a user runs SAMSON version 1.7.8, and an Extension updated for SDK version 1.6.4 becomes available, the update will occur automatically because the versions align as per the compatibility rules.
That said, if a new SAMSON release like 2.0.0 becomes available, and the Extension developer updates their Extension using SDK version 2.0.0, but the user remains on SAMSON version 1.7.8, SAMSON will retain the last compatible version of the Extension, ensuring stability in the workflow rather than breaking functionality.
A Note on Extension Version Numbers
Each SAMSON Extension has its own version number formatted as major.minor.patch, but this version number is independent of the SDK version that determines compatibility. While developers often increment the Extension’s version to indicate features or fixes, SAMSON only uses the SDK version to assess whether an Extension can be loaded on startup.
By understanding and leveraging SAMSON’s versioning and update policies, you can manage your projects with minimal disruptions. Never worry about breaking workflows due to incompatible Extension updates, as SAMSON’s built-in systems ensure stability and ease of use.
To learn more, visit the official documentation page: https://documentation.samson-connect.net/users/latest/versioning/.
Note: SAMSON and all SAMSON Extensions are free for non-commercial use. Download SAMSON at https://www.samson-connect.net.
