Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Atomate2 OpenMM integration & broader classical MD framework #782

Merged
merged 265 commits into from
Sep 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
265 commits
Select commit Hold shift + click to select a range
413c626
Move remaining content from common.py to renamed base.py.
orionarcher Mar 7, 2024
28c3126
Update core.py to contain built out skeleton code for openff_job and …
orionarcher Mar 7, 2024
08329a7
Rename utils and remove tasks.py
orionarcher Mar 7, 2024
cf79341
Complete Calculation, CalculationInput, and CalculationOutput schemas…
orionarcher Mar 13, 2024
f21a031
Completed initial draft of BaseOpenMMMaker for classical_md.openmm wo…
orionarcher Mar 13, 2024
e6b648d
Finished updating core jobs for classical_md.openmm to be compatible …
orionarcher Mar 13, 2024
693ea77
Minor reformat
orionarcher Mar 13, 2024
33b8cda
update base_openmm_maker.py slightly, will soon be removed so irrelevant
orionarcher Mar 13, 2024
f67c444
Add TODO item to utils.py
orionarcher Mar 13, 2024
12779f4
Add MoleculeSpec to classical_md.schemas and slightly modify OpenMMTa…
orionarcher Mar 13, 2024
a308801
Add new empty test files
orionarcher Mar 13, 2024
d255606
Change from_prev_task -> resolve_attr
orionarcher Mar 13, 2024
57a06fb
Add as_dict monkeypatch for openff.Molecule to init
orionarcher Mar 18, 2024
a981d5e
Create attribute inheritance logic for base openmm maker and openmm jobs
orionarcher Mar 18, 2024
09156ec
Remove InputMoleculeSpec and transfer functionality to create_mol_spe…
orionarcher Mar 18, 2024
1ddf7c0
Remove InputMoleculeSpec, Geometry, and process mol_specs commented o…
orionarcher Mar 18, 2024
b3e83a5
Add testing files, not all used.
orionarcher Mar 18, 2024
6aa4c4b
Add content to partial charge test files.
orionarcher Mar 19, 2024
38bf78a
Change test dir name from openmm -> openmm_md to solve issue with loc…
orionarcher Mar 19, 2024
c33a97e
Create testing for utils.py functionality and fix small bug in utils.py.
orionarcher Mar 19, 2024
1e5ad58
Cleanup merge_specs test.
orionarcher Mar 19, 2024
b31f940
Add interchange and temporary directory to conftest.py.
orionarcher Mar 20, 2024
6549b02
Add from/as_dict functions for openff topology, interchange, molecule…
orionarcher Mar 20, 2024
17eee5a
Some bug fixes to BaseOpenMMMaker and some changes to allow serializa…
orionarcher Mar 20, 2024
d1c8c9b
Change TaskDoc schema such that interchange is dict, in line with pyd…
orionarcher Mar 20, 2024
b7d43d6
Make all CalculationInput and CalculationOutput arguments optional. F…
orionarcher Mar 20, 2024
331278d
Add tests for BaseOpenMMMaker.
orionarcher Mar 20, 2024
bd1bec1
Add tests for core openmm makers and fix several discovered bugs in c…
orionarcher Mar 20, 2024
b851f2e
Formatting change.
orionarcher Mar 20, 2024
af8f26b
Add tests for as/from dict monkey patching.
orionarcher Mar 20, 2024
2120d20
Add state/dcd files and create a fixture linking to a directory with …
orionarcher Mar 20, 2024
6cf3f5e
Add test for CalculationOutput.from_directory and fix discovered bugs.
orionarcher Mar 20, 2024
4caa394
Make running jobs a bit cleaner with a fixture.
orionarcher Mar 20, 2024
0639e6e
Make running jobs a bit cleaner with a fixture.
orionarcher Mar 20, 2024
26efe83
Add test for generate_interchange and fix associated bugs.
orionarcher Mar 20, 2024
36b1eae
Add TODO
orionarcher Mar 20, 2024
1bd64a3
Initial implementation of anneal and production workflows.
orionarcher Mar 20, 2024
7a926dc
Delete test_schemas.py
orionarcher Mar 20, 2024
809c9d9
Add a n_prev_steps argument to CalculationOutput.from_directory and m…
orionarcher Mar 20, 2024
9998618
Update resolve_attr logic to also set the attr if it's missing. Neede…
orionarcher Mar 20, 2024
71c74fc
Change run_job fixture to take last job from list.
orionarcher Mar 20, 2024
828f881
Update from monty functions to accept dicts with no @module and @clas…
orionarcher Mar 20, 2024
90225c1
Change test to expect json instead of Interchange.
orionarcher Mar 20, 2024
dc7b82a
update calc output from_directory arg to accept n_prev_steps
orionarcher Mar 20, 2024
48b8151
Small change to testing.
orionarcher Mar 20, 2024
527a66e
Modify jobs testing to expect json interchange. Add some testing for …
orionarcher Mar 20, 2024
7120bc0
Add testing for core flows and fix discovered bugs.
orionarcher Mar 20, 2024
aa72fcb
Fix small bugs.
orionarcher Mar 20, 2024
4a52e70
Delete all openmm files.
orionarcher Mar 20, 2024
633c214
Clean up import statements.
orionarcher Mar 20, 2024
1513813
Fix subtle bug in resolve_attr logic.
orionarcher Mar 21, 2024
98f7422
Add TODO
orionarcher Mar 21, 2024
5ef9949
Only add reporter if there will be reports.
orionarcher Mar 21, 2024
a69ccd3
Fix bug in TempChangeMaker.
orionarcher Mar 21, 2024
4719308
Create and use simpler step division logic.
orionarcher Mar 21, 2024
75a19e6
Make state reporter append to end of state file and update tests and …
orionarcher Mar 21, 2024
0f4b752
Output taskdoc_json file to directory, for easy building later on.
orionarcher Mar 21, 2024
1be2d18
Cleanup.
orionarcher Mar 21, 2024
97bf14f
Improve documentation of all utils.py functions.
orionarcher Mar 21, 2024
450799c
Add documentation for openff_job and generate_interchange.
orionarcher Mar 21, 2024
867f42e
Small change.
orionarcher Mar 21, 2024
ad1191a
Enhance documentation for BaseOpenMMMaker.
orionarcher Mar 21, 2024
c828dc4
Change all BaseOpenMMMaker methods except run_openmm and make to priv…
orionarcher Mar 21, 2024
4d90259
Add better documentation.
orionarcher Mar 21, 2024
dce848f
Some ruff fixes.
orionarcher Mar 21, 2024
9f30c03
Ruff fixes.
orionarcher Mar 21, 2024
e1bce61
Ruff fixes.
orionarcher Mar 21, 2024
3654009
Ruff fixes.
orionarcher Mar 21, 2024
7d72163
Ruff fixe jobs.
orionarcher Mar 21, 2024
7bcbc3c
Ruff fix schemas.
orionarcher Mar 21, 2024
aedd2b8
Several ruff fixes.
orionarcher Mar 22, 2024
a809292
Ruff testing.
orionarcher Mar 22, 2024
a7831f0
Fix end of files.
orionarcher Mar 22, 2024
6b20d93
ruff precommit
orionarcher Mar 22, 2024
76f6128
Mypy fixes.
orionarcher Mar 22, 2024
856e994
mypy fixes
orionarcher Mar 22, 2024
c656ef3
Add classical_md imports to pyproject.toml.
orionarcher Mar 22, 2024
c823b75
Merge remote-tracking branch 'origin/main' into openff
orionarcher Mar 22, 2024
dba30d4
Try updating testng to use micromamba.
orionarcher Mar 22, 2024
fac9e17
Try updating testing to use micromamba.
orionarcher Mar 22, 2024
07991a7
Small change to micromamba testing.
orionarcher Mar 22, 2024
7130861
Undo testing changes.
orionarcher Mar 22, 2024
c90801e
Use micromamba alongside pip.
orionarcher Mar 22, 2024
d7a3e7c
Testing fix.
orionarcher Mar 22, 2024
348ea1e
Temporarily limit testing to 3.10+
orionarcher Mar 22, 2024
fd804f2
Change lint and docs build back to using pip.
orionarcher Mar 22, 2024
5f2aa1c
Use conda_requirements.txt instead of listing all needed dependencies.
orionarcher Mar 22, 2024
4d8918d
Fix issue with temperature resolving incorrectly.
orionarcher Mar 22, 2024
9672d7c
Install ase from gitlab.
orionarcher Mar 22, 2024
de55699
Change all docstrings to numpy format.
orionarcher Mar 22, 2024
d8abb6a
Reorder installations.
orionarcher Mar 22, 2024
04f6e4c
Small testing change.
orionarcher Mar 22, 2024
4e45213
Try splitting up testing into two actions.
orionarcher Mar 22, 2024
308a080
Fix small testing oversight.
orionarcher Mar 22, 2024
0c6198c
Switch md testing action to setup-micromamba.
orionarcher Mar 22, 2024
6840bc3
Clean up testing file.
orionarcher Mar 22, 2024
9b269d4
Clean up testing file.
orionarcher Mar 22, 2024
1923918
Clean up testing file.
orionarcher Mar 22, 2024
2799104
Ooops wrong deps file.
orionarcher Mar 22, 2024
6204b8a
Add CodeCov for classical_md tests, rename test_classical_md to test_md.
orionarcher Mar 23, 2024
5861d20
Change name of "steps" arg to "n_steps" in all places.
orionarcher Mar 23, 2024
9be0938
Create arguments for state_file_name and trajectory_file_name.
orionarcher Mar 23, 2024
c0f39d4
Change dcd_interval to trajectory_interval.
orionarcher Mar 23, 2024
d5963e7
Add support for writing trajectory to HDF5 file.
orionarcher Mar 23, 2024
5fcedd4
Change name of keywords with "trajectory" to use "traj" instead.
orionarcher Mar 23, 2024
e77f50c
Change logic DCD to append rather than creating new files, matching h…
orionarcher Mar 23, 2024
92a2d22
Rerun tests.
orionarcher Mar 24, 2024
ada709f
Merge remote-tracking branch 'origin/main' into openff
orionarcher Mar 26, 2024
e38a983
Add fixtures for salts and charge files
orionarcher Mar 28, 2024
78b75c7
Remove charge files schema from utils
orionarcher Mar 28, 2024
caeb9fe
Test interchange build with a salt
orionarcher Mar 28, 2024
5a87998
Fix small charge_method bug.
orionarcher Mar 28, 2024
bc55a36
Add test for linked jobs
orionarcher Mar 28, 2024
f72c341
Add new utilities for calculating electrolyte composition.
orionarcher Mar 28, 2024
0089d75
Change InputMolSpec.openffmol to a string that is a serialized json o…
orionarcher Mar 28, 2024
eb22571
Switch "hdf5" extension to "h5"
orionarcher Mar 28, 2024
89d4228
Update CalculationInput to include all fields in BaseOpenMMMaker
orionarcher Mar 29, 2024
6e85d60
Create rudimentary tutorial
orionarcher Mar 31, 2024
99552bb
Add core jobs, flows, and schemas to __init__.py for easier imports
orionarcher Mar 31, 2024
fe5e5c9
Mini tutorial
orionarcher Apr 2, 2024
8ed3ab1
Merge remote-tracking branch 'origin/main' into openff
orionarcher Apr 4, 2024
19df81e
Coerce formal charge to int in molgraph_to_openff_mol
orionarcher Apr 9, 2024
e31c36e
Migrate all classical_md schemas to emmet.
orionarcher Apr 10, 2024
f5e9870
Push all schemas upstream to emmet.
orionarcher Apr 10, 2024
744b12f
Bump emmet version to 0.82.1
orionarcher Apr 10, 2024
ab32d6e
Bump emmet version to 0.82.1 in another place.
orionarcher Apr 10, 2024
e73a4ad
Fix classical_md dependencies in pyproject.toml.
orionarcher Apr 10, 2024
cbfde60
Replace "_"->"." in output files written to directory>
orionarcher Apr 10, 2024
522d8a8
Add embed_traj argument to base_openmm_maker
orionarcher Apr 10, 2024
880edfc
Rename test files with "." instead of "_"
orionarcher Apr 10, 2024
2fcd02f
Fix MDAReporter to correctly increment file names.
orionarcher Apr 10, 2024
d49d261
Add data keyword for interchange and traj blob
orionarcher Apr 10, 2024
16e29e7
Add traj_blob keyword and switch interchange to type HexBytes. Transi…
orionarcher Apr 10, 2024
31e47d4
Add test for blob embedding.
orionarcher Apr 10, 2024
1344a0e
Add optional bytes type to production_maker and anneal_maker make met…
orionarcher Apr 10, 2024
7684ae1
Return Response instead of TaskDoc directly in generate_interchange.
orionarcher Apr 10, 2024
d0689c3
Skip HDF5 Test
orionarcher Apr 10, 2024
080dd8c
Bring up to date with several schema changes in emmet.
orionarcher Apr 10, 2024
c02136f
Delete test on schema because it was moved to emmet.
orionarcher Apr 11, 2024
92a8766
Merge branch 'refs/heads/openff' into openff_traj
orionarcher Apr 14, 2024
7bb7113
Remove classical md dependencies from pyproject.toml and add to class…
orionarcher Apr 15, 2024
f773d3d
Add option to add tags when generating interchange.
orionarcher Apr 15, 2024
5b068e5
Add create_mol_dicts function to make setup easier.
orionarcher Apr 15, 2024
4903362
Make each new job create a new state file.
orionarcher Apr 16, 2024
83b96fe
Move some utils upstream to pymatgen.
orionarcher May 6, 2024
1f46762
Update pymatgen version.
orionarcher May 6, 2024
f02c86d
Update emmet version.
orionarcher May 6, 2024
f095b9c
Merge branch 'refs/heads/main' into openff_traj
orionarcher May 6, 2024
cdcc570
fix pyproject.toml
orionarcher May 6, 2024
cd7aaf4
Allow calculate_elyte_composition to use mass or volume ratios.
orionarcher May 8, 2024
4c38236
Move openmm mdanalysis reporter to dependencies in pyproject.toml.
orionarcher May 8, 2024
4eaeb87
Add classical_md to test dependencies.
orionarcher May 8, 2024
431627a
Add `tags` argument to make method of all makers, allowing metadata t…
orionarcher May 13, 2024
0e05502
Reimplement `tags` argument to base makers, allowing metadata to be i…
orionarcher May 13, 2024
dba553d
Reimplement `tags` argument to base makers, allowing metadata to be i…
orionarcher May 31, 2024
a57132f
Add basic oplsaa support through the foyer package.
orionarcher May 31, 2024
9e298f5
Add documentation for tags to BaseOpenMMMaker.
orionarcher Jun 1, 2024
2758b57
Fill out OpenMM tutorial.
orionarcher Jun 1, 2024
3f6e644
Replace ProductionMaker and AnnealMaker with a single flexible flow m…
orionarcher Jun 1, 2024
2db6eb2
Update tutorial.
orionarcher Jun 1, 2024
087e7dd
Small fix in tutorial
orionarcher Jun 1, 2024
1a17274
Improvements to tutorial.
orionarcher Jun 2, 2024
34a6c68
Finish version 1 of the tutorial.
orionarcher Jun 2, 2024
176383d
Make foyer import optional
orionarcher Jun 3, 2024
f669907
Make foyer import optional
orionarcher Jun 16, 2024
0fb6e76
Tutorial update
orionarcher Jun 20, 2024
4ac30bd
Change all testing force methods to mmff94.
orionarcher Jun 23, 2024
268e5ef
Split out mol spec list creation into utility function.
orionarcher Jun 23, 2024
c16d98e
Remove support for opls with foyer.
orionarcher Jun 23, 2024
0fc8f38
Small correction to counts calculator test.
orionarcher Jun 23, 2024
a4c91b2
Allow reporting of velocities in BaseOpenMMMaker. Also fix incrementi…
orionarcher Jul 17, 2024
686628e
Fix velocity reporting test
orionarcher Jul 17, 2024
321e6c6
Merge branch 'main' into openff
utf Jul 18, 2024
26cbc2e
Update pyproject.toml
utf Jul 18, 2024
f72093b
Add in OPLS ligpargen downloading and system setup.
orionarcher Jul 18, 2024
9ca60b3
Add files for ligpargen testing
orionarcher Jul 18, 2024
ab8cca4
Update pre-commit
orionarcher Jul 19, 2024
eaafef3
Merge remote-tracking branch 'refs/remotes/personal/openff' into openff
orionarcher Jul 19, 2024
33cfce0
Make selenium import optional
orionarcher Jul 19, 2024
6f20859
Manually delete reporters in BaseOpenMMMaker
orionarcher Jul 20, 2024
a9b05e8
Fix manual deletion of reporters in BaseOpenMMMaker
orionarcher Jul 20, 2024
3d9dc60
Improve system builder in OPLS utilities
orionarcher Jul 23, 2024
028f6e9
Fix small error when checking for previous task_reports
orionarcher Jul 23, 2024
117da14
OPLS utilities for generating a compatible FauxInterchange object.
orionarcher Jul 24, 2024
4e36e60
Make BaseOpenMMMaker compatible with FauxInterchange and write tests …
orionarcher Jul 24, 2024
719df8b
Replace "smile" with "smiles" everywhere.
orionarcher Jul 24, 2024
007f87e
Remove output_dir from make signature, refactor testing to adjust.
orionarcher Jul 24, 2024
e492d4e
Move opls_utils to opls
orionarcher Jul 25, 2024
f4bb86f
Fix interchange loading logic if a string is input.
orionarcher Jul 25, 2024
73b609c
Modify load_interchange to undo mangling of Interchange by Fireworks.
orionarcher Jul 26, 2024
b3b8e48
Attempt to change testing to micromamba based install.
orionarcher Jul 26, 2024
979480a
Add a skipped fireworks test for local testing.
orionarcher Jul 26, 2024
06fc2a1
Merge branch 'refs/heads/main' into openff
orionarcher Jul 26, 2024
9270b5b
Small change to try to rerun tests
orionarcher Jul 26, 2024
40fe279
Fix typo in testing.yml
orionarcher Jul 26, 2024
1c3b699
run nbstripout with pre-commit
orionarcher Jul 26, 2024
092d701
Standardize micromamba activations
orionarcher Jul 26, 2024
c31c04e
Try adding default shell to testing.yml
orionarcher Jul 26, 2024
624aa28
Cleanup micromamba commands in testing.yml and remove tutorial test
orionarcher Jul 26, 2024
7396f37
Undo most of micromamba cleanup but still skip tutorial test
orionarcher Jul 26, 2024
2dffb82
Fix typo and try switching to install with uv
orionarcher Jul 26, 2024
c25f31a
Fix typo
orionarcher Jul 26, 2024
31179e5
Add strict dependencies and pin conda dependencies in CI.
orionarcher Jul 26, 2024
b216c11
Change FauxInterchange to OpenMMInterchange and swap topology from op…
orionarcher Jul 29, 2024
8e70816
Remove classical_md directory and split openmm and openff into separa…
orionarcher Jul 29, 2024
19df8e6
Remove classical_md directory and split openmm and openff into separa…
orionarcher Jul 29, 2024
33c1bf8
Change references to emmet to reference openmm and openff.
orionarcher Jul 29, 2024
e4b8574
Update ignore commands in testing.yml.
orionarcher Jul 29, 2024
13969b2
Merge branch 'refs/heads/main' into openff
orionarcher Jul 29, 2024
95f2fa0
Modify flow to have a final step that collects job uuids.
orionarcher Jul 30, 2024
fcab2bd
Make calcs reversed no longer accumulate calculations in base job
orionarcher Jul 30, 2024
4d19c2e
Make final collect jobs in OpenMMFlowMaker optional, modify internal …
orionarcher Jul 30, 2024
2d2c6e7
Update pinned dependencies in CI and remove requirements text file.
orionarcher Jul 30, 2024
7021a41
Write task_doc when collecting jobs in the
orionarcher Jul 30, 2024
09ed550
Merge branch 'refs/heads/main' into openff
orionarcher Jul 30, 2024
9c223ef
Try updating dependency pin.
orionarcher Jul 30, 2024
8f30edb
Ignore the right tests
orionarcher Jul 30, 2024
a5617fd
rename internal function and add comments
orionarcher Jul 30, 2024
4ea43ba
Change PDBxFile to PDB
orionarcher Jul 31, 2024
325bcf6
Small refactor of OpenMMFlowMaker
orionarcher Jul 31, 2024
cddbd1a
Change prev_task to prev_dir in all locations, some refactoring of Ba…
orionarcher Jul 31, 2024
32c6890
Merge branch 'refs/heads/main' into openff
Aug 11, 2024
2d9b257
Change _collect_outputs to collect_outputs
orionarcher Aug 12, 2024
638b65f
Add XMLMoleculeFF class which supports manipulating XML files represe…
orionarcher Aug 27, 2024
ecb4067
Create openmm_job and replace openff_job with it
orionarcher Aug 30, 2024
3526e6c
Migrate according to emmet taskdoc adjustment:
orionarcher Aug 30, 2024
074d270
Split utilities and jobs in jobs/opls.py out into separate files.
orionarcher Sep 1, 2024
0d6f55a
Bump documentation and remove jobs/opls.py file
orionarcher Sep 1, 2024
677d8e0
Multiple WIP changes that need to be cleaned up transforming HexBytes…
orionarcher Sep 6, 2024
53db467
Fix partial charge issue with XMLMoleculeFF.
orionarcher Sep 8, 2024
8189a95
Loosen charge checking restriction
orionarcher Sep 9, 2024
1e3f662
Merge branch 'openff_str_blobs' into openff
orionarcher Sep 9, 2024
fe9fec6
Fix type hinting on interchange.
orionarcher Sep 10, 2024
7f32d24
Merge branch 'main' into openff
orionarcher Sep 10, 2024
77ba3fa
Lint OpenMM and OpenFF
orionarcher Sep 10, 2024
745f1ff
Incorporate suggestions from utf into pyproject.toml and testing.yml.
orionarcher Sep 10, 2024
e2cbe68
Disable failing cclib test.
orionarcher Sep 10, 2024
2fff845
Refactor utilities so that openff is not a dependency for the openmm …
orionarcher Sep 11, 2024
4c2e892
Refactor openmm utilities and generate to isolate openff dependency a…
orionarcher Sep 11, 2024
44d4fd6
Add attempted import for openmmml to enable mace based interchanges a…
orionarcher Sep 12, 2024
2355c5d
Update OpenMM tutorial
orionarcher Sep 20, 2024
54c88c2
Update pyproject.toml and testing.yml
orionarcher Sep 20, 2024
7e9e561
Skip tests that require MDAnalysis 2.8.0
orionarcher Sep 20, 2024
902ff5a
Remove [classical_md] from testing.yml
orionarcher Sep 20, 2024
acd5bf1
Respond to minor comments from Janosh
orionarcher Sep 20, 2024
8b45984
Replace temp_dir fixture with tmp_path
orionarcher Sep 20, 2024
58ad842
Rename interchange_meta -> mol_specs
orionarcher Sep 20, 2024
a6f965b
Support BaseOpenMMMaker returning structures
orionarcher Sep 20, 2024
1d86910
Fix reading and writing of structure to/from OpenMMTaskDocument
orionarcher Sep 23, 2024
d96b3a0
Merge branch 'main' into openff
janosh Sep 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 29 additions & 22 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,51 +31,58 @@ jobs:
- 27017:27017

runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0} # enables conda/mamba env activation by reading bash profile
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11"]

steps:
- uses: actions/checkout@v4
- name: Check out repo
uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Set up micromamba
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@utf i think it could help to have the micromamba-dependent MD CI be its own job or even its own test-md.yml workflow. that would enable only running the MD tests when any MD source files change and would also uncouple the remaining CI from any install/env issues micromamba might encounter

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd be happy with that solution!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using micromamba saves us from manually building enumlib so I favor keeping it in the main CI.

uses: mamba-org/setup-micromamba@main

- name: Create mamba environment
run: |
micromamba create -n a2 python=${{ matrix.python-version }} --yes

- name: Install uv
run: micromamba run -n a2 pip install uv

- name: Install enumlib
- name: Install conda dependencies
run: |
cd ..
git clone --recursive https://github.com/msg-byu/enumlib.git
cd enumlib/symlib/src
export F90=gfortran
make
cd ../../src
make enum.x
sudo mv enum.x /usr/local/bin/
cd ..
sudo cp aux_src/makeStr.py /usr/local/bin/
continue-on-error: true # This is not critical to succeed.
micromamba install -n a2 -c conda-forge enumlib packmol bader openbabel openff-toolkit==0.16.2 openff-interchange==0.3.22 --yes

- name: Install dependencies
run: |
micromamba activate a2
python -m pip install --upgrade pip
mkdir -p ~/.abinit/pseudos
cp -r tests/test_data/abinit/pseudos/ONCVPSP-PBE-SR-PDv0.4 ~/.abinit/pseudos
pip install .[strict,tests,abinit]
pip install torch-runstats
pip install --no-deps nequip==0.5.6
uv pip install .[strict,tests,abinit]
uv pip install torch-runstats
uv pip install --no-deps nequip==0.5.6

- name: Install pymatgen from master if triggered by pymatgen repo dispatch
if: github.event_name == 'repository_dispatch' && github.event.action == 'pymatgen-ci-trigger'
run: pip install --upgrade 'git+https://github.com/materialsproject/pymatgen@${{ github.event.client_payload.pymatgen_ref }}'
run: |
micromamba activate a2
utf marked this conversation as resolved.
Show resolved Hide resolved
uv pip install --upgrade 'git+https://github.com/materialsproject/pymatgen@${{ github.event.client_payload.pymatgen_ref }}'

- name: Test Notebooks
run: pytest --nbmake ./tutorials
run: |
micromamba activate a2
pytest --nbmake ./tutorials --ignore=./tutorials/openmm_tutorial.ipynb

- name: Test
env:
MP_API_KEY: ${{ secrets.MP_API_KEY }}
run: pytest --cov=atomate2 --cov-report=xml
run: |
micromamba activate a2
pytest --cov=atomate2 --cov-report=xml

- uses: codecov/codecov-action@v1
if: matrix.python-version == '3.10' && github.repository == 'materialsproject/atomate2'
Expand Down
Loading
Loading