Molecular modelers often rely on extensions to customize and enhance their workflows for specific tasks. However, ensuring that extensions function reliably with the latest updates to software platforms can be a significant pain point. If you’re a SAMSON user, understanding its approach to compatibility can save you time and frustration. This blog post delves into the systematic versioning scheme used by SAMSON to ensure that extensions are compatible and reliable.
Understanding Compatibility Challenges
Extending SAMSON with its diverse library of Extensions allows users to enrich the platform with specialized functionalities, ranging from computational chemistry tools to visualization improvements. But since SAMSON itself evolves with time, it becomes crucial to match the versions of newly updated Extensions with the existing software environment.
Here’s where SAMSON stands out: its implementation of semantic versioning for the SDK used to build Extensions.
How SAMSON Manages Extension Compatibility
To ensure a smooth experience:
- At startup, SAMSON compares its internal semantic version with the version of the SDK used to build an Extension.
- The Extension is loaded only if the SDK version is compatible with that of SAMSON.
To determine compatibility, SAMSON applies these criteria:
- Both the SDK version (
majorSDK,minorSDK,patchSDK) and the SAMSON version (majorSAMSON,minorSAMSON,patchSAMSON) must have identical major version numbers (majorSDK=majorSAMSON). - The minor version of the SDK (
minorSDK) must not exceed that of SAMSON (minorSAMSON).
For example, consider SAMSON version 1.7.8:
- Extensions built with SDK versions
1.3.5and1.7.7will load at startup. - An Extension designed for SDK version
1.8.1will not load, as the minor version of the SDK (1.8) is ahead of SAMSON’s (1.7).
Automatic Updates Make Life Easier
One common concern is keeping Extensions up to date. The good news is that SAMSON simplifies this with an automatic update mechanism for Extensions. When your SAMSON installation detects a new compatible version of an Extension (built with a suitable SDK), it updates that Extension automatically at startup, provided an internet connection is available.
For instance, if you’re using SAMSON version 1.7.8 and have installed an Extension built with SDK version 1.5.2, it will load seamlessly. Later, if a developer releases the same Extension optimized for SDK version 1.6.4 on SAMSON Connect, SAMSON will update the Extension automatically. This ensures you always benefit from improvements while maintaining compatibility.
The Takeaway for Molecular Modelers
By leveraging semantic versioning in its SDK, SAMSON provides a dependable framework for compatibility between the platform and its Extensions. Developers can gradually evolve their tools, while users benefit from new features and fixes without surprises or compatibility headaches. This structured approach minimizes downtime and ensures your molecular modeling tasks progress smoothly.
Learn more about SAMSON’s versioning approach and compatibility policies in the documentation.
**Note:** SAMSON and all SAMSON Extensions are free for non-commercial use. To get started, download SAMSON from SAMSON Connect.
