Project Plan: Adoption of Interchange backend as export machinery for ForceField.create_openmm_system
Primary Driver | @Matt Thompson |
Approver | @Jeffrey Wagner |
Supporting Drivers | @Jeffrey Wagner |
Stakeholders | @Jeffry Setiadi @Lily Wang @Michael Shirts Richard Gowers @Joshua Horton Irfan Alibay, Hyesu Jang, |
Decision authority | Milestone completion: Unanimity of Primary Driver and Approver Significant spec changes: Unanimity of Primary Driver and Approver in upon consultation of stakeholders |
Discussion/ Notification venue | The #developers slack channel, with a 3-day feedback period for any major decision, in which all stakeholders are tagged |
Objective | Replace current Toolkit code that generates OpenMM systems with Interchange in a way that does not unduly affect users or FF developers |
Due date | End of November 2022 |
Key outcomes | Interchange code replaces all the |
Status | not started / in progress / complete |
Problem Statement
We eventually want all Toolkit “system” outputs to go through Interchange, since it will be the basis for next-gen fitting and system manipulation. This will eventually enable the deprecation of create_force
and postprocess_system
code from the toolkit, since it will be redundant. We need to get to this future within the constraints of our available resources and timelines.
The goal of this project is to provide feature/regression testing goalposts and timelines for the introduction and adoption of Interchange as the main OpenMM System exporter for the Toolkit, in a way that does not unduly harm users or force field scientists.
We will know that this has succeeded if all OpenMM system generation is handled by Interchange, and Interchange’s SMIRNOFF implementation achieves parity with the Toolkit’s SMIRNOFF implementation.
Part 1: User adoption scope/Regression testing
Must have: |
|
Nice to have: |
|
Not in scope: |
|
Part 2: Deprecation of previous code
Must have: |
|
Nice to have: |
|
Not in scope: |
|
Milestones and deadlines
Milestone | Deadline | Status |
---|---|---|
Finalize spec (this page) |
| Primary driver approves Approver approves |
Regression testing (at least all “must have”s from “User adoption scope” board above) |
| Primary driver approves Approver approves |
“User adoption”: Replace default behavior of |
| Primary driver approves Approver approves |
Full plugin support (at least all “must have”s from “Deprecation of previous code scope” board above) | X date) | Primary driver approves Approver approves |
Begin | Y date) | Primary driver approves Approver approves |
Remove | Y+5 months | Primary driver approves Approver approves |