Skip to content

Commit

Permalink
Merge remote-tracking branch 'remotes/trunk/develop' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
gmatteo committed Nov 20, 2024
2 parents 39e1321 + c130d73 commit 826bd67
Show file tree
Hide file tree
Showing 646 changed files with 286,088 additions and 36,632 deletions.
41 changes: 0 additions & 41 deletions .github/workflows/abipy-lint.yml

This file was deleted.

88 changes: 88 additions & 0 deletions .github/workflows/gh-pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Deploy documentation with GitHub Pages dependencies preinstalled

on:
push:
branches: ["develop"]
workflow_dispatch: # enable manual workflow execution

# Set permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
# prevent this action from running on forks
if: github.repository == 'abinit/abipy'
defaults:
run:
shell: bash -l {0} # enables conda/mamba env activation by reading bash profile

strategy:
fail-fast: false
matrix:
config:
- os: ubuntu-latest
python: '3.11'

runs-on: ubuntu-latest
env:
PMG_MAPI_KEY: ${{ secrets.PMG_MAPI_KEY }}
# This is used in the flow scripts to generate the graph with graphviz.
READTHEDOCS: 1

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

- name: Setup Pages
uses: actions/configure-pages@v3

- name: Set up Miniconda
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true

- name: Installing abinit from conda-forge and abipy with python=${{ matrix.config.python }}
run: |
conda create -n abipy python=${{ matrix.config.python }} --yes
conda activate abipy
conda install abinit -c conda-forge --yes
mpirun -n 1 abinit --version
mpirun -n 1 abinit --build
pip install --editable .
mkdir -p $HOME/.abinit/abipy/
cp abipy/data/managers/gh_manager.yml $HOME/.abinit/abipy/manager.yml
cp abipy/data/managers/gh_scheduler.yml $HOME/.abinit/abipy/scheduler.yml
# FIXME TEMPORARY HACK
#pip install git+https://github.com/gmatteo/pymatgen.git@master -U
- name: Build docs with Sphinx
run: |
conda activate abipy
cd docs
source install.sh
make
- name: Upload artifact
uses: actions/upload-pages-artifact@v2
with:
path: docs/_build/html/ # Important. Set to the website output dir

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v3
72 changes: 72 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Run the Abipy test suite.

on:
push:
branches: [develop, master]
paths-ignore: ["**/*.md", docs/**]
pull_request:
branches: [develop]
paths-ignore: ["**/*.md", docs/**]
workflow_dispatch:
workflow_call: # make this workflow reusable by release.yml

permissions:
contents: read

jobs:
test:
# prevent this action from running on forks
if: github.repository == 'abinit/abipy'
defaults:
run:
shell: bash -l {0} # enables conda/mamba env activation by reading bash profile

strategy:
fail-fast: false
matrix:
config:
- os: ubuntu-latest
python: "3.11"
- os: ubuntu-latest
python: "3.12"

runs-on: ${{ matrix.config.os }}

env:
PMG_MAPI_KEY: ${{ secrets.PMG_MAPI_KEY }}

steps:
- name: Checkout Abipy repo
uses: actions/checkout@v4

- name: Set up Miniconda
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true

- name: Installing abinit from conda-forge and abipy with python=${{ matrix.config.python }}
run: |
conda create -n abipy python=${{ matrix.config.python }} --yes
conda activate abipy
conda install abinit -c conda-forge --yes
mpirun -n 1 abinit --version
mpirun -n 1 abinit --build
pip install -r requirements.txt
pip install -r requirements-optional.txt
pip install -r requirements-panel.txt
pip install --editable .
mkdir -p $HOME/.abinit/abipy/
cp abipy/data/managers/gh_manager.yml $HOME/.abinit/abipy/manager.yml
cp abipy/data/managers/gh_scheduler.yml $HOME/.abinit/abipy/scheduler.yml
- name: pytest
run: |
conda activate abipy
pip install -r requirements-tests.txt
pytest -v .
- name: integration_tests
run: |
conda activate abipy
abicheck.py --with-flow
pytest -v abipy/integration_tests
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ docs/flow_gallery
# Pycharm
.idea/

# VSC
.vscode/

# vim files
*.swp
*.swo
Expand Down
23 changes: 13 additions & 10 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,16 @@ language: python

env:
global:
- ABINIT_VERSION=8.10.1
- ABINIT_VERSION=9.0.4
- ABIPY_PYTEST=yes
- ABIPY_SPHINX=no
- ABIPY_INSTALLER=pip
- ABIPY_COVERALLS=no
- OPENBLAS_NUM_THREADS=1
- OMP_NUM_THREADS=1

matrix:
include:
- os: linux
python: 3.6
env:
- ABIPY_INSTALLER=pip ABIPY_PYTEST=no
- os: linux
python: 3.7
dist: xenial
Expand All @@ -25,10 +24,15 @@ matrix:
sudo: true
env:
- ABIPY_INSTALLER=conda ABIPY_SPHINX=yes
#- os: linux
# python: 3.8
# env:
# - ABIPY_INSTALLER=conda ABIPY_PYTEST=no
- os: linux
python: 3.8
env:
- ABIPY_INSTALLER=conda ABIPY_PYTEST=no
- os: linux
python: 3.9
env:
- ABIPY_INSTALLER=pip ABIPY_SPHINX=yes ABIPY_COVERALLS=yes


install:
#- set -ev # exit on first error, print each command
Expand All @@ -55,7 +59,6 @@ install:
conda uninstall -y pymatgen
fi
- if [[ "${TRAVIS_PYTHON_VERSION}" == "2.7" ]]; then conda install mock; fi
- pip install coverage>=4.4 -U --upgrade-strategy=eager

# Mayavi (optional requirement)
Expand Down
76 changes: 74 additions & 2 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,76 @@
Release 0.8.0: xxxx-xx-xx
Release 0.9.8:

* Support for python 3.12, scipy 1.14 and numpy 2.0
* Compatibility with pymatgen v2024.9.10
* Abipy can now read magmoms from the GSR file
* Workflows and post-processing tools for photoluminescence calculations.
* Additional tools for post-processing E-PH calculations.

Release 0.9.6:

* Version compatible with aiida-common-workflows.

Release 0.9.5:

* Force make_dte_inputs to consider the psp to be in LDA
* Fix ngfft issue when going to DTE
* Force DTE to overwrite nband and nbdbuf to number of VBs and 0 respectively

Release 0.9.4:

* pymatgen == 2023.7.17 is highly recommended.

Release 0.9.3:

* Require pymatgen >= 2023.3.23
* Add ``ndivsm`` argument to PhononWork and EffMassLineWork to activate band
structure computation along k-path.
* Add new option to TaskManager (`limits_for_task_class`) to specify custom limits
depending on the name of the task class. See `abidoc.py manager` for syntax
* Deprecate `single` and `rapid` commands of abirun.py.


Release 0.9.2:

* Require pymatgen >= 2022.0.14
* Add abiview.py ifermi_fs
* G0W0WithQptdmFlow is deprecated and will be removed in v 0.9.3
* Add abigui.py script
* Add abilab.abirobot function to create a Robot from a list of filepaths.
* Add plotly version of fatbands
* Support for dipquad and quadquad

Release 0.9.1:

* Add "-ew", "--expose-web",
* abiopen, abiview and abicomp now supports --plotly to produce plotly figures in the local browser
and --chart-studio to push the figure to the chart studio service.
Note that, at present, only DDB files support plotly.
* AbinitInput set_kpath and make_ebands_input now support negative values of ndivsm that
are interpreted as line_density following pymatgen conventions.
This option is the recommended one if the k-path contains two consecutive high symmetry k-points
that are very close as ndivsm > 0 may produce a very large number of wavevectors.
* Preliminary support for plotly plots (phonons).
* AbinitInputParser now can parse strings in the input file and read structure is the `structure:abivars`
syntax in used.

Release 0.9.0:

* Require pymatgen >= 2019.12.22
* Integration with abinit 9.4.0
* Support for py3.8 and py3.9
* Converters for phonopy and tdep.
* Preliminary support for panel dashboards.
* Introduce ABIPY_TMPDIR environment variable to specify the workdir of the temporary tasks at runtime.
* Use last version of apscheduler.
* Minor bug fixes
* New tools for Phonon and EPH calculations.
* Note that this is the last AbiPy version supporting Abinit8.
AbiPy version 1.0 will start to take advantage of features and ameliorations introduced in Abinit9
We will also take the opportunity to refactor the code base so backward incompatibe changes in the API
are expected in the next major version.

Release 0.8.0:

* Add abicheck.py --create-config option to install predefined yaml configuration files
* Add support for NSCF calculations with meta-GGA.
Expand Down Expand Up @@ -38,7 +110,7 @@ Release:0.3.0 2017-12-26
and ``flow-gallery`` with AbiPy flows are now automatically generated.
* Add Shankland-Koelling-Wood Fourier interpolation scheme.

Release 0.2.0 <2017-03-10>
Release 0.2.0 2017-03-10

This is the first official release in which we have reached a relatively stable API
and a well-defined interface with the netcdf files produced by Abinit.
Expand Down
Loading

0 comments on commit 826bd67

Please sign in to comment.