Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
55490f0
removed test program
albapa Apr 9, 2025
8a6cad4
remove references of F95
albapa Apr 9, 2025
52ad264
changed references of F95 to F90
albapa Apr 9, 2025
6cb56fa
changed references of F95 to F90
albapa Apr 9, 2025
78dcd4f
changed references of F95 to F90
albapa Apr 9, 2025
ac81021
renamed source files to have F90 extension
albapa Apr 9, 2025
18020c9
renamed source files to have F90 extension
albapa Apr 9, 2025
81ac49b
renamed source files to have F90 extension
albapa Apr 9, 2025
22b11db
renamed source files to have F90 extension
albapa Apr 9, 2025
200bf52
renamed source files to have F90 extension
albapa Apr 9, 2025
31d1e2d
renamed source files to have F90 extension
albapa Apr 9, 2025
40630e8
renamed source files to have F90 extension
albapa Apr 9, 2025
426c79f
renamed source files to have F90 extension
albapa Apr 9, 2025
15c24d4
renamed source files to have F90 extension
albapa Apr 9, 2025
b168025
renamed source files to have F90 extension
albapa Apr 9, 2025
94f713f
renamed source files to have F90 extension
albapa Apr 9, 2025
e6ad8f5
renamed source files to have F90 extension
albapa Apr 9, 2025
e8e2f01
changed references of F95 to F90
albapa Apr 9, 2025
4108d42
remove references of F95
albapa Apr 9, 2025
9e78969
changed references of F95 to F90
albapa Apr 9, 2025
c2148c9
changed references of F95 to F90
albapa Apr 9, 2025
df138a8
changed preprocessor directive to conventional __APPLE__
albapa Apr 9, 2025
0ec2cc9
remove references of F95
albapa Apr 9, 2025
af6f814
added meson files
albapa Apr 9, 2025
8850e17
added missing error files
albapa Apr 9, 2025
f7cf09e
temporarily change file (MacOS is NOT case sensitive)
albapa Apr 9, 2025
6e7bcd9
change files to F90 (MacOS is NOT case sensitive)
albapa Apr 9, 2025
f3387e0
removed tmp file
albapa Apr 9, 2025
c72cc76
sorted tmp files
albapa Apr 9, 2025
0a306c2
sorted tmp files
albapa Apr 9, 2025
d77b223
updating the version of GAP and fox
albapa Apr 23, 2025
fb515f3
Merge pull request #2 from libAtoms/public
albapa Apr 23, 2025
75ea9b0
Complete meson-python build system migration with test fixes
jameskermode Oct 4, 2025
14ba030
Modernize GitHub CI workflows for meson build system
jameskermode Oct 5, 2025
45a3014
Update GAP submodule and relax gap_fit test tolerances
jameskermode Oct 5, 2025
95a202b
Add f90wrap_stub.F90 to libAtoms build for standalone compilation
jameskermode Oct 5, 2025
fce4e57
Fix Python version requirement to match CI test matrix
jameskermode Oct 5, 2025
c6fe3a6
Add comment about f90wrap dependency in pyproject.toml
jameskermode Oct 5, 2025
dc69e13
Update f90wrap dependency comment with latest fixes
jameskermode Oct 5, 2025
b95face
Fix wheel build dependencies: openblas and gfortran
jameskermode Oct 5, 2025
27d92ca
Add debug output and fix paths for wheel build dependencies
jameskermode Oct 5, 2025
a579a9d
Fix openblas and gfortran detection for wheel builds
jameskermode Oct 5, 2025
f48673b
Build QUIP libraries before building quippy wheel
jameskermode Oct 5, 2025
7e1f60d
Fix CIBW_BEFORE_BUILD to build QUIP from correct directory
jameskermode Oct 5, 2025
f306838
Install f90wrap and build QUIP in CIBW_BEFORE_ALL
jameskermode Oct 5, 2025
d81a47a
CI working locally
jameskermode Oct 6, 2025
6174838
Attempt to fix macosx CI builds
jameskermode Oct 20, 2025
c0da420
Link gfortran
jameskermode Oct 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
185 changes: 88 additions & 97 deletions .github/workflows/Build.yml
Original file line number Diff line number Diff line change
@@ -1,139 +1,128 @@
name: Build

# Controls when the action will run.
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the public branch
push:
branches: [ public ]
branches: [ public, mesonify ]
pull_request:
branches: [ public ]
branches: [ public, mesonify ]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
# Build and test QUIP with meson
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
name: Build QUIP (${{ matrix.os }}, Python ${{ matrix.python-version }})
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
arch: [ linux_x86_64_gfortran, linux_x86_64_gfortran_openmp ]
gcc_version: [ 9 ]
have_gap: [ 0, 1 ]
have_scalapack: [ 0 ]
include:
- arch: linux_x86_64_gfortran_openmp
gcc_version: 10
have_gap: 1
have_scalapack: 0
- arch: linux_x86_64_gfortran_openmpi+openmp
gcc_version: 9
have_gap: 1
have_scalapack: 1

# Steps represent a sequence of tasks that will be executed as part of the job
os: [ubuntu-latest, macos-14] # macos-14 is native ARM64
python-version: ['3.9', '3.10', '3.11', '3.12']

steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Install dependencies
env:
QUIP_ARCH: ${{ matrix.arch }}
HAVE_GAP: ${{ matrix.have_gap }}
HAVE_SCALAPACK: ${{ matrix.have_scalapack }}
gcc_version: ${{ matrix.gcc_version }}
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install system dependencies (Linux)
if: runner.os == 'Linux'
run: |
sudo apt-get update -y
sudo apt-get install -y gfortran libblas-dev liblapack-dev \
openmpi-bin libopenmpi-dev netcdf-bin libnetcdf-dev libhdf5-serial-dev \
python3-numpy

if [[ "$HAVE_SCALAPACK" == 1 ]]; then
sudo apt-get install -y libscalapack-openmpi-dev
fi

if [[ "$gcc_version" == 10 ]]; then
# compilers explicitly pointing to gcc-10

export F77=gfortran-10
export F90=gfortran-10
export F95=gfortran-10
export CC=gcc-10
export CPLUSPLUS=g++-10
fi

# substitute for make config
- name: Include Config
env:
QUIP_ARCH: ${{ matrix.arch }}
HAVE_SCALAPACK: ${{ matrix.have_scalapack }}
sudo apt-get install -y gfortran meson ninja-build \
libopenblas-dev liblapack-dev \
libnetcdf-dev libhdf5-serial-dev

- name: Install system dependencies (macOS)
if: runner.os == 'macOS'
run: |
mkdir -p build/${QUIP_ARCH}

if [[ "$HAVE_SCALAPACK" == 1 ]]; then
cp -v .github/workflows/Makefile.openmpi+openmp.inc build/${QUIP_ARCH}/Makefile.inc
elif [[ "$gcc_version" == 10 ]]; then
cp -v .github/workflows/Makefile.gcc10.inc build/${QUIP_ARCH}/Makefile.inc
else
# gcc-9 is the default one in github actions containers (last checked: 2021 Aug)
cp -v .github/workflows/Makefile.inc build/${QUIP_ARCH}/Makefile.inc
fi

- name: Build QUIP
env:
QUIP_ARCH: ${{ matrix.arch }}
HAVE_GAP: ${{ matrix.have_gap }}
HAVE_SCALAPACK: ${{ matrix.have_scalapack }}
brew install gfortran meson ninja openblas
brew link gfortran

- name: Install Python dependencies
run: |
make
make libquip
make quippy
make install-quippy

# Uncomment to get SSH access for testing
# - name: Setup tmate session
# if: failure()
# uses: mxschmitt/action-tmate@v3
python -m pip install --upgrade pip
pip install numpy ase meson-python build

- name: Test QUIP
- name: Build QUIP libraries
run: |
meson setup builddir
meson compile -C builddir
env:
QUIP_ARCH: ${{ matrix.arch }}
HAVE_GAP: ${{ matrix.have_gap }}
HAVE_SCALAPACK: ${{ matrix.have_scalapack }}
PKG_CONFIG_PATH: ${{ runner.os == 'macOS' && '/opt/homebrew/opt/openblas/lib/pkgconfig:/usr/local/opt/openblas/lib/pkgconfig' || '' }}

- name: Build and install quippy
run: |
cd quippy
pip install .
env:
PKG_CONFIG_PATH: ${{ runner.os == 'macOS' && '/opt/homebrew/opt/openblas/lib/pkgconfig:/usr/local/opt/openblas/lib/pkgconfig' || '' }}

- name: Run quippy tests
run: |
export QUIP_ROOT=$PWD
ulimit -n 256
make test
cd tests
python run_all.py

# Builds the QUIP docs webpage image. This only happens ON the public
# Uncomment to get SSH access for testing
# - name: Setup tmate session
# if: failure()
# uses: mxschmitt/action-tmate@v3
# timeout-minutes: 15

# Builds the QUIP docs webpage image. This only happens ON the public
# branch, after tests pass and pull requests are completed
docs:
runs-on: ubuntu-latest
needs: build
if: github.ref == 'refs/heads/public'

steps:
- uses: actions/checkout@v3
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Build documentation
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install system dependencies
run: |
sudo apt-get install -y libgsl0-dev libxpm-dev pandoc
pip install sphinx sphinx-rtd-theme nbsphinx numpydoc pygments==2.5.2 nbconvert[execute] ipython
sudo apt-get update -y
sudo apt-get install -y gfortran meson ninja-build \
libopenblas-dev pandoc

# FIXME: currently we use the released version of quippy package to build docs,
# would be better to cache wheel from step above
pip install quippy-ase
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install sphinx sphinx-rtd-theme nbsphinx numpydoc \
pygments nbconvert ipython numpy ase meson-python

- name: Build QUIP and quippy
run: |
meson setup builddir
meson compile -C builddir
cd quippy
pip install --no-build-isolation -e .

- name: Build documentation
run: |
cd doc
python -m sphinx . _build/html

- name: Deploy documentation
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: doc/_build/html
Expand All @@ -147,16 +136,18 @@ jobs:
if: github.ref == 'refs/heads/public'

steps:
- uses: actions/checkout@v3
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Log in to Docker Hub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

# with dev tag for now
- name: Build quip
- name: Build and push QUIP Docker image
run: |
docker build --tag libatomsquip/quip:public docker
docker push libatomsquip/quip:public
48 changes: 0 additions & 48 deletions .github/workflows/Makefile.darwin_arm64_gfortran_openmp.inc

This file was deleted.

46 changes: 0 additions & 46 deletions .github/workflows/Makefile.darwin_x86_64_gfortran_openmp.inc

This file was deleted.

36 changes: 0 additions & 36 deletions .github/workflows/Makefile.gcc10.inc

This file was deleted.

Loading
Loading