Skip to content

Conversation

@lilyminium
Copy link
Collaborator

@lilyminium lilyminium commented Jan 1, 2026

This PR adds 2.3.0

Working repo link: https://github.com/openforcefield/ash-sage-rc2

Release link: https://github.com/openforcefield/ash-sage-rc2/releases/tag/2.3.0

Checklist

  • Open a new branch or fork on this repo.
  • Add the new force field file to the branch.
  • Update the date in the FF files
  • Update the authors in the .zenodo.json file - Details and validation info can be found here
  • Check that regular and unconstrained forcefields have constraints applied and absent, respectively
  • Ensure that there are no cosmetic attributes
  • Visually inspect for whitespace irregularities, etc. (Importantly: Tabs should be turned into 4 spaces)
  • Ensure that comments and authors are up to date
  • Ensure that Bonds version="0.4", fractional_bondorder_method="AM1-Wiberg" and fractional_bondorder_interpolation="linear"
  • Ensure that ProperTorsions version="0.4", fractional_bondorder_method="AM1-Wiberg" and fractional_bondorder_interpolation="linear"
  • Ensure the Electrostatics scale14 value is 0.8333333333 (10 sig figs). Change it by hand if more 3's need to be added.
  • Add monoatomic ion charges to the FF, just before the ToolkitAM1BCC tag
  • Ensure that new FFs are loadable in newest stable release of OFF toolkit
  • Draft a "version" description at the bottom of the README file in a branch or fork. A zenodo DOI link is not necessary at this stage
  • Prepare the fitting tarball (or other record of the files and/or code that produced the new parameters), which is often associated with a release like this. This collection of assets should include:
    • a static copy of the data (QM and phys prop) used for the fit
    • a static copy of the scripts used for the fit
    • A file containing the environment used for the fit (like the output of conda env export)
    • Generally, anything else required to re-run the exact fit that was performed
  • Open a PR to main, for example this
>>> from openff.toolkit import Molecule, ForceField
>>> ff = ForceField("openff-2.3.0.offxml")
>>> caffeine = Molecule.from_smiles("CN1C=NC2=C1C(=O)N(C(=O)N2C)C")
>>> interchange = ff.create_interchange(caffeine.to_topology())
>>> ff = ForceField("openff_unconstrained-2.3.0.offxml")
>>> interchange = ff.create_interchange(caffeine.to_topology())

@lilyminium lilyminium requested a review from j-wags as a code owner January 1, 2026 20:52
@codecov-commenter
Copy link

codecov-commenter commented Jan 1, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (c77361a) to head (a221683).

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@lilyminium lilyminium marked this pull request as draft January 1, 2026 21:27
@lilyminium
Copy link
Collaborator Author

Marking as draft while we wait for possible additional authors.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants