From c375652731a912b47ea634af09ace286cbe1a490 Mon Sep 17 00:00:00 2001 From: Anthony Onwuli Date: Mon, 2 Dec 2024 12:37:10 -0500 Subject: [PATCH 1/5] Bump version number to 3.0 --- docs/conf.py | 4 ++-- pyproject.toml | 2 +- setup.py | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 31ddd512..39382b8d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -71,9 +71,9 @@ # built documents. # # The short X.Y version. -version = "2.8" +version = "3.0" # The full version, including alpha/beta/rc tags. -release = "2.8.0" +release = "3.0.0" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/pyproject.toml b/pyproject.toml index 418324c9..13d79126 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "SMACT" -version = "2.8" +version = "3.0" description = "Semiconducting Materials by Analogy and Chemical Theory" readme = "README.md" authors = [ diff --git a/setup.py b/setup.py index fb98918c..89de27e5 100755 --- a/setup.py +++ b/setup.py @@ -7,10 +7,10 @@ __author__ = "The SMACT Developers" __author_email__ = "a.walsh@imperial.ac.uk" __copyright__ = "Copyright Daniel W. Davies, Adam J. Jackson, Keith T. Butler (2019)" -__version__ = "2.8" +__version__ = "3.0" __maintainer__ = "Anthony O. Onwuli" __maintainer_email__ = "anthony.onwuli16@imperial.ac.uk" -__date__ = "September 26 2024" +__date__ = "December 2 2024" import os From 3848780d61534b22bfa1d6bbea2fdd12489212cb Mon Sep 17 00:00:00 2001 From: Anthony Onwuli Date: Mon, 2 Dec 2024 12:52:22 -0500 Subject: [PATCH 2/5] Update links in the README --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 496c4d1b..d27d89e4 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ There is a strong demand for functional materials across a wide range of technol Features are accessed through Python scripts, importing classes and functions as needed. The best place to start is looking at [the docs](https://smact.readthedocs.io/en/latest/), which highlight some simple examples of how these classes and functions can be usede -Use cases are available in our [examples](https://github.com/WMD-group/SMACT/tree/master/examples) and [tutorials](https://github.com/WMD-group/SMACT/tree/master/tutorials) folders. +Use cases are available in our [examples](https://smact.readthedocs.io/en/latest/examples.html) and [tutorials](https://smact.readthedocs.io/en/latest/tutorials.html) folders. ## Code features @@ -41,7 +41,7 @@ Use cases are available in our [examples](https://github.com/WMD-group/SMACT/tre - Oxidation states that are accessible to each element are included in their properties. -- Element compositions can be screened through based on the heuristic filters of charge neutrality and electronegativity order. This is handled using the [screening module](https://smact.readthedocs.io/en/latest/smact.screening.html) and [this publication]() describes the underlying theory. An example procedure is [outlined in the docs](https://smact.readthedocs.io/en/latest/examples.html#neutral-combinations) and more examples can be found in the [counting examples subfolder](https://github.com/WMD-group/SMACT/tree/master/examples/Counting). +- Element compositions can be screened through based on the heuristic filters of charge neutrality and electronegativity order. This is handled using the [screening module](https://smact.readthedocs.io/en/latest/smact.screening.html) and [this publication]() describes the underlying theory. An example procedure is [outlined in the docs](https://smact.readthedocs.io/en/latest/examples/filter.html). - Further filters can be applied to generated lists of compositions in order to screen for particular properties. These properties are either intrinsic properties of elements or are calculated for compositions using the [properties module](https://smact.readthedocs.io/en/latest/smact.properties.html). For example: @@ -50,7 +50,7 @@ Use cases are available in our [examples](https://github.com/WMD-group/SMACT/tre - Compositions can also be filtered based on sustainability via the abundance of elements in the Earth's crust or via the [HHI scale](https://pubs.acs.org/doi/10.1021/cm400893e). -- Compositions can be converted for use in Pymatgen or for representation to machine learning algorithms ([see "next steps" in this example](https://github.com/WMD-group/SMACT/blob/master/examples/Counting/Generate_compositions_lists.ipynb)) and the related [ElementEmbeddings](https://github.com/WMD-group/ElementEmbeddings) package. +- Compositions can be converted for use in Pymatgen or for representation to machine learning algorithms ([see this example](https://smact.readthedocs.io/en/latest/tutorials/smact_generation_of_solar_oxides.html)) and the related [ElementEmbeddings](https://github.com/WMD-group/ElementEmbeddings) package. - The code also has tools for manipulating common crystal lattice types: - Certain structure types can be built using the [builder module](https://smact.readthedocs.io/en/latest/smact.builder.html) @@ -77,6 +77,8 @@ Use cases are available in our [examples](https://github.com/WMD-group/SMACT/tre - **oxidation_states.py**: Used for predicting the likelihood of species coexisting in a compound based on a statistical model. - **structure_prediction**: A submodule which contains a collection of tools for facilitating crystal structure predictions via ionic substitutions - **dopant_prediction**: A submodule which contains a collections of tools for predicting dopants. + - **utils.py** A collection of utility functions used throughout the codebase. + ## Requirements @@ -90,6 +92,10 @@ The latest stable release can be installed via pip which will automatically set pip install smact +Optional dependencies can also be installed. These enable full replication of the examples and tutorials + + pip install "smact[optional]" + SMACT is also available via conda through the conda-forge channel on Anaconda Cloud: conda install -c conda-forge smact From 5e77193e3e4eedbc6c707c0edf0b023d1468de76 Mon Sep 17 00:00:00 2001 From: Anthony Onwuli Date: Mon, 2 Dec 2024 12:52:31 -0500 Subject: [PATCH 3/5] Update contributing guide --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3c620271..b2496191 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -35,7 +35,7 @@ Recommended reading: [How to Write the Perfect Pull Request](https://github.blog When developing locally, it is recommended to install the python packages in `requirements-dev.txt`. ```bash -pip install -r requirements-dev.txt +pip install -e ".[dev,docs]" ``` This will allow you to run the tests locally with pytest as described in the main README, From 0594cc49dc34d3b86f4fb8a1d1d66ddb7c0fdaff Mon Sep 17 00:00:00 2001 From: Anthony Onwuli Date: Mon, 2 Dec 2024 12:52:43 -0500 Subject: [PATCH 4/5] Add new workflow to check links in Markdown --- .github/workflows/check-live-links.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .github/workflows/check-live-links.yml diff --git a/.github/workflows/check-live-links.yml b/.github/workflows/check-live-links.yml new file mode 100644 index 00000000..e82f6f34 --- /dev/null +++ b/.github/workflows/check-live-links.yml @@ -0,0 +1,16 @@ +name: Check Markdown links + +on: + push: + branches: + - master + schedule: + # Every Monday at 00:00 UTC + - cron: "0 0 * * 1" + +jobs: + markdown-link-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - uses: gaurav-nelson/github-action-markdown-link-check@v1 \ No newline at end of file From 9fa4e5649445985bdb2c5cd76f75261fc6890855 Mon Sep 17 00:00:00 2001 From: Anthony Onwuli Date: Mon, 2 Dec 2024 12:58:26 -0500 Subject: [PATCH 5/5] Run pre-commit --- .github/workflows/check-live-links.yml | 18 +++++++++--------- README.md | 1 - 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/workflows/check-live-links.yml b/.github/workflows/check-live-links.yml index e82f6f34..2e210ad2 100644 --- a/.github/workflows/check-live-links.yml +++ b/.github/workflows/check-live-links.yml @@ -1,16 +1,16 @@ name: Check Markdown links -on: - push: - branches: - - master - schedule: - # Every Monday at 00:00 UTC - - cron: "0 0 * * 1" +on: + push: + branches: + - master + schedule: + # Every Monday at 00:00 UTC + - cron: "0 0 * * 1" jobs: markdown-link-check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@master - - uses: gaurav-nelson/github-action-markdown-link-check@v1 \ No newline at end of file + - uses: actions/checkout@master + - uses: gaurav-nelson/github-action-markdown-link-check@v1 diff --git a/README.md b/README.md index d27d89e4..45971949 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,6 @@ Use cases are available in our [examples](https://smact.readthedocs.io/en/latest - **structure_prediction**: A submodule which contains a collection of tools for facilitating crystal structure predictions via ionic substitutions - **dopant_prediction**: A submodule which contains a collections of tools for predicting dopants. - **utils.py** A collection of utility functions used throughout the codebase. - ## Requirements