Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
114 commits
Select commit Hold shift + click to select a range
c3f3348
Add support for (transparently) reading binary sparseX files. Also ex…
bernstei May 13, 2025
81cd1e0
Fix memory leak when initializing GAP by finalising parse_cur_data af…
bernstei Jul 18, 2023
b362d33
updated module versions for archer2 makefile
Aug 29, 2023
4381ad4
Update README.md
computerscienceiscool Jan 10, 2024
75c4989
Update System.f95
gabor1 Mar 20, 2024
1147a94
Update Dictionary.f95
gabor1 Mar 20, 2024
f368b8c
Update Dictionary.f95
gabor1 Mar 20, 2024
dd4438c
Update Makefile.archer2
gabor1 Apr 4, 2024
a4b0d62
Update python and cibuildwheel versions
ATM-Jahid Jul 1, 2024
4264fc2
Revert the dockerfile
ATM-Jahid Jul 1, 2024
3def35b
add upper version bound for f90wrap
jameskermode Jul 2, 2024
ad724c4
TST: update for recent ASE release I/O beahviour change
jameskermode Jul 2, 2024
30e4fc7
Lower f90wrap version upper bound
ATM-Jahid Jul 2, 2024
1e3a472
Do not use numpy 2
ATM-Jahid Jul 2, 2024
3c3f6e6
force -> forces property name
jameskermode Jul 2, 2024
49b198d
Omit manylinux2010 (EOL) from build-wheels
ATM-Jahid Jul 3, 2024
2008409
Make manylinux2014 the default in openblas_support
ATM-Jahid Jul 3, 2024
6205420
Update Dockerfile
ATM-Jahid Jul 3, 2024
256b89d
Change rdkit-pypi to rdkit in Dockerfile
ATM-Jahid Jul 4, 2024
7e45157
updating the version of GAP
sujona Jul 4, 2024
45b8f5d
MAINT: Fix return type errors from macros
HaoZeke Jul 18, 2024
efcad30
updating the version of GAP (#659)
albapa Jul 19, 2024
e2e46f0
Arch file for ARM MacOS with OpenMPI
stenczelt Aug 3, 2024
6c20bba
Added SphericalIterative() and GradSphericalIterative() to angular_fu…
lraybould Aug 15, 2024
eb6122a
update version bound on f90wrap.
jameskermode Aug 13, 2024
7dda7fb
removed test program
albapa Apr 9, 2025
b057d7b
remove references of F95
albapa Apr 9, 2025
c260a21
changed references of F95 to F90
albapa Apr 9, 2025
0cfb1cf
changed references of F95 to F90
albapa Apr 9, 2025
401a2eb
changed references of F95 to F90
albapa Apr 9, 2025
0b22764
renamed source files to have F90 extension
albapa Apr 9, 2025
5c83c03
renamed source files to have F90 extension
albapa Apr 9, 2025
9852203
renamed source files to have F90 extension
albapa Apr 9, 2025
4cb187d
renamed source files to have F90 extension
albapa Apr 9, 2025
8405c09
renamed source files to have F90 extension
albapa Apr 9, 2025
870cac4
renamed source files to have F90 extension
albapa Apr 9, 2025
a19733b
renamed source files to have F90 extension
albapa Apr 9, 2025
dd52014
renamed source files to have F90 extension
albapa Apr 9, 2025
dacd6f6
renamed source files to have F90 extension
albapa Apr 9, 2025
f9a5a7a
renamed source files to have F90 extension
albapa Apr 9, 2025
57bc236
renamed source files to have F90 extension
albapa Apr 9, 2025
df04550
renamed source files to have F90 extension
albapa Apr 9, 2025
ecc9cfb
changed references of F95 to F90
albapa Apr 9, 2025
ccf5e9d
remove references of F95
albapa Apr 9, 2025
812f0bf
changed references of F95 to F90
albapa Apr 9, 2025
080d4bf
changed references of F95 to F90
albapa Apr 9, 2025
14f7ac3
changed preprocessor directive to conventional __APPLE__
albapa Apr 9, 2025
d31a222
remove references of F95
albapa Apr 9, 2025
ea68453
added meson files
albapa Apr 9, 2025
35f1a38
added missing error files
albapa Apr 9, 2025
a606d35
temporarily change file (MacOS is NOT case sensitive)
albapa Apr 9, 2025
d2e3073
change files to F90 (MacOS is NOT case sensitive)
albapa Apr 9, 2025
9acda23
removed tmp file
albapa Apr 9, 2025
395fa64
sorted tmp files
albapa Apr 9, 2025
d2fbcde
sorted tmp files
albapa Apr 9, 2025
6f9605d
updating the version of GAP and fox
albapa Apr 23, 2025
46ef45a
Update cutil.c (#683)
green-br Apr 22, 2025
3195d40
Complete meson-python build system migration with test fixes
jameskermode Oct 4, 2025
e960f83
Modernize GitHub CI workflows for meson build system
jameskermode Oct 5, 2025
4519bdf
Update GAP submodule and relax gap_fit test tolerances
jameskermode Oct 5, 2025
908b0dd
Add f90wrap_stub.F90 to libAtoms build for standalone compilation
jameskermode Oct 5, 2025
eec6720
Fix Python version requirement to match CI test matrix
jameskermode Oct 5, 2025
3e0e1f0
Add comment about f90wrap dependency in pyproject.toml
jameskermode Oct 5, 2025
dc8deea
Update f90wrap dependency comment with latest fixes
jameskermode Oct 5, 2025
061f78a
Fix wheel build dependencies: openblas and gfortran
jameskermode Oct 5, 2025
b568087
Add debug output and fix paths for wheel build dependencies
jameskermode Oct 5, 2025
224e4de
Fix openblas and gfortran detection for wheel builds
jameskermode Oct 5, 2025
36caab3
Build QUIP libraries before building quippy wheel
jameskermode Oct 5, 2025
c822919
Fix CIBW_BEFORE_BUILD to build QUIP from correct directory
jameskermode Oct 5, 2025
564e776
Install f90wrap and build QUIP in CIBW_BEFORE_ALL
jameskermode Oct 5, 2025
c219407
CI working locally
jameskermode Oct 6, 2025
75bf869
Attempt to fix macosx CI builds
jameskermode Oct 20, 2025
2cff2b2
Link gfortran
jameskermode Oct 20, 2025
1358741
Fix CI workflows: update f90wrap repo and remove editable installs
jameskermode Oct 20, 2025
0f745a0
Fix macOS gfortran detection for f90wrap installation
jameskermode Oct 20, 2025
6c0c422
Skip Python 3.7 and 3.8 in wheel builds
jameskermode Oct 20, 2025
6048b7d
CI: WIP on wheel building
jameskermode Oct 21, 2025
f470fd3
do not include f90wap_stub in libAtoms build, since it shadows quippy…
jameskermode Oct 21, 2025
a46492f
Revert "do not include f90wap_stub in libAtoms build, since it shadow…
jameskermode Oct 21, 2025
a215fc0
Fix f90wrap_abort symbol conflict causing GAP/SOAP test failures
jameskermode Oct 21, 2025
763872f
Fix f90wrap_abort symbol conflict causing test failures
jameskermode Oct 21, 2025
582c9de
Fix NumPy 1.25+ deprecation warning in potential.py
jameskermode Oct 21, 2025
c2c8b93
Fix CI: Allow undefined f90wrap_abort in executables
jameskermode Oct 22, 2025
1832289
Fix symbol resolution issue by loading _quippy with RTLD_GLOBAL
jameskermode Oct 22, 2025
6a34def
Workaround for f90wrap overload resolution bug in convert.py
jameskermode Oct 23, 2025
9244b52
Fix f90wrap overload resolution by using fixed branch
jameskermode Oct 23, 2025
c5e0f5c
Update f90wrap to use fix-overload-resolution-order branch
jameskermode Oct 23, 2025
215a21a
Fix build-wheels CI failures on Linux and macOS
jameskermode Oct 23, 2025
65bcf29
Fix build-wheels path issue for QUIP root directory
jameskermode Oct 23, 2025
e7f79a6
Fix build-wheels CI failures on Linux and macOS
jameskermode Oct 23, 2025
16f5660
Fix build-wheels: Build QUIP natively before cibuildwheel
jameskermode Oct 23, 2025
f2fa1ca
Fix build-wheels: Build QUIP in containers with simple cd ..
jameskermode Oct 23, 2025
9113859
Fix build-wheels workflow by using CIBW_BEFORE_BUILD with script
jameskermode Oct 23, 2025
6183ea6
Fix CIBW_BEFORE_BUILD to use inline script instead of external file
jameskermode Oct 23, 2025
348b294
Build QUIP libraries before cibuildwheel and copy to quippy/
jameskermode Oct 23, 2025
9daf0f4
Fix openblas detection on macOS by setting PKG_CONFIG_PATH
jameskermode Oct 27, 2025
469d89f
skip enable_timing() because of name clash issue
jameskermode Oct 30, 2025
5efbd57
Revert "skip enable_timing() because of name clash issue"
jameskermode Oct 30, 2025
e5d6d57
Fix wheel building workflow to build QUIP in isolated environments
jameskermode Oct 31, 2025
4c321ae
Fix meson/ninja installation in cibuildwheel environments
jameskermode Oct 31, 2025
14115cf
Fix openblas libdir detection for system library fallback
jameskermode Oct 31, 2025
de61814
Add fallback to skip wheel repair on macOS if delocate fails
jameskermode Oct 31, 2025
8423436
Update .gitignore and README.md for meson build system
jameskermode Oct 31, 2025
a2ba453
prepare for GHA macos-13 deprecation
jameskermode Oct 31, 2025
74d3fa5
Fix f90wrap finalizer bug: _initialise -> _finalise
jameskermode Dec 9, 2025
dfc6e5e
Remove finalizer patch now fixed upstream in f90wrap
jameskermode Dec 9, 2025
ef62c1f
Reduce duplication and simplify meson build files
jameskermode Dec 15, 2025
febd02b
Fix f90wrap install instruction in CLAUDE.md
jameskermode Dec 15, 2025
2e039fa
Fix PyPI version override for tagged releases
jameskermode Dec 22, 2025
b56e6fd
Temporarily disable docs and docker builds
jameskermode Dec 22, 2025
5ed244c
Fix macOS wheel bundling by setting DYLD_LIBRARY_PATH for delocate (#…
jameskermode Dec 22, 2025
160eec1
Add NumPy 2.x support with conditional dependencies (#701)
jameskermode Jan 16, 2026
962d981
Fix missing CLI executables in quippy-ase wheel (#703) (#704)
jameskermode Jan 21, 2026
1537995
Get rid of libAtoms/lbfgs.f, now that it's supposed to be lbfgs.F (#708)
bernstei Jan 29, 2026
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
  •  
  •  
  •  
202 changes: 104 additions & 98 deletions .github/workflows/Build.yml
Original file line number Diff line number Diff line change
@@ -1,162 +1,168 @@
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: |
brew install gcc meson ninja openblas
# Create gfortran symlink since homebrew installs versioned binaries
for gfortran_bin in /opt/homebrew/bin/gfortran-* /usr/local/bin/gfortran-*; do
if [ -f "$gfortran_bin" ]; then
sudo ln -sf "$gfortran_bin" /usr/local/bin/gfortran
break
fi
done
gfortran --version

- name: Install Python dependencies
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
python -m pip install --upgrade pip
pip install numpy ase meson-python build
pip install 'f90wrap>=0.3.0'
env:
QUIP_ARCH: ${{ matrix.arch }}
HAVE_GAP: ${{ matrix.have_gap }}
HAVE_SCALAPACK: ${{ matrix.have_scalapack }}
FC: gfortran
CC: gcc

- name: Build QUIP libraries
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
meson setup builddir
meson compile -C builddir
env:
PKG_CONFIG_PATH: ${{ runner.os == 'macOS' && '/opt/homebrew/opt/openblas/lib/pkgconfig:/usr/local/opt/openblas/lib/pkgconfig' || '' }}

- name: Test QUIP
- name: Build and install quippy
run: |
cd quippy
pip install .
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: Run quippy tests
run: |
export QUIP_ROOT=$PWD
ulimit -n 256
make test
cd tests
python run_all.py
env:
BUILDDIR: ${{ github.workspace }}/builddir/src/Programs

# 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
# TEMPORARILY DISABLED - needs investigation
docs:
runs-on: ubuntu-latest
needs: build
if: github.ref == 'refs/heads/public'
if: false # 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 update -y
sudo apt-get install -y gfortran meson ninja-build \
libopenblas-dev pandoc

- name: Install Python 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
python -m pip install --upgrade pip
pip install sphinx sphinx-rtd-theme nbsphinx numpydoc \
pygments nbconvert ipython numpy ase meson-python

# 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: Build QUIP and quippy
run: |
meson setup builddir
meson compile -C builddir
cd quippy
pip install --no-build-isolation .

- 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

# Builds the QUIP docker image. This takes about 1h 20min
# this only happens ON the public branch, after pull requests
# are completed
# TEMPORARILY DISABLED - needs investigation
docker:
runs-on: ubuntu-latest
needs: build # depends on the previous matrix jobs to succeed
if: github.ref == 'refs/heads/public'
if: false # 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