If you’re developing or using custom extensions in SAMSON for your molecular modeling projects, you may have run into this: a SAMSON Extension won’t load at startup, even though it worked perfectly fine before. No error message is immediately helpful, and it feels like the Extension just vanished from your workflow.
Behind the scenes, SAMSON uses strict semantic versioning to ensure that Extensions built with one version of the Software Development Kit (SDK) remain compatible with your current version of SAMSON. This approach prevents runtime errors but can also be a source of confusion.
Understanding the Compatibility Rules
SAMSON checks compatibility using the version numbers of the SDK that was used to build the Extension and the SDK version embedded in your SAMSON installation. The rules are:
- The
majorversion numbers of the SDK and SAMSON must be identical. - The
minorversion number of the Extension’s SDK must be less than or equal to theminorversion number in your installed SAMSON.
As a user, this means your SAMSON installation must be equal to or newer than the SDK version that built the Extension within the same major version.
Real-World Example
Suppose your SAMSON version is 1.7.8. It will successfully load Extensions built with SDK versions like 1.3.5 or 1.7.7. But if an Extension was built in 1.8.5, SAMSON 1.7.8 will not load it—because 1.8 is greater than 1.7, even though the major version is the same.
This prevents functions that don’t yet exist in your installation from causing failures at runtime.
Auto-Updates to the Rescue
If both your SAMSON and your extensions are regularly updated, SAMSON helps keep everything compatible through its automatic update feature. When new compatible Extensions are posted to SAMSON Connect, and you’re online, SAMSON checks for updates and installs newer versions of Extensions if they match the compatibility criteria.
Let’s say your Extension is built for SDK 1.5.2 and you’re running SAMSON 1.7.8. A new version of that Extension comes out, built with SDK 1.6.4. During startup, SAMSON recognizes the new version and installs it, because your version of SAMSON is newer and backward-compatible with it.
When Things Get Out of Sync
When a new major version of SAMSON—say 2.0.0—is released, and an Extension is rebuilt with SDK 2.0.0, users who haven’t updated SAMSON and are still running 1.7.8 won’t receive the update. The Extension will remain at 1.6.4 to ensure compatibility is not broken.
So if you find that your Extension isn’t updating or isn’t loading, check your version. A quick update to SAMSON may be all it takes to get things running smoothly again.
Developers: Keep This in Mind
As a developer, being mindful of the SDK version you use means knowing who can load your Extension. If you build with a newer SDK version, make sure your users have updated SAMSON. If you want the broadest compatibility, stick with a more established minor version—just understand that it may limit access to newer API functionality.
For more detailed reference, please visit the official versioning documentation.
SAMSON and all SAMSON Extensions are free for non-commercial use. To get SAMSON, visit samson-connect.net.
