Skip to content

Commit

Permalink
Merge branch 'materialsproject:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
hrushikesh-s authored Oct 22, 2023
2 parents 3f917c0 + 104244d commit 42c0a65
Show file tree
Hide file tree
Showing 299 changed files with 3,732 additions and 1,796 deletions.
17 changes: 12 additions & 5 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ name: testing
on:
push:
branches: [main]
tags: ['v*']
tags: ["v*"]
pull_request:
branches: [main]
workflow_dispatch:

jobs:
lint:
Expand All @@ -15,7 +15,7 @@ jobs:

- uses: actions/setup-python@v4
with:
python-version: "3.8"
python-version: "3.9"
cache: pip
cache-dependency-path: pyproject.toml

Expand All @@ -31,7 +31,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10"]
python-version: ["3.9", "3.10", "3.11"]

steps:
- uses: actions/checkout@v3
Expand All @@ -43,9 +43,16 @@ jobs:
cache-dependency-path: pyproject.toml

- name: Install dependencies
# ERROR: Cannot install atomate2 and atomate2[strict,tests]==0.0.1 because these package versions have conflicting dependencies.
# The conflict is caused by:
# atomate2[strict,tests] 0.0.1 depends on pymatgen>=2023.10.4
# atomate2[strict,tests] 0.0.1 depends on pymatgen==2023.10.4; extra == "strict"
# ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
# chgnet 0.2.1 depends on pymatgen>=2023.5.31
# emmet-core 0.70.0 depends on pymatgen>=2023.10.11
run: |
python -m pip install --upgrade pip
pip install .[strict,tests]
pip install .[strict,tests]
- name: Test
env:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/update-precommit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ on:
jobs:
auto-update:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.8
python-version: 3.9

- name: Install pre-commit
run: pip install pre-commit
Expand Down
13 changes: 6 additions & 7 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
default_language_version:
python: python3
exclude: '^.github/'
repos:
- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: v0.0.287
rev: v0.1.1
hooks:
- id: ruff
args: [--fix]
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
rev: v4.5.0
hooks:
- id: check-yaml
- id: fix-encoding-pragma
args: [--remove]
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/psf/black
rev: 23.7.0
rev: 23.10.0
hooks:
- id: black
- repo: https://github.com/asottile/blacken-docs
Expand Down Expand Up @@ -46,7 +45,7 @@ repos:
- id: rst-directive-colons
- id: rst-inline-touching-normal
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.5.1
rev: v1.6.1
hooks:
- id: mypy
files: ^src/
Expand All @@ -55,9 +54,9 @@ repos:
- types-pkg_resources==0.1.2
- types-paramiko
- repo: https://github.com/codespell-project/codespell
rev: v2.2.5
rev: v2.2.6
hooks:
- id: codespell
stages: [commit, commit-msg]
args: [--ignore-words-list, 'titel,statics,ba,nd,te']
args: [--ignore-words-list, 'titel,statics,ba,nd,te,atomate']
types_or: [python, rst, markdown]
1 change: 1 addition & 0 deletions ADMIN.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

Version releases on Pypi and GitHub are handled automatically through GitHub
actions. The steps to push a new release are:

1. Update `CHANGELOG.md` with a new version and release notes.
2. Create a tagged Git commit with the above changes: `git tag v0.0.1`
3. Push the commit and tags to GitHub using: `git push origin --tags`
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,8 @@ Atomate2 is released under a modified BSD license; the full text can be found [h

## Acknowledgements

Atomate2 was designed and developed by Alex Ganose.

A full list of all contributors can be found [here][contributors].
The development of atomate2 has benefited from many people across several research groups.
A full list of contributors can be found [here][contributors].

[pymatgen]: https://pymatgen.org
[fireworks]: https://materialsproject.github.io/fireworks/
Expand Down
45 changes: 40 additions & 5 deletions docs/about/contributors.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
[gh]: https://cdnjs.cloudflare.com/ajax/libs/octicons/8.5.0/svg/mark-github.svg
[orc]: ../_static/orcid.svg

atomate2 was designed and developed by **Alex Ganose** [![gh]][utf] [![orc]][0000-0002-4486-3321].
The first version of atomate2 was designed and developed by **Alex Ganose** [![gh]][utf] [![orc]][0000-0002-4486-3321].

[utf]: https://github.com/utf
[0000-0002-4486-3321]: https://orcid.org/0000-0002-4486-3321

Additional contributions have been provided by:
Further substantial contributions have been provided by:

**Andrew Rosen** [![gh]][Andrew-S-Rosen] [![orc]][0000-0002-0141-7006] \
Assistant Professor of Chemical & Biological Engineering \
Expand All @@ -24,7 +24,7 @@ Lawrence Livermore National Laboratory
[jmmshn]: https://github.com/jmmshn
[0000-0002-2743-7531]: https://orcid.org/0000-0002-2743-7531

**Janosh Riebesell** [![gh]][janosh] [![orc]][0000-0001-5233-3462]\
**Janosh Riebesell** [![gh]][janosh] [![orc]][0000-0001-5233-3462] \
PhD Student \
Cambridge University

Expand Down Expand Up @@ -68,16 +68,51 @@ Microsoft Research
[0000-0001-7777-8871]: https://orcid.org/0000-0001-7777-8871

**Zhuoying Zhu** [![gh]][zhuoying] [![orc]][0000-0003-1775-7651] \
Postdoctoral researcher\
Postdoctoral Researcher \
Lawrence Berkeley National Laboratory

[zhuoying]: https://github.com/zhuoying
[0000-0003-1775-7651]: https://orcid.org/0000-0003-1775-7651

**Aakash Ashok Naik** [![gh]][naik-aakash] [![orc]][0000-0002-6071-6786] \
PhD student\
PhD student \
Federal Institute for Materials Research and Testing (Berlin) \
Friedrich Schiller University Jena

[naik-aakash]: https://github.com/naik-aakash
[0000-0002-6071-6786]: https://orcid.org/0000-0002-6071-6786

**Aaron Kaplan** [![gh]][esoteric-ephemera] [![orc]][0000-0003-3439-4856] \
Postdoctoral Researcher \
Lawrence Berkeley National Laboratory

[esoteric-ephemera]: https://github.com/esoteric-ephemera
[0000-0003-3439-4856]: https://orcid.org/0000-0003-3439-4856

**Matthew McDermott** [![gh]][mattmcdermott] [![orc]][0000-0002-4071-3000] \
PhD student \
University of California, Berkeley

[mattmcdermott]: https://github.com/mattmcdermott
[0000-0002-4071-3000]: https://orcid.org/0000-0002-4071-3000

**Thomas Purcell** [![gh]][tpurcell90] [![orc]][0000-0003-4564-7206] \
Assistant Professor of Chemistry \
University of Arizona

[tpurcell90]: https://github.com/tpurcell90
[0000-0003-4564-7206]: https://orcid.org/0000-0003-4564-7206

**Alexander Bonkowski** [![gh]][ab5424] [![orc]][0000-0002-0525-4742] \
PhD student in Chemistry \
RWTH Aachen University

[ab5424]: https://github.com/ab5424
[0000-0002-0525-4742]: https://orcid.org/0000-0002-0525-4742

**Matthew Kuner** [![gh]][matthewkuner] [![orc]][0000-0002-8218-8558] \
PhD student in Materials Science and Engineering \
University of California, Berkeley

[matthewkuner]: https://github.com/matthewkuner
[0000-0002-8218-8558]: https://orcid.org/0000-0002-8218-8558
25 changes: 25 additions & 0 deletions docs/user/atomate-1-vs-2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Atomate 1 vs 2

This document contains introductory context for people coming from atomate 1.
One of atomate2's core ideas is to allow scaling from a single material, to 100 materials, or 100,000 materials. Therefore, both local submission options and a connection to workflow managers such as FireWorks exist. We plan to support more workflow managers in the future to further ease job submission.
## Relation between managers running the actual jobs and the workflow as written in `atomate2`

There is no leakage between job manager and the workflow definition in `atomate2`. For example, Fireworks is not a required dependency of `atomate2` or `jobflow`. Any `atomate2` workflow can be run using the local manager or an extensible set of external providers, Fireworks just one among them. E.g. all tests are run with mocked calls to the executables using the local manager.

## Do I need to write separate codes for different managers?

If you are adding a new manager option beyond local or FireWorks, you'll need to write a new converter in `jobflow` that takes a job or flow and converts it to the analogous object(s) for the manager you wish to use. This does not impact the `atomate2` code in any way.

Typically, the workflow is as follows:

1. Write a workflow in `atomate2` that represents a job or flow.
2. Import the job or flow in your script/notebook from `atomate2`.
3. Convert the job or flow to manager-compatible objects using a convenience function in `jobflow`.
4. Define the specs for the new object type based on your desired resources.
5. Dispatch the jobs.

## What if a workflow manager stops being maintained?

`atomate2` and `jobflow` remain unaffected in such a case. The user can choose a different manager to suit their needs. This ensures that workflow definition and dispatch are fully decoupled.

In an ideal world, `jobflow` would offer multiple manager options, allowing users to run `atomate2` codes as per their preference. This full decoupling is one of the most powerful features of this stack.
Loading

0 comments on commit 42c0a65

Please sign in to comment.