Integrate gmxapi Python package - Redmine #2893
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/roadmarst
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 roadmarst, with acceptance criteria as a set of Python (pytest) unit tests.
(from redmine: issue id 2893, created on 2019-03-14 by eirrgang, closed on 2019-12-10)
- Relations:
- relates #2912 (closed)
- blocks #2894 (closed)
- blocks #2895 (closed)
- child #3144 (closed)
- parent #2045 (closed)
- Changesets:
- Revision fae19655 by Eric Irrgang on 2019-03-29T09:39:51Z:
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 by Eric Irrgang on 2019-04-09T09:25:11Z:
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 476e2dc297978f638c2922f8b952e7c34084db89 by Eric Irrgang on 2019-04-24T13:12:00Z:
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 4f265b31c1a97cbef40d1be75949284985f16455 by Eric Irrgang on 2019-04-24T13:12:00Z:
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 by Eric Irrgang on 2019-05-02T17:22:34Z:
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 by Eric Irrgang on 2019-05-09T07:11:52Z:
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 ffab53913efdee8a82d6e1394f9ddefb895cce44 by Eric Irrgang on 2019-08-22T14:30:53Z:
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 by Eric Irrgang on 2019-09-03T07:52:42Z:
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