Update notes and tests regarding gmxapi acceptance tests.
authorM. Eric Irrgang <ericirrgang@gmail.com>
Fri, 1 Nov 2019 10:16:30 +0000 (13:16 +0300)
committerPaul Bauer <paul.bauer.q@gmail.com>
Mon, 11 Nov 2019 14:37:03 +0000 (15:37 +0100)
* Add notes on gmxapi functional requirements to gmxapi.version module.
* Update and acknowledge FR7 passing.
* Note a missing dependency in FR8.
* Clarify FR2 is superseded by FR3.

Change-Id: Ia633c02bd09e729aa68bf4a3d28102e991aeb7e9

python_packaging/roadmap.rst
python_packaging/src/gmxapi/version.py
python_packaging/test/test_fr07.py
python_packaging/test/test_fr08.py

index 0a67d80a2ed26fcb7d50a36559b583d3443aaa97..91438a0284e12380c9c54ad752508290f02b9640 100644 (file)
@@ -91,7 +91,7 @@ Sequence
 Features development sequence based on functional priorities and dependencies.
 
 * fr1: wrap importable Python code.
-* fr2: output proxy establishes execution dependency
+* fr2: output proxy establishes execution dependency (superseded by fr3)
 * fr3: output proxy can be used as input
 * fr4: dimensionality and typing of named data causes generation of correct work topologies
 * fr5: explicit many-to-one or many-to-many data flow
index 33f4a3e6e6aa1bf985e7b3b32d5ecdd761eea1fd..c9d70acfcce2997ff4f6a1d4253dedfd54c90ab3 100644 (file)
@@ -62,7 +62,7 @@ patch = 0
 release = False
 
 # Features added since the initial gmxapi prototype, targeted for version 0.1.
-_named_features_0_0 = ['fr1', 'fr3']
+_named_features_0_0 = ['fr1', 'fr3', 'fr7']
 # Features named since the finalization of the 0.1 specification with GROMACS 2020.
 _named_features_0_1 = []
 # Named features describe functionality or behavior introduced since the last
@@ -74,10 +74,33 @@ _named_features_0_1 = []
 # that have become part of the specification, at least for a few minor release or
 # a few years, to avoid introducing errors to client code.
 #
+# Bugs and bug fixes may be indicated with names consisting of tracked issue URLs.
+#
 # Features consisting of 'fr' and a numeric suffix are the functional requirements
 # described in roadmap.rst, as described at https://redmine.gromacs.org/issues/2893
 #
-# Bugs and bug fixes may be indicated with names consisting of tracked issue URLs.
+# fr1: wrap importable Python code.
+# fr2: output proxy establishes execution dependency (superseded by fr3)
+# fr3: output proxy can be used as input
+# fr4: dimensionality and typing of named data causes generation of correct work topologies
+# fr5: explicit many-to-one or many-to-many data flow
+# fr7: Python bindings for launching simulations
+# fr8: gmx.mdrun understands ensemble work
+# fr9: MD plugins
+# fr10: fused operations for use in looping constructs
+# fr11: Python access to TPR file contents
+# fr12: Simulation checkpoint handling
+# fr13: ``run`` module function simplifies user experience
+# fr14: Easy access to GROMACS run time parameters
+# fr15: Simulation input modification
+# fr16: Create simulation input from simulation output
+# fr17: Prepare simulation input from multiple sources
+# fr18: GROMACS CLI tools receive improved Python-level support over generic commandline_operations
+# fr19: GROMACS CLI tools receive improved C++-level support over generic commandline_operations
+# fr20: Python bindings use C++ API for expressing user interface
+# fr21 User insulated from filesystem paths
+# fr22 MPI-based ensemble management from Python
+# fr23 Ensemble simulations can themselves use MPI
 
 
 def api_is_at_least(major_version, minor_version=0, patch_version=0):
index f13aa3c9df43a47b49e36efbc8314ec6dba8172f..1131fb711ecbff6f3dfed9acbd5b463d8b6dc6cf 100644 (file)
@@ -41,12 +41,13 @@ from gmxapi.version import has_feature
 
 @pytest.mark.skipif(not has_feature('fr7'),
                    reason="Feature level not met.")
-def test_fr7():
+@pytest.mark.usefixtures('cleandir')
+def test_fr7(spc_water_box):
     """FR7: Python bindings for launching simulations.
 
     gmx.mdrun uses bindings to C++ API to launch simulations.
     """
-    md = gmx.mdrun(tprfilename)
+    md = gmx.mdrun(spc_water_box)
     md.run()
     # Note: can't verify that this is accomplished with C++ integration without
     # exploring implementation details.
index 03acb344ee90ac37b1afd5221ef2d690ef45a575..0d5f7c8463f296c3d104951037f517cd1cbb6ed2 100644 (file)
@@ -39,10 +39,11 @@ import pytest
 import gmxapi as gmx
 from gmxapi.version import has_feature
 
+# Ref https://redmine.gromacs.org/issues/3192
 @pytest.mark.skipif(not has_feature('fr8'),
                    reason="Feature level not met.")
-def test_fr8():
+def test_fr8(spc_water_box):
     """FR8: gmx.mdrun understands ensemble work."""
-    md = gmx.mdrun([tprfilename, tprfilename])
+    md = gmx.mdrun([spc_water_box, spc_water_box])
     md.run()
     # Maybe assert that two trajectory files with unique filesystem locations are produced?