Is your feature request related to a problem? Please describe.
While working on #2180 #2183 and other recent changes iit is clear to me that we need to re-think our testing infrastructure, possibly from the ground-up.
I'm working off of the following assumptions:
- Basic toolkit usage requires
a. OpenFF NAGL1
b. the RDKit2
- Basic toolkit usage does NOT require
a. OpenEye toolkits (OEChem, OEOmega, etc.)
b. AmberTools
- AmberTools and the RDKit are not particularly coupled at install time
- Charge assignment hierarchy should still follow the SMIRNOFF specification
Describe the solution you'd like
Revamp testing infrastructure with the following requirements in mind
- OpenFF Nagl or RDKit can be assured to be installed and removing them is an advanced use case
- Tests using any force field older than 2.3.0 requires AmberTools OR OpenEye
- Some tests may continue to require OpenEye
I think this could be accomplished with three CI environments:
- One "base" with only required dependencies
- One environment with OpenEye, and nothing else, added into the base
- One environment with AmberTools, and nothing else, added into the base
We could continue to have multiple examples environments, but to me the tradeoffs here don't make as much sense; our examples ought to taste basic usage and our CI setup should catch most breaks.
Describe alternatives you've considered
Lots and lots of import guards, complexity in automation, and fragility with i.e. forcibly removing required dependencies.
Additional context
This idea loses an "everything bagel" environment, but this one tends to be the hardest one to maintain.
Is your feature request related to a problem? Please describe.
While working on #2180 #2183 and other recent changes iit is clear to me that we need to re-think our testing infrastructure, possibly from the ground-up.
I'm working off of the following assumptions:
a. OpenFF NAGL1
b. the RDKit2
a. OpenEye toolkits (OEChem, OEOmega, etc.)
b. AmberTools
Describe the solution you'd like
Revamp testing infrastructure with the following requirements in mind
I think this could be accomplished with three CI environments:
We could continue to have multiple examples environments, but to me the tradeoffs here don't make as much sense; our examples ought to taste basic usage and our CI setup should catch most breaks.
Describe alternatives you've considered
Lots and lots of import guards, complexity in automation, and fragility with i.e. forcibly removing required dependencies.
Additional context
This idea loses an "everything bagel" environment, but this one tends to be the hardest one to maintain.
Footnotes
For example, using Sage 2.3.0 or more recent force fields ↩
Above but also PDB loading ↩