Skip to content

Test Python 3.14#2193

Draft
mikemhenry wants to merge 8 commits into
openforcefield:mainfrom
mikemhenry:test-py314
Draft

Test Python 3.14#2193
mikemhenry wants to merge 8 commits into
openforcefield:mainfrom
mikemhenry:test-py314

Conversation

@mikemhenry

Copy link
Copy Markdown
Collaborator

Just testing python 3.14

@mattwthompson

Copy link
Copy Markdown
Member

We re-built the toolkit and Interchange, so I'm re-kicking CI now

@mikemhenry

Copy link
Copy Markdown
Collaborator Author

Weird, some http issue since it looks like it can't find these packages?


      The following packages are incompatible
      ├─ ambertools >=22 * does not exist (perhaps a typo or a missing channel);
      └─ numpy <2.3 * does not exist (perhaps a typo or a missing channel).

@mattwthompson

Copy link
Copy Markdown
Member

For better or worse you've come across two outstanding issues in this infrastructure

  • AmberTools isn't built for 3.14, I don't think. I'm trying to make it optional (Treat AmberTools as an optional dependency #2179) but that's a non-trivial set of changes. For now can simply drop it from the testing environment(s) and let ~30 tests pass
  • The NumPy constraint is just outdated, there was a broken ParmEd build but that has since been fixed

@mattwthompson

Copy link
Copy Markdown
Member

Those Pydantic errors seem to stem from NAGL whose testing we're also in the middle of revamping. This implies to me there's value in just some basic tests of the Python code on 3.14 (openforcefield/openff-nagl#236) even if most of the dependencies aren't updated yet

I want to drop v1 compatibility altogether (openforcefield/openff-nagl#262) but it won't be in a release for a while and also might not be the core issue

@mikemhenry

Copy link
Copy Markdown
Collaborator Author

@mattwthompson It looks like the issue now is we need from __future__ import annotations in a few spots since the behavior of type annotations changes in python 3.14 https://docs.python.org/3/reference/compound_stmts.html#annotations

I'm going to take a stab at adding them mostly just to get the tests to run and not worry too much about doing it the right way, I'm mostly just trying to find all the sharp edges around python 3.14 support

@mattwthompson

Copy link
Copy Markdown
Member

That's ... gonna take some patches to smooth over.

Have you come across a tool that checks and/or fixes that automagically for us?

@review-notebook-app

Copy link
Copy Markdown

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@mikemhenry

Copy link
Copy Markdown
Collaborator Author

I think there are some tools that can do it in a fancy way but this is easy:

lint.isort.required-imports = ["from __future__ import annotations"]

@j-wags

j-wags commented Jun 11, 2026

Copy link
Copy Markdown
Member

@mikemhenry Feel free to make a branch instead of a fork since otherwise being unable to access the OpenEye license secret will hamstring the CI runs.

@mikemhenry

Copy link
Copy Markdown
Collaborator Author

@j-wags Ha, I just noticed that issue, I decided to save some carbon and just turn off the openeye stuff for now

@mikemhenry

Copy link
Copy Markdown
Collaborator Author

qcportal & friends looks like it will be a problem, but it looks like I might need to start in openff-nagl to see where the 3.14 blockers exist in the direct openff ecosystem.

@mikemhenry

Copy link
Copy Markdown
Collaborator Author

Ah and that will hit the dgl blocker...

@mattwthompson

Copy link
Copy Markdown
Member

DGL is needed for training but not inference (and the toolkit only needs inference functionality)

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