Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
c2b571c
Fix memory leak when initializing GAP by finalising parse_cur_data af…
bernstei Jul 18, 2023
b0e43eb
Merge pull request #606 from libAtoms/pot_init_mem_leak
jameskermode Jul 18, 2023
874d8ff
updated module versions for archer2 makefile
Aug 29, 2023
7e5cf94
Merge pull request #612 from JPDarby/public
jameskermode Aug 29, 2023
8cf8d13
Update README.md
computerscienceiscool Jan 10, 2024
33cdd69
Merge pull request #629 from computerscienceiscool/patch-1
jameskermode Jan 10, 2024
467ba0f
Update System.f95
gabor1 Mar 20, 2024
c0cee95
Update Dictionary.f95
gabor1 Mar 20, 2024
caff154
Update Dictionary.f95
gabor1 Mar 20, 2024
694dc9c
Update Makefile.archer2
gabor1 Apr 4, 2024
8d81f04
Update python and cibuildwheel versions
ATM-Jahid Jul 1, 2024
5b5e4c5
Revert the dockerfile
ATM-Jahid Jul 1, 2024
8331656
add upper version bound for f90wrap
jameskermode Jul 2, 2024
1d80ae4
Lower f90wrap version upper bound
ATM-Jahid Jul 2, 2024
e343625
Do not use numpy 2
ATM-Jahid Jul 2, 2024
5c7e5b0
TST: update for recent ASE release I/O beahviour change
jameskermode Jul 2, 2024
00d034b
Merge branch 'bump-py' of https://github.com/ATM-Jahid/QUIP into bump-py
jameskermode Jul 2, 2024
69c4f49
force -> forces property name
jameskermode Jul 2, 2024
8e99b0a
Merge pull request #649 from ATM-Jahid/bump-py
jameskermode Jul 2, 2024
620b9a4
Omit manylinux2010 (EOL) from build-wheels
ATM-Jahid Jul 3, 2024
ee3f4a8
Merge pull request #650 from ATM-Jahid/fix-whl
jameskermode Jul 3, 2024
ac6da85
Make manylinux2014 the default in openblas_support
ATM-Jahid Jul 3, 2024
f42b65d
Merge pull request #651 from ATM-Jahid/fix-whl
jameskermode Jul 3, 2024
ddc145a
Update Dockerfile
ATM-Jahid Jul 3, 2024
7c428af
Merge pull request #652 from ATM-Jahid/fix-whl
jameskermode Jul 4, 2024
e0a6ccb
updating the version of GAP
sujona Jul 4, 2024
d3563d3
Change rdkit-pypi to rdkit in Dockerfile
ATM-Jahid Jul 4, 2024
0e1d713
Merge pull request #654 from ATM-Jahid/fix-docker
jameskermode Jul 15, 2024
f7f1657
Merge pull request #653 from sujona/public
jameskermode Jul 15, 2024
c775953
MAINT: Fix return type errors from macros
HaoZeke Jul 18, 2024
4ee283f
Merge pull request #658 from HaoZeke/fixRetType
jameskermode Jul 18, 2024
b8f6920
updating the version of GAP (#659)
albapa Jul 19, 2024
df0ec03
Arch file for ARM MacOS with OpenMPI
stenczelt Aug 3, 2024
095307b
Merge pull request #661 from libAtoms/darwin-arm-openmpi-arch
jameskermode Aug 5, 2024
2b2a651
update version bound on f90wrap.
jameskermode Aug 13, 2024
42b9836
Added SphericalIterative() and GradSphericalIterative() to angular_fu…
lraybould Aug 15, 2024
61fbbd7
Merge pull request #663 from libAtoms/issue662
jameskermode Sep 27, 2024
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
a4523cb
Update cutil.c (#683)
green-br Apr 22, 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
934a602
Fix CI workflows: update f90wrap repo and remove editable installs
jameskermode Oct 20, 2025
5ca774f
Fix macOS gfortran detection for f90wrap installation
jameskermode Oct 20, 2025
adb192b
Skip Python 3.7 and 3.8 in wheel builds
jameskermode Oct 20, 2025
ae4d611
CI: WIP on wheel building
jameskermode Oct 21, 2025
c29af89
do not include f90wap_stub in libAtoms build, since it shadows quippy…
jameskermode Oct 21, 2025
dfc597e
Revert "do not include f90wap_stub in libAtoms build, since it shadow…
jameskermode Oct 21, 2025
26f9014
Fix f90wrap_abort symbol conflict causing GAP/SOAP test failures
jameskermode Oct 21, 2025
f081c54
Fix f90wrap_abort symbol conflict causing test failures
jameskermode Oct 21, 2025
2fb4e55
Fix NumPy 1.25+ deprecation warning in potential.py
jameskermode Oct 21, 2025
e51f78b
Fix CI: Allow undefined f90wrap_abort in executables
jameskermode Oct 22, 2025
ff994f9
Fix symbol resolution issue by loading _quippy with RTLD_GLOBAL
jameskermode Oct 22, 2025
a96d162
Workaround for f90wrap overload resolution bug in convert.py
jameskermode Oct 23, 2025
6e74fa9
Fix f90wrap overload resolution by using fixed branch
jameskermode Oct 23, 2025
d9e400a
Update f90wrap to use fix-overload-resolution-order branch
jameskermode Oct 23, 2025
c6d6fa3
Fix build-wheels CI failures on Linux and macOS
jameskermode Oct 23, 2025
7a5dd8c
Fix build-wheels path issue for QUIP root directory
jameskermode Oct 23, 2025
8a492b7
Fix build-wheels CI failures on Linux and macOS
jameskermode Oct 23, 2025
7d05020
Fix build-wheels: Build QUIP natively before cibuildwheel
jameskermode Oct 23, 2025
1a1a399
Fix build-wheels: Build QUIP in containers with simple cd ..
jameskermode Oct 23, 2025
435166d
Fix build-wheels workflow by using CIBW_BEFORE_BUILD with script
jameskermode Oct 23, 2025
cbc41bf
Fix CIBW_BEFORE_BUILD to use inline script instead of external file
jameskermode Oct 23, 2025
dbdad04
Build QUIP libraries before cibuildwheel and copy to quippy/
jameskermode Oct 23, 2025
dedad81
Fix openblas detection on macOS by setting PKG_CONFIG_PATH
jameskermode Oct 27, 2025
cf47be4
skip enable_timing() because of name clash issue
jameskermode Oct 30, 2025
195cf20
Revert "skip enable_timing() because of name clash issue"
jameskermode Oct 30, 2025
d68b029
Fix wheel building workflow to build QUIP in isolated environments
jameskermode Oct 31, 2025
02ee837
Fix meson/ninja installation in cibuildwheel environments
jameskermode Oct 31, 2025
9426f26
Fix openblas libdir detection for system library fallback
jameskermode Oct 31, 2025
5f203fb
Add fallback to skip wheel repair on macOS if delocate fails
jameskermode Oct 31, 2025
a0c546a
Update .gitignore and README.md for meson build system
jameskermode Oct 31, 2025
09b4b89
prepare for GHA macos-13 deprecation
jameskermode Oct 31, 2025
269d0f8
Fix f90wrap finalizer bug: _initialise -> _finalise
jameskermode Dec 9, 2025
2c75cf1
Remove finalizer patch now fixed upstream in f90wrap
jameskermode Dec 9, 2025
17531bf
Reduce duplication and simplify meson build files
jameskermode Dec 15, 2025
b5d1db3
Fix f90wrap install instruction in CLAUDE.md
jameskermode Dec 15, 2025
03b6ef3
Merge pull request #695 from libAtoms/mesonify
jameskermode Dec 22, 2025
d276b9d
Fix PyPI version override for tagged releases
jameskermode Dec 22, 2025
907a68a
Temporarily disable docs and docker builds
jameskermode Dec 22, 2025
e09d3eb
Merge pull request #697 from libAtoms/fix-pypi-version-override
jameskermode Dec 22, 2025
56af6c8
Fix macOS wheel bundling by setting DYLD_LIBRARY_PATH for delocate (#…
jameskermode Dec 22, 2025
669785f
Add NumPy 2.x support with conditional dependencies (#701)
jameskermode Jan 16, 2026
328a171
Fix missing CLI executables in quippy-ase wheel (#703) (#704)
jameskermode Jan 21, 2026
1dfd2fe
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