As a molecular modeler extending SAMSON, you may have encountered a frustrating issue: your SAMSON Extension isn’t being loaded at startup. You’ve compiled it, you’ve deployed it, and you’re sure it should work. But SAMSON skips it. No error message, no crash—just silence. What’s going on?
This issue typically boils down to one key factor: SDK version compatibility. SAMSON uses a strict semantic versioning policy to ensure reliable behavior across versions, and understanding this system is crucial if you’re building or relying on Extensions.
What Happens During Startup?
Every time SAMSON starts, it checks the version of each Extension’s Software Development Kit (SDK) against its own. If the Extension was built with an incompatible version, it’s simply not loaded.
This isn’t a bug—it’s a safety measure. It prevents Extensions from calling functions that may no longer exist or behave differently in the current version of SAMSON.
How Compatibility Is Evaluated
SAMSON and its SDK follow a semantic versioning scheme:
|
1 |
major.minor.patch |
To determine whether an Extension can be loaded, SAMSON applies these two simple rules:
- The
majorversion of the SDK used to build the Extension must match themajorversion of SAMSON’s SDK. - The
minorversion of the Extension’s SDK must be less than theminorversion used by SAMSON.
Importantly, the patch version doesn’t restrict compatibility. This approach provides some flexibility without compromising consistency.
Examples Make It Clearer
Say your SAMSON installation is at version 1.7.8, which means its SDK version is also 1.7.8. The following SDK versions used to build Extensions will be:
- Compatible: 1.3.5, 1.4.1, 1.6.0 (same major version, lower minor)
- Not compatible: 1.8.0, 2.0.0 (minor is equal/higher or major is different)
What You Can Do
If your Extension isn’t loading, follow these steps:
- Check the SDK version used to build the Extension. If you’re not the developer, this information should be available in the Extension metadata.
- Compare it with your SAMSON’s SDK version. You can find this in the docs or in the application’s About section.
- If incompatible, either:
- Recompile the Extension with a compatible SDK version (same major, lower minor)
- Update SAMSON, so it’s compatible with the SDK version used in the Extension
Automatic Updates Help, But Only When Possible
SAMSON can automatically update Extensions to newer, compatible versions available on SAMSON Connect, so long as it detects compatibility. If a developer uploads an Extension rebuilt with SDK 2.0.0, but your SAMSON is still at 1.7.8, you won’t get that update.
This approach keeps your environment stable, avoiding cryptic crashes due to incompatibilities between functions or APIs.
Key Takeaway
Whether you’re building your own SAMSON Extensions or relying on third-party ones, version compatibility is essential for a smooth experience. Keeping SAMSON up to date ensures you don’t miss out on new features or Extension updates.
Learn more in the full documentation.
SAMSON and all SAMSON Extensions are free for non-commercial use. You can get SAMSON at https://www.samson-connect.net.
