Project

General

Profile

Task #2893

Task #2045: API design and language bindings

Integrate gmxapi Python package

Added by Eric Irrgang 7 months ago. Updated 7 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
gmxapi
Target version:
Difficulty:
uncategorized
Close

Description

The Python package distributed through GitHub is to be merged with the GROMACS repository.
This issue addresses the migration to the GROMACS repository as the new canonical source of the package.

Goal: Centralize gmxapi project sources, design documentation, tests, and ongoing development in the GROMACS code management ecosystem.

Criteria for completion:
- Expressed functional goals are articulated with a mechanism for testing acceptable implementation.
- Ongoing gmxapi development can be pursued reasonably as changes staged through Gerrit for GROMACS master.
- A framework has been established to express project requirements, achieve design consensus, and propose incremental development in a clear context.

Explicitly deferred:
- testing infrastructure exercised through Jenkins
- Python packaging details
- documentation integration
- unified CMake infrastructure

To minimize the intrusiveness of early commits, a new directory `python_packaging`
holds documentation, testing tools, and Python package sources.

Design documentation describes numbered functional requirements that can be
cross-referenced as "FR#" in commit messages, tests, documentation, and other
tagging mechanisms as needed, where "#" is an integer.
Reference
https://redmine.gromacs.org/projects/gromacs/repository/revisions/master/entry/python_packaging/roadmap.rst

Comment:
First change establishes directory structure for initial commits of documentation, packaged code, and basic infrastructure to support development and testing.

Second change expresses functional goals in a roadmap.rst, with acceptance criteria as a set of Python (pytest) unit tests.


Subtasks

Bug #3144: gmxapi.mdrun does not clearly expose the output trajectory.ResolvedEric Irrgang

Related issues

Related to GROMACS - Task #2912: C++ extension module for Python bindingsResolved
Blocks GROMACS - Task #2894: Wrap importable Python code.Resolved
Blocks GROMACS - Task #2895: gmxapi Output proxy establishes execution dependency.Resolved

Associated revisions

Revision fae19655 (diff)
Added by Eric Irrgang 7 months ago

Plumbing for gmxapi 2019 Q1/Q2 project roadmap.

Provide infrastructure so that dependent change can focus on content
of project plan.

Ref: #2893

Change-Id: Idd72e9ede890f7fc97a680c5a5bffe97499eaaf5

Revision 4a1d0408 (diff)
Added by Eric Irrgang 7 months ago

gmxapi 2019 Q1/Q2 project roadmap.

Lay out project goals, functional requirements, and testing plans.
Provides roadmap.rst and pytest acceptance tests
expressing the required functionality of the Python package.

Ref: #2893

Change-Id: I71ec79eb5d8a6e4d61fb5d7d6e20176c9c07a6af

Revision 476e2dc2 (diff)
Added by Eric Irrgang 6 months ago

Infrastructure updates for dependent changes.

  • Introduce gmxapi.exceptions.ProtocolError.
  • Add some pytest configuration and helpers.
  • Update some comments.

Refs: #2893

Gerrit patch set 9367/5

Revision 4f265b31 (diff)
Added by Eric Irrgang 6 months ago

Command line wrapper with data flow.

Introduce gmxapi.commandline_operation(), a fused operation that allows
data flow constraints to be mapped to input and output file arguments.

Expand gmxapi.operation tools to support the data flow constraints.

Achieves functional requirements 1, 2, and 3 as described
in the documentation submitted under #2893.

Updates some acceptance tests duplicated in a companion change.

Fixes: #2894

Gerrit patch set 9371/10

Revision 8ef8d2bc (diff)
Added by Eric Irrgang 6 months ago

Infrastructure updates for dependent changes.

  • Introduce gmxapi.exceptions.ProtocolError.
  • Add some pytest configuration and helpers.
  • Update some comments.

Refs: #2893

Change-Id: I71030c3b552d568df7263115430631208812b9dc

Revision d0536976 (diff)
Added by Eric Irrgang 6 months ago

Expand gmxapi.operation tools to support the data flow constraints.

Achieves functional requirements 1, 2, and 3 as described
in the documentation submitted under #2893.

Updates some acceptance tests duplicated in a companion change.

Fixes: #2894

Change-Id: I26b1413c83e3ad176f2fd70f93e8b8e1033667ae

Revision ffab5391 (diff)
Added by Eric Irrgang 2 months ago

Python wrapping code for gmxapi mdrun bindings.

Expose the mdrun bindings to the Python interface. Imports workflow.py
and context.py from 0.0.7.4 tagged release of external project at
https://github.com/kassonlab/gmxapi with minimal modifications.

Refs #2893
Refs #2912
Refs #3027

Change-Id: I44a66646eceb191a2ec755169671af326f22526a

Revision 6cb31a6b (diff)
Added by Eric Irrgang about 2 months ago

Python wrapping code for gmxapi mdrun bindings.

Expose the mdrun bindings to the Python interface.

Updates workflow.py and context.py from 0.0.7.4 tagged release of external project.

Refs #2893
Refs #2912
Refs #3027

Change-Id: I44a66646eceb191a2ec755169671af326f22526a

History

#1 Updated by Gerrit Code Review Bot 7 months ago

Gerrit received a related patchset '11' for Issue #2893.
Uploader: M. Eric Irrgang ()
Change-Id: gromacs~master~Idd72e9ede890f7fc97a680c5a5bffe97499eaaf5
Gerrit URL: https://gerrit.gromacs.org/9202

#2 Updated by Gerrit Code Review Bot 7 months ago

Gerrit received a related patchset '3' for Issue #2893.
Uploader: M. Eric Irrgang ()
Change-Id: gromacs~master~I71ec79eb5d8a6e4d61fb5d7d6e20176c9c07a6af
Gerrit URL: https://gerrit.gromacs.org/9241

#3 Updated by Eric Irrgang 7 months ago

  • Tracker changed from Feature to Task
  • Description updated (diff)

#4 Updated by Eric Irrgang 7 months ago

  • Blocks Task #2894: Wrap importable Python code. added

#5 Updated by Eric Irrgang 7 months ago

  • Blocks Task #2895: gmxapi Output proxy establishes execution dependency. added

#6 Updated by Gerrit Code Review Bot 7 months ago

Gerrit received a related DRAFT patchset '1' for Issue #2893.
Uploader: M. Eric Irrgang ()
Change-Id: gromacs~master~I71030c3b552d568df7263115430631208812b9dc
Gerrit URL: https://gerrit.gromacs.org/9367

#7 Updated by Eric Irrgang 7 months ago

  • Related to Task #2912: C++ extension module for Python bindings added

#8 Updated by Mark Abraham 7 months ago

  • Description updated (diff)

#9 Updated by Eric Irrgang 7 months ago

  • Description updated (diff)

#10 Updated by Eric Irrgang 7 months ago

  • Status changed from New to Resolved

Unless there are requests for additional infrastructure or procedures, this task appears to be resolved.

Also available in: Atom PDF