atomate2 icon indicating copy to clipboard operation
atomate2 copied to clipboard

Atomate2 add-on packages

Open ml-evs opened this issue 3 years ago • 2 comments

As discussed briefly in #173, we would like to create add-on packages for atomate2 to support additional codes that maybe don't fit in within existing workflows. LAMMPS seems to be one such case and as such we have moved development out to a namespace package atomate2-lammps.

Is this a contribution route that should be officially supported? I am happy to extract the generic stuff from our repository to make an add-on template similar to pymatgen-addon-template, and make a PR here with some explanation? I guess the alternative would be developing the separate add-on and then eventually folding it back into atomate2 when it is more mature.

Let me know what you think!

ml-evs avatar Dec 20 '22 13:12 ml-evs

Is this a contribution route that should be officially supported?

Yes, this is a great idea. We are very happy to support addon packages for atomate2.

I am happy to extract the generic stuff from our repository to make an add-on template similar to pymatgen-addon-template, and make a PR here with some explanation?

This would also be very useful. I've not set up add-on packages before, so I'm also not clear if something has to be modified in atomate2 itself?

the alternative would be developing the separate add-on and then eventually folding it back into atomate2

We will also support this, if at some point you decide you'd like the code to be in the main repo.

Thanks for suggesting this!

utf avatar Dec 21 '22 08:12 utf

This would also be very useful. I've not set up add-on packages before, so I'm also not clear if something has to be modified in atomate2 itself?

Here's a template repo that follows what I've done for the atomate2-lammps package so far: https://github.com/Matgenix/atomate2-addon-template

The idea is that the template uses:

  • the correct source layout (i.e., ./src/atomate2/addon with no __init__.py at the atomate2 level.
  • the correct namespace configuration in pyproject.toml (there is one caveat that editable installs may not work yet -- need to investigate),
  • an approximately consistent code style with the main repo (i.e., same linting settings, versions would need to be tracked and updated with our annoying friend dependabot in the template repo separately, though this is not crucial),
  • a simple CI that runs the tests/pre-commit linting

The only thing that could change in this repo is adding an explanation and link out in the README/contributing docs.

ml-evs avatar Dec 21 '22 19:12 ml-evs