Open jchodera opened 4 years ago
That's already two versions out of date, so it clearly isn't being properly maintained. :( This is exactly what I was afraid of when the discussion about Debian packages first came up.
OpenMM in Debian is actually even more recent than 7.4.2. It is based on a commit after #2713 was merged (early June), as #2713 was a prerequisite to get OpenMM into Debian. The reason 7.4.0 is displayed in the version is because git describe --tags
is used on the master
branch to determine the version string. I have just realized that git tags after 7.4.0 are made on 7.4_branch
branch, not master
- my bad, I will fix the version number.
I would be more than happy to create packages for proper OpenMM releases, not git commits. However, as said, I can only package a release with #2713 in its code.
That's even worse: it means people are getting unreleased development code with known bugs that are likely to lead to incorrect behavior. And they have no idea of that.
@merkys : It would be awesome if we could work together to make sure the debian packages match OpenMM stable and validated releases! Is there a way we can notify you and help update things when we cut new releases (following our testing and QA protocol)?
That's even worse: it means people are getting unreleased development code with known bugs that are likely to lead to incorrect behavior.
As said, I would be more than happy to use stable releases instead of development code. On the other hand, development code sometimes has advantages over stable releases, as bugs known to exist in the previous release may be already fixed in development code.
And they have no idea of that.
I do not agree with this. Debian packages based on development code always have version suffixes like +git<date>
or .g<commit-hash>
(as per git describe --tags
). OpenMM package is not an exception.
@merkys : It would be awesome if we could work together to make sure the debian packages match OpenMM stable and validated releases! Is there a way we can notify you and help update things when we cut new releases (following our testing and QA protocol)?
I would happily do so! There is a service in Debian which informs the packagers about new releases of packaged software every day. All what is expected from the upstream developers are git tags, and OpenMM already has them.
Awesome! Let us know if we can be of further help, @merkys.
Could you describe how this works from the user's perspective? Since this isn't a release, I assume the user has to do something more than just apt install openmm
?
Could you describe how this works from the user's perspective? Since this isn't a release, I assume the user has to do something more than just
apt install openmm
?
From the user's perspective, all packages are installed with apt install
. It's the version string which indicates whether a package corresponds to a release, or not.
What happens if someone just types apt install openmm
without specifying a version? Would that currently give them a development build?
What happens if someone just types
apt install openmm
without specifying a version? Would that currently give them a development build?
Yes, it would.
If distributing development builds via Debian is absolutely unacceptable to you, I can withhold the created Debian packages until the next release of OpenMM. It's just that doing so would prevent its reverse dependencies (such as MacroMoleculeBuilder) from being distributed too.
Yes, please do withhold it. Generally speaking, development builds are intended only for testing and development. A user should never get a development build without being clearly aware that's what they're getting. If someone tried to use it for their production simulations, that could lead to months of wasted effort, retracted papers, etc.
Thanks!
Not sure it would help building MacroMoleculeBuilder, but as long as there is no released version of openmm with proper shared library versioning support, you/Debian could just ship a static dev library to use. That makes tracking API/ABI changes your job, but if it for just one or two downstream packages, it is usually doable, provided openmm is not too much of a moving target.
As the current version in Debian testing/unstable is 7.4.0.491.gac5a8f71+dfsg-1, packaging 7.4.2 that way wouldn't be a problem. I haven't looked at the code or the build system in detail, though, so might be totally off with this.
Yes, please do withhold it. Generally speaking, development builds are intended only for testing and development. A user should never get a development build without being clearly aware that's what they're getting. If someone tried to use it for their production simulations, that could lead to months of wasted effort, retracted papers, etc.
Request to withhold the package posted.
Not sure it would help building MacroMoleculeBuilder, but as long as there is no released version of openmm with proper shared library versioning support, you/Debian could just ship a static dev library to use. That makes tracking API/ABI changes your job, but if it for just one or two downstream packages, it is usually doable, provided openmm is not too much of a moving target.
As the current version in Debian testing/unstable is 7.4.0.491.gac5a8f71+dfsg-1, packaging 7.4.2 that way wouldn't be a problem. I haven't looked at the code or the build system in detail, though, so might be totally off with this.
This sounds good, thanks for pointing it out. OpenMM's CMakeLists.txt seems to have an option to build static library only, and that should really be sufficient for MacroMoleculeBuilder until the next stable release for OpenMM.
Guys,
MMB only uses OpenMM to generate neighborlists. This is done at the beginning of an MMB run, before the time integrator starts, to do things like figure out which atoms to include in a phyics-where-you-want-it "bubble." I use no other OpenMM features. I am thus perfectly happy with even a many-years-old release of OpenMM.
I don't know much about debian packages but -- does installing MMB really make OpenMM libraries visible to the user? I would have guessed any OpenMM users would have set their library paths to look elsewhere for OpenMM. Anywhere other than the MMB install directory.
Sam
I assume MMB usese the OpenMM libraries and does not run some OpenMM binary?
I don't know much about debian packages but -- does installing MMB really make OpenMM libraries visible to the user? I would have guessed any OpenMM users would have set their library paths to look elsewhere for OpenMM. Anywhere other than the MMB install directory.
If both MMB and OpenMM are installed via Debian packages, MMB would either include the OpenMM static libraries in its executable or would dynamically link to the OpenMM libraries in its executable. Both would be installed in the respective system paths, like /usr/bin
and /usr/lib/x86_64-linux-gnu/
Ah I see.
Yes, MMB uses OpenMM libraries rather than executables. Linking is dynamic. I could go with static, since you said that would fix the issue. It's not clear to me how that fixes the issue, but I believe you.
We could also just decide on a supported past release of OpenMM, to be linked to by MMB. As I say that would also be easy. Is there a reason for waiting until the next release? As I understand it, the version numbers required by debian would prevent any conflict with user installed versions of openmm. But like I say your other proposed solution is fine by me, My objective is to avoid spending months waiting for future releases when the old release works fine.
sam
It just came to my attention that OpenMM 7.4.0 is made available as a debian package maintained by @merkys via https://salsa.debian.org/merkys-guest/openmm
See https://lists.debian.org/debian-devel-changes/2020/07/msg01416.html
Perhaps it would be useful to coordinate to make sure this package is up to date with the latest release?