Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenMM pinning strategy for downstream packages #122

Open
jakirkham opened this issue Dec 2, 2023 · 1 comment
Open

OpenMM pinning strategy for downstream packages #122

jakirkham opened this issue Dec 2, 2023 · 1 comment

Comments

@jakirkham
Copy link
Member

There is a healthy ecosystem of OpenMM dependent packages, which is great to see and a nice accomplishment (speaks to the usefulness of OpenMM)

Though an important consideration comes with this, which is how should packages downstream of OpenMM pin their OpenMM dependency

To help start this conversation off, what sort of stability guarantees does OpenMM provide? Is it following SemVer or something else?

Thanks in advance for your feedback! 🙏

@peastman
Copy link
Contributor

peastman commented Dec 2, 2023

It depends on whether they're written in Python or C/C++. For plugins or packages that invoke it through the C++ API, we don't make any guarantees about binary compatibilty. The safest thing is to require the specific version of OpenMM they were compiled against, although in practice other versions that differ only in the third digit almost always work. But you definitely shouldn't assume a version with a different second digit will work.

For packages that invoke it through the Python API, we try very hard to maintain compatibility indefinitely. It's not 100% guaranteed, but it's very rare for an API to change in a compatibility breaking way, and we try to give lots of warning by first deprecating it and then waiting at least one major version. So it's generally safe to just specify a minimum version. It should continue to work for a long time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants