* Support virtual sites and multiple SMIRNOFF force fields * Put test files where tests can actually find them * Clean up some changes in template_generators.py * Clean up virtual site permutation handling in test cases * Unfinished draft * Allow specifying multiple force fields * Support constraints and virtual sites * Add more tests for constraints * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Run tests on OpenMM 8.5.0 beta since we need ForceField changes * Need openmm_dev channel * Use correct channel names (openmm_rc for beta) * Minor improvement to torsion handling, fix incorrect comment * Basic test for proteins * Default to unconstrained variant of force field when given name * Test molecule is unstable due to vsite/H overlap * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update vsite tests with more varieties of molecules * Autoformatter * Update openmmforcefields/generators/template_generators.py Co-authored-by: Josh Horton <joshua.horton@openforcefield.org> * 1-4 exception check (not vsites) now uses non-zero scalings * Use preset list of known force field names, update documentation * Reduce test set size after Interchange cache behavior change * Update openmmforcefields/tests/test_template_generators.py Co-authored-by: Jeff Wagner <jwagnerjpl@gmail.com> * Water constraints test also checks TIP3P inside openff_unconstrained * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix error message if preset force field file can't be located * Update CHARMM force field scripts (see openmm/openmm#5181) * Change caching behavior so molecules must be added * Regenerate CHARMM force fields * Test regenerated force fields on OpenMM 8.5.0 beta * Refactor multi-residue molecule test * Put back CHARMM files that didn't change other than generation date * Add test with virtual site frame atoms spanning residue * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add test file with many amino acids * Run tests on release version of OpenMM instead of beta --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Josh Horton <joshua.horton@openforcefield.org> Co-authored-by: Jeff Wagner <jwagnerjpl@gmail.com>
Development, testing, and deployment tools
This directory contains a collection of tools for running Continuous Integration (CI) tests, conda installation, and other development tools not directly related to the coding process.
Manifest
Conda Environment:
This directory contains the files to setup the Conda environment for testing purposes
conda-envs: directory containing the YAML file(s) which fully describe Conda Environments, their dependencies, and those dependency provenance'stest_env.yaml: Simple test environment file with base dependencies. Channels are not specified here and therefore respect global Conda configuration
How to contribute changes
- Clone the repository if you have write access to the main repo, fork the repository if you are a collaborator.
- Make a new branch with
git checkout -b {your branch name} - Make changes and test your code
- Ensure that the test environment dependencies (
conda-envs) line up with the build and deploy dependencies (conda-recipe/meta.yaml) - Push the branch to the repo (either the main or your fork) with
git push -u origin {your branch name}- Note that
originis the default name assigned to the remote, yours may be different
- Note that
- Make a PR on GitHub with your changes
- We'll review the changes and get your code into the repo after lively discussion!
Checklist for updates
- Make sure there is an/are issue(s) opened for your specific update
- Create the PR, referencing the issue
- Debug the PR as needed until tests pass
- Tag the final, debugged version
git tag -a X.Y.Z [latest pushed commit] && git push --follow-tags
- Get the PR merged in
Versioneer Auto-version
Versioneer will automatically infer what version
is installed by looking at the git tags and how many commits ahead this version is. The format follows
PEP 440 and has the regular expression of:
\d+.\d+.\d+(?\+\d+-[a-z0-9]+)
If the version of this commit is the same as a git tag, the installed version is the same as the tag,
e.g. openmmforcefields-0.1.2, otherwise it will be appended with +X where X is the number of commits
ahead from the last tag, and then -YYYYYY where the Y's are replaced with the git commit hash.