[gmx-developers] Python package build

Eric Irrgang ericirrgang at gmail.com
Thu Jan 16 19:13:19 CET 2020

Hi Devs,

In the teleconference yesterday, I asked you to think about issue

Specifically, I am asking you to weigh in on whether the gmxapi Python
package should continue to be a client package of a GROMACS installation,
or whether it should _be_ a GROMACS installation.

The decision has significant impact on priorities for installed headers /
public API, and build system infrastructure. Furthermore, details of such a
reorganization could take a while to reach consensus. For these reasons, I
think we should affirm a course as early as possible.

The issue description at https://redmine.gromacs.org/issues/2896 should be
substantially rewritten if we decide to change course. Please review the
latest comment(s) and contribute your thoughts.

In summary:

# Reasons to turn gmxapi Python package build into a main GROMACS build
system entry point

* Make it easier to achieve a Python package build environment compatible
with the GROMACS library build environment.
* Allow Python package to be implemented without reliance on installed
headers or libgmxapi.so, allowing more flexibility in how we handle changes
to the public C++ API later in the year.
* Simplify Python package installation, testing, maintenance and packaging
(as for PyPI)
* Possibly, facilitate the beginning of a smooth transition towards
internal integration of gmxapi with tools and tests.

# Reasons to keep gmxapi Python package as a client of the public C++

* Decouple Python package version from GROMACS release.
* Decouple the Python package requirements from the requirements of the
main build system participants.
* Much shorter build time for Python package.
* Much reduced Python distribution package size.
* Python package provides a ready client of the GROMACS public C++ API to
facilitate "dog-fooding" and integration testing.
* Let sysadmins worry about building an efficient libgromacs, and let users
just to `pip install gmxapi`. (unfortunately, it's not quite that easy)
* Avoid Python packaging boiler plate in the root directory of the

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20200116/64552289/attachment-0001.html>

More information about the gromacs.org_gmx-developers mailing list