diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index f55040f03a..e8d4f8af10 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -80,7 +80,7 @@ jobs: ref: ${{ github.event.workflow_run.head_branch }} - name: Write release info - run: awk 'BEGIN {p = 0} {a = 0 }; /^v\d*.\d*.\d*./ { p += 1; a = 1}; p + a == 1 { print } ' docs/about/changelog.md | sed -e '1,1d' | sed -e '/./,$!d' -e :a -e '/^\n*$/{$d;N;ba' -e '}' > release_info.txt + run: awk 'BEGIN {p = 0} {a = 0 }; /^v\d*.\d*.\d*./ { p += 1; a = 1}; p + a == 1 { print } ' CHANGELOG.md | sed -e '1,1d' | sed -e '/./,$!d' -e :a -e '/^\n*$/{$d;N;ba' -e '}' > release_info.txt - name: Release uses: actions/create-release@v1 diff --git a/ADMIN.md b/ADMIN.md new file mode 100644 index 0000000000..11d8fb87b1 --- /dev/null +++ b/ADMIN.md @@ -0,0 +1,7 @@ +# Releasing a new atomate2 version + +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` diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000..4b64cc8ff8 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,137 @@ +Change log +========== + +v0.0.8 +------ + +New features: + +- VASP Phonopy workflow ([@JaGeo](https://github.com/JaGeo), [#137](https://github.com/materialsproject/atomate2/pull/137)) +- Molecular dynamics VASP job ([@mjwen](https://github.com/mjwen), [#134](https://github.com/materialsproject/atomate2/pull/134)) + +Enhancements: + +- Update IO classes to use pymatgen base classes ([@rkingsbury](https://github.com/rkingsbury), [#141](https://github.com/materialsproject/atomate2/pull/141)) +- Read and write VASP structures with higher precision ([@JaGeo](https://github.com/JaGeo), [#167](https://github.com/materialsproject/atomate2/pull/167)) + +Bug fixes: + +- Fix code examples in docs ([@JaGeo](https://github.com/JaGeo), [#169](https://github.com/materialsproject/atomate2/pull/169)) +- Fix f-orbital DOS properties ([@arosen93](https://github.com/arosen93), [#138](https://github.com/materialsproject/atomate2/pull/138)) +- Fix `mock_run_vasp` testing to accept args ([@mjwen](https://github.com/mjwen), [#151](https://github.com/materialsproject/atomate2/pull/151)) +- Regenerate calc_types enum ([@mjwen](https://github.com/mjwen), [#153](https://github.com/materialsproject/atomate2/pull/153)) + +v0.0.7 +------ + +New features: + +- Include band-related features (e.g. band center, bandwidth, skewness, kurtosis) in + VASP schema ([@arosen93](https://github.com/arosen93), [#92](https://github.com/materialsproject/atomate2/pull/92)) +- Add `use_auto_ispin` and `update_user_potcar_functional` powerups + +Enhancements: + +- Add `is_hubbard` and `hubbards` to VASP task doc. +- Migrate build system to pyproject.toml. +- Migrate docs to jupyter-book. +- Docs improvements ([@janosh](https://github.com/janosh), [@mjwen](https://github.com/mjwen)) + +Bug fixes: + +- Fix HSE tags. +- Fix running bader. +- Make potcar_spec argument usable ([@jmmshn](https://github.com/jmmshn), [#83](https://github.com/materialsproject/atomate2/pull/83)) +- Replace monty which with shutil which ([@arosen93](https://github.com/arosen93), [#92](https://github.com/materialsproject/atomate2/pull/92)) +- Fix `calculate_deformation_potentials()` ([@janosh](https://github.com/janosh), [#94](https://github.com/materialsproject/atomate2/pull/94)) +- Fix gzipping of files with numerical suffixes ([@jmmshn](https://github.com/jmmshn), [#116](https://github.com/materialsproject/atomate2/pull/116)) + +v0.0.6 +------ + +New features: + +- cclib task document supporting virtually all popular molecular DFT codes out-of-the-box + ([@arosen93](https://github.com/arosen93), [#64](https://github.com/materialsproject/atomate2/pull/64)) + +Enhancements: + +- Add mag_density to VASP output doc ([@arosen93](https://github.com/arosen93), [#65](https://github.com/materialsproject/atomate2/pull/66)) +- Double relax maker now supports two different Makers ([@arosen93](https://github.com/arosen93), [#32](https://github.com/materialsproject/atomate2/pull/32)) + +Bug fixes: + +- Store band structure efermi in CalculationOutput ([@arosen93](https://github.com/arosen93), [#66](https://github.com/materialsproject/atomate2/pull/66)) +- Support for VASP6 and latest pymatgen ([@arosen93](https://github.com/arosen93), [#75](https://github.com/materialsproject/atomate2/pull/75)) +- Fixed atomate2 version string. +- Disabled orbital projections in the electron-phonon workflow. + +v0.0.5 +------ + +This version removed Python 3.7 support following numpy and pymatgen. + +New features: + +- Base schema for molecule task documents ([@arosen93](https://github.com/arosen93), [#54](https://github.com/materialsproject/atomate2/pull/54)) + +Bug fixes: + +- Fix VASP relaxation using custodian "FULL_OPT" ([@arosen93](https://github.com/arosen93), [#42](https://github.com/materialsproject/atomate2/pull/42)) +- Fix supercell generation and input sets in electron-phonon workflow. +- Fix `HSEBSSetGenerator` INCAR settings. +- Fix issue with magnetism in SOC structures. +- Fix bug with Fermi level and IBRION=1 +- Better handling of URI generation. +- Tweak k-spacing formula to stop large band gaps giving negative values + +v0.0.4 +------ + +Lots of improvements and bug fixes this release. + +New features: + +- AMSET workflow. +- Electron phonon band gap renormalisation workflow. +- Specific uniform and line mode band structure makers. +- Optics maker. +- Transmuter maker. + +Enhancements: + +- Support for automatic handling of ISPIN. +- Add MP base sets ([@arosen93](https://github.com/arosen93), [#27](https://github.com/materialsproject/atomate2/pull/27)) +- Docs updates ([@arosen93](https://github.com/arosen93), [#13](https://github.com/materialsproject/atomate2/pull/13) [#17](https://github.com/materialsproject/atomate2/pull/17)) +- Options to strip band structure and DOS projects to reduce object sizes. +- Input sets now use generators to avoid serialization issues. +- Use smart efermi finding to remove errors with tetrahedron integration in VASP 6. +- Powerups can now work on `Maker` objects directly. + +Bug fixes: + +- Use PBEsol by default. +- Increase number of significant figures when writing POSCAR files. +- Remove unused INCAR settings ([@arosen93](https://github.com/arosen93)) +- Add missing LASPH flags on vdW functionals ([@arosen93](https://github.com/arosen93), [#31](https://github.com/materialsproject/atomate2/pull/31)) +- Use `NSW=0` in static calculations ([@arosen93](https://github.com/arosen93), [#10](https://github.com/materialsproject/atomate2/pull/10)) +- `LREAL = False` in static jobs by default ([@arosen93](https://github.com/arosen93), [#23](https://github.com/materialsproject/atomate2/pull/23)) +- Add missing functionals in output schema ([@arosen93](https://github.com/arosen93), [#12](https://github.com/materialsproject/atomate2/pull/12)) +- Many output schema fixes. +- Better support for FireWorks. +- Support writing additional files in VASP jobs. + +v0.0.3 +------ + +Many updates to use the latest jobflow store features. + +v0.0.2 +------ + +Automated releases. + +v0.0.1 +------ + +Initial release. diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000..0c80694d5b --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,48 @@ +# Contributor Code of Conduct + +As contributors and maintainers of this project, and in the interest of +fostering an open and welcoming community, we pledge to respect all people who +contribute through reporting issues, posting feature requests, updating +documentation, submitting pull requests or patches, and other activities. + +We are committed to making participation in this project a harassment-free +experience for everyone, regardless of level of experience, gender, gender +identity and expression, sexual orientation, disability, personal appearance, +body size, race, ethnicity, age, religion, or nationality. + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery +* Personal attacks +* Trolling or insulting/derogatory comments +* Public or private harassment +* Publishing other's private information, such as physical or electronic + addresses, without explicit permission +* Other unethical or unprofessional conduct + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +By adopting this Code of Conduct, project maintainers commit themselves to +fairly and consistently applying these principles to every aspect of managing +this project. Project maintainers who do not follow or enforce the Code of +Conduct may be permanently removed from the project team. + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting a project maintainer at [INSERT EMAIL ADDRESS]. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. Maintainers are +obligated to maintain confidentiality with regard to the reporter of an +incident. + + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 1.3.0, available at https://www.contributor-covenant.org/version/1/3/0/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000..4d3aeb27a5 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,68 @@ +# Contributing to atomate2 + +We love your input! We want to make contributing to as easy and +transparent as possible, whether it's: + +- Reporting a bug +- Discussing the current state of the code +- Submitting a fix +- Proposing or implementing new features +- Becoming a maintainer + +## Reporting bugs, getting help, and discussion + +atomate2 is still in development, so at the moment we +do not have a dedicated help forum. For the time being, please +submit questions and bugs to the +[GitHub issues page](https://github.com/materialsproject/atomate2/issues). + +If you are making a bug report, incorporate as many elements of the +following as possible to ensure a timely response and avoid the +need for followups: + +- A quick summary and/or background. +- Steps to reproduce - be specific! **Provide sample code.** +- What you expected would happen, compared to what actually happens. +- The full stack trace of any errors you encounter. +- Notes (possibly including why you think this might be happening, + or steps you tried that didn't work). + +We love thorough bug reports as this means the development team can +make quick and meaningful fixes. When we confirm your bug report, +we'll move it to the GitHub issues where its progress can be +further tracked. + +## Contributing code modifications or additions through Github + +We use github to host code, to track issues and feature requests, +as well as accept pull requests. We maintain a list of all +contributors [here](https://materialsproject.github.io/atomate2/contributors.html). + +Pull requests are the best way to propose changes to the codebase. +Follow the [Github flow](https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow) +for more information on this procedure. + +The basic procedure for making a PR is: + +- Fork the repo and create your branch from master. +- Commit your improvements to your branch and push to your Github fork (repo). +- When you're finished, go to your fork and make a Pull Request. It will + automatically update if you need to make further changes. + +## How to Make a Great Pull Request + +We have a few tips for writing good PRs that are accepted into the main repo: + +- Use the Numpy Code style for all of your code. Find an example [here](hhttps://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_numpy.html#example-numpy). +- Your code should have (4) spaces instead of tabs. +- If needed, update the documentation. +- **Write tests** for new features! Good tests are 100%, absolutely necessary + for good code. We use the python `pytest` framework -- see some of the + other tests in this repo for examples, or review the [Hitchhiker's guide + to python](https://docs.python-guide.org/writing/tests) for some good + resources on writing good tests. +- Understand your contributions will fall under the same license as this repo. + +When you submit your PR, our CI service will automatically run your tests. +We welcome good discussion on the best ways to write your code, and the comments +on your PR are an excellent area for discussion. diff --git a/docs/about/changelog.md b/docs/about/changelog.md index 51c63b6ce5..3139cd42b7 100644 --- a/docs/about/changelog.md +++ b/docs/about/changelog.md @@ -1,117 +1,2 @@ -Change log -========== - -v0.0.7 ------- - -New features: - -- Include band-related features (e.g. band center, bandwidth, skewness, kurtosis) in - VASP schema ([@arosen93](https://github.com/arosen93), [#92](https://github.com/materialsproject/atomate2/pull/92)) -- Add `use_auto_ispin` and `update_user_potcar_functional` powerups - -Enhancements: - -- Add `is_hubbard` and `hubbards` to VASP task doc. -- Migrate build system to pyproject.toml. -- Migrate docs to jupyter-book. -- Docs improvements ([@janosh](https://github.com/janosh), [@mjwen](https://github.com/mjwen)) - -Bug fixes: - -- Fix HSE tags. -- Fix running bader. -- Make potcar_spec argument usable ([@jmmshn](https://github.com/jmmshn), [#83](https://github.com/materialsproject/atomate2/pull/83)) -- Replace monty which with shutil which ([@arosen93](https://github.com/arosen93), [#92](https://github.com/materialsproject/atomate2/pull/92)) -- Fix `calculate_deformation_potentials()` ([@janosh](https://github.com/janosh), [#94](https://github.com/materialsproject/atomate2/pull/94)) -- Fix gzipping of files with numerical suffixes ([@jmmshn](https://github.com/jmmshn), [#116](https://github.com/materialsproject/atomate2/pull/116)) - -v0.0.6 ------- - -New features: - -- cclib task document supporting virtually all popular molecular DFT codes out-of-the-box - ([@arosen93](https://github.com/arosen93), [#64](https://github.com/materialsproject/atomate2/pull/64)) - -Enhancements: - -- Add mag_density to VASP output doc ([@arosen93](https://github.com/arosen93), [#65](https://github.com/materialsproject/atomate2/pull/66)) -- Double relax maker now supports two different Makers ([@arosen93](https://github.com/arosen93), [#32](https://github.com/materialsproject/atomate2/pull/32)) - -Bug fixes: - -- Store band structure efermi in CalculationOutput ([@arosen93](https://github.com/arosen93), [#66](https://github.com/materialsproject/atomate2/pull/66)) -- Support for VASP6 and latest pymatgen ([@arosen93](https://github.com/arosen93), [#75](https://github.com/materialsproject/atomate2/pull/75)) -- Fixed atomate2 version string. -- Disabled orbital projections in the electron-phonon workflow. - -v0.0.5 ------- - -This version removed Python 3.7 support following numpy and pymatgen. - -New features: - -- Base schema for molecule task documents ([@arosen93](https://github.com/arosen93), [#54](https://github.com/materialsproject/atomate2/pull/54)) - -Bug fixes: - -- Fix VASP relaxation using custodian "FULL_OPT" ([@arosen93](https://github.com/arosen93), [#42](https://github.com/materialsproject/atomate2/pull/42)) -- Fix supercell generation and input sets in electron-phonon workflow. -- Fix `HSEBSSetGenerator` INCAR settings. -- Fix issue with magnetism in SOC structures. -- Fix bug with Fermi level and IBRION=1 -- Better handling of URI generation. -- Tweak k-spacing formula to stop large band gaps giving negative values - -v0.0.4 ------- - -Lots of improvements and bug fixes this release. - -New features: - -- AMSET workflow. -- Electron phonon band gap renormalisation workflow. -- Specific uniform and line mode band structure makers. -- Optics maker. -- Transmuter maker. - -Enhancements: - -- Support for automatic handling of ISPIN. -- Add MP base sets ([@arosen93](https://github.com/arosen93), [#27](https://github.com/materialsproject/atomate2/pull/27)) -- Docs updates ([@arosen93](https://github.com/arosen93), [#13](https://github.com/materialsproject/atomate2/pull/13) [#17](https://github.com/materialsproject/atomate2/pull/17)) -- Options to strip band structure and DOS projects to reduce object sizes. -- Input sets now use generators to avoid serialization issues. -- Use smart efermi finding to remove errors with tetrahedron integration in VASP 6. -- Powerups can now work on `Maker` objects directly. - -Bug fixes: - -- Use PBEsol by default. -- Increase number of significant figures when writing POSCAR files. -- Remove unused INCAR settings ([@arosen93](https://github.com/arosen93)) -- Add missing LASPH flags on vdW functionals ([@arosen93](https://github.com/arosen93), [#31](https://github.com/materialsproject/atomate2/pull/31)) -- Use `NSW=0` in static calculations ([@arosen93](https://github.com/arosen93), [#10](https://github.com/materialsproject/atomate2/pull/10)) -- `LREAL = False` in static jobs by default ([@arosen93](https://github.com/arosen93), [#23](https://github.com/materialsproject/atomate2/pull/23)) -- Add missing functionals in output schema ([@arosen93](https://github.com/arosen93), [#12](https://github.com/materialsproject/atomate2/pull/12)) -- Many output schema fixes. -- Better support for FireWorks. -- Support writing additional files in VASP jobs. - -v0.0.3 ------- - -Many updates to use the latest jobflow store features. - -v0.0.2 ------- - -Automated releases. - -v0.0.1 ------- - -Initial release. +```{include} ../../CHANGELOG.md +``` diff --git a/docs/about/contributing.md b/docs/about/contributing.md index 4d3aeb27a5..ef6daa82aa 100644 --- a/docs/about/contributing.md +++ b/docs/about/contributing.md @@ -1,68 +1,2 @@ -# Contributing to atomate2 - -We love your input! We want to make contributing to as easy and -transparent as possible, whether it's: - -- Reporting a bug -- Discussing the current state of the code -- Submitting a fix -- Proposing or implementing new features -- Becoming a maintainer - -## Reporting bugs, getting help, and discussion - -atomate2 is still in development, so at the moment we -do not have a dedicated help forum. For the time being, please -submit questions and bugs to the -[GitHub issues page](https://github.com/materialsproject/atomate2/issues). - -If you are making a bug report, incorporate as many elements of the -following as possible to ensure a timely response and avoid the -need for followups: - -- A quick summary and/or background. -- Steps to reproduce - be specific! **Provide sample code.** -- What you expected would happen, compared to what actually happens. -- The full stack trace of any errors you encounter. -- Notes (possibly including why you think this might be happening, - or steps you tried that didn't work). - -We love thorough bug reports as this means the development team can -make quick and meaningful fixes. When we confirm your bug report, -we'll move it to the GitHub issues where its progress can be -further tracked. - -## Contributing code modifications or additions through Github - -We use github to host code, to track issues and feature requests, -as well as accept pull requests. We maintain a list of all -contributors [here](https://materialsproject.github.io/atomate2/contributors.html). - -Pull requests are the best way to propose changes to the codebase. -Follow the [Github flow](https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow) -for more information on this procedure. - -The basic procedure for making a PR is: - -- Fork the repo and create your branch from master. -- Commit your improvements to your branch and push to your Github fork (repo). -- When you're finished, go to your fork and make a Pull Request. It will - automatically update if you need to make further changes. - -## How to Make a Great Pull Request - -We have a few tips for writing good PRs that are accepted into the main repo: - -- Use the Numpy Code style for all of your code. Find an example [here](hhttps://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_numpy.html#example-numpy). -- Your code should have (4) spaces instead of tabs. -- If needed, update the documentation. -- **Write tests** for new features! Good tests are 100%, absolutely necessary - for good code. We use the python `pytest` framework -- see some of the - other tests in this repo for examples, or review the [Hitchhiker's guide - to python](https://docs.python-guide.org/writing/tests) for some good - resources on writing good tests. -- Understand your contributions will fall under the same license as this repo. - -When you submit your PR, our CI service will automatically run your tests. -We welcome good discussion on the best ways to write your code, and the comments -on your PR are an excellent area for discussion. +```{include} ../../CONTRIBUTING.md +``` diff --git a/docs/index.md b/docs/index.md index bd0d8ab336..ed49cd9444 100644 --- a/docs/index.md +++ b/docs/index.md @@ -26,9 +26,9 @@ You've read the [user guide](user/index) but still need help? Ask questions on t support forum](https://matsci.org/c/atomate) --- -**[API reference](api/index)** 📖 +**[API reference](reference/index)** 📖 ^^^ -The [reference guide](api/index) contains a detailed description of the *atomate2* API. It +The [reference guide](reference/index) contains a detailed description of the *atomate2* API. It assumes that you have an understanding of the key concepts. --- diff --git a/pyproject.toml b/pyproject.toml index bd4dc46c1f..ce556a1489 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,7 +70,7 @@ atm = "atomate2.cli:cli" homepage = "https://materialsproject.github.io/atomate2/" repository = "https://github.com/hackingmaterials/atomate2" documentation = "https://materialsproject.github.io/atomate2/" -changelog = "https://github.com/hackingmaterials/atomate2/blob/main/docs/about/changelog.md" +changelog = "https://github.com/hackingmaterials/atomate2/blob/main/CHANGELOG.md" [tool.setuptools.package-data] atomate2 = ["py.typed"] diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index e69de29bb2..0000000000