diff --git a/.cirrus.yml b/.cirrus.yml index 50f8c61..6747318 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,6 +1,6 @@ build_and_store_wheels: &BUILD_AND_STORE_WHEELS install_cibuildwheel_script: - - python -m pip install cibuildwheel==2.17.0 + - python -m pip install cibuildwheel==2.19.2 run_cibuildwheel_script: - cibuildwheel wheels_artifacts: @@ -16,9 +16,13 @@ linux_aarch64_task: cpu: 4 memory: 4G env: - CIBW_ARCHS_LINUX: aarch64 + VENV_ROOT: ${HOME}/venv-cibuildwheel + PATH: ${VENV_ROOT}/bin:${PATH} install_pre_requirements_script: - - apt install -y python3-venv python-is-python3 + - add-apt-repository -y ppa:deadsnakes/ppa + - apt-get update + - apt-get install -y python3.12-venv + - python3.12 -m venv ${VENV_ROOT} <<: *BUILD_AND_STORE_WHEELS macos_arm64_task: @@ -26,7 +30,9 @@ macos_arm64_task: macos_instance: image: ghcr.io/cirruslabs/macos-sonoma-xcode env: - PATH: /opt/homebrew/opt/python@3.10/libexec/bin:$PATH + VENV_ROOT: ${HOME}/venv-cibuildwheel + PATH: ${VENV_ROOT}/bin:${PATH} install_pre_requirements_script: - - brew install python@3.10 + - brew install python@3.12 + - python3.12 -m venv ${VENV_ROOT} <<: *BUILD_AND_STORE_WHEELS diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 207db0f..5cb33ec 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -1,6 +1,10 @@ name: Build wheels -on: [push, pull_request] +on: + push: + pull_request: + schedule: + - cron: '0 12 * * 0' jobs: build_wheels_linux_x86_64: @@ -20,7 +24,7 @@ jobs: name: dist_linux path: ./wheelhouse/*.whl - build_wheels_macos_x86_64: + build_wheels_macos12_x86_64: name: Build x86_64 wheels on macos-12 runs-on: macos-12 @@ -34,7 +38,24 @@ jobs: - uses: actions/upload-artifact@v4 with: - name: dist_macos + name: dist_macos12_x86_64 + path: ./wheelhouse/*.whl + + build_wheels_macos14_arm64: + name: Build arm64 wheels on macos-14 + runs-on: macos-14 + + steps: + - uses: actions/checkout@v4 + + - name: Build wheels + uses: pypa/cibuildwheel@v2.19.2 + env: + CIBW_ARCHS_MACOS: arm64 + + - uses: actions/upload-artifact@v4 + with: + name: dist_macos14_arm64 path: ./wheelhouse/*.whl build_sdist: diff --git a/.github/workflows/test-linux-build.yml b/.github/workflows/test-linux-build.yml index 37d6ce4..176ad0f 100644 --- a/.github/workflows/test-linux-build.yml +++ b/.github/workflows/test-linux-build.yml @@ -1,6 +1,10 @@ name: Testing build on ubuntu-latest -on: [push, pull_request] +on: + push: + pull_request: + schedule: + - cron: '0 12 * * 0' env: SKBUILD_BUILD_OPTIONS: --verbose @@ -32,7 +36,7 @@ jobs: uses: actions/cache/restore@v4 with: path: CASMcode_global/dist - key: ${{ runner.os }}-libcasm-global-v2-0-4 + key: ${{ runner.os }}-libcasm-global-v2-0-5 ### libcasm-xtal ### - name: restore libcasm-xtal cache @@ -40,7 +44,7 @@ jobs: uses: actions/cache/restore@v4 with: path: CASMcode_crystallography/dist - key: ${{ runner.os }}-libcasm-xtal-v2-0a9 + key: ${{ runner.os }}-libcasm-xtal-v2-0a10 - name: Install CASM dependencies run: | diff --git a/.github/workflows/test-linux-cxx-only.yml b/.github/workflows/test-linux-cxx-only.yml index b42e60a..bfc4858 100644 --- a/.github/workflows/test-linux-cxx-only.yml +++ b/.github/workflows/test-linux-cxx-only.yml @@ -1,6 +1,10 @@ name: Testing c++ only on ubuntu-latest -on: [push, pull_request] +on: + push: + pull_request: + schedule: + - cron: '0 12 * * 0' env: SKBUILD_BUILD_OPTIONS: --verbose @@ -32,7 +36,7 @@ jobs: uses: actions/cache/restore@v4 with: path: CASMcode_global/dist - key: ${{ runner.os }}-libcasm-global-v2-0-4 + key: ${{ runner.os }}-libcasm-global-v2-0-5 ### libcasm-xtal ### - name: restore libcasm-xtal cache @@ -40,7 +44,7 @@ jobs: uses: actions/cache/restore@v4 with: path: CASMcode_crystallography/dist - key: ${{ runner.os }}-libcasm-xtal-v2-0a9 + key: ${{ runner.os }}-libcasm-xtal-v2-0a10 - name: Install CASM dependencies run: | diff --git a/.github/workflows/test-linux-dependencies.yml b/.github/workflows/test-linux-dependencies.yml index 1e9e585..f5892f0 100644 --- a/.github/workflows/test-linux-dependencies.yml +++ b/.github/workflows/test-linux-dependencies.yml @@ -24,7 +24,7 @@ jobs: uses: actions/cache/restore@v4 with: path: CASMcode_global/dist - key: ${{ runner.os }}-libcasm-global-v2-0-4 + key: ${{ runner.os }}-libcasm-global-v2-0-5 - name: checkout libcasm-global if: steps.cache-libcasm-global-restore.outputs.cache-hit != 'true' @@ -32,7 +32,7 @@ jobs: with: repository: prisms-center/CASMcode_global path: CASMcode_global - ref: v2.0.4 + ref: v2.0.5 - name: make global if: steps.cache-libcasm-global-restore.outputs.cache-hit != 'true' @@ -58,7 +58,7 @@ jobs: uses: actions/cache/restore@v4 with: path: CASMcode_crystallography/dist - key: ${{ runner.os }}-libcasm-xtal-v2-0a9 + key: ${{ runner.os }}-libcasm-xtal-v2-0a10 - name: checkout libcasm-xtal if: steps.cache-libcasm-xtal-restore.outputs.cache-hit != 'true' @@ -66,7 +66,7 @@ jobs: with: repository: prisms-center/CASMcode_crystallography path: CASMcode_crystallography - ref: v2.0a9 + ref: v2.0a10 - name: make xtal if: steps.cache-libcasm-xtal-restore.outputs.cache-hit != 'true' diff --git a/.github/workflows/test-linux.yml b/.github/workflows/test-linux.yml index 8597891..77218a9 100644 --- a/.github/workflows/test-linux.yml +++ b/.github/workflows/test-linux.yml @@ -1,6 +1,10 @@ name: Testing on ubuntu-latest -on: [push, pull_request] +on: + push: + pull_request: + schedule: + - cron: '0 12 * * 0' env: SKBUILD_BUILD_OPTIONS: --verbose @@ -32,7 +36,7 @@ jobs: uses: actions/cache/restore@v4 with: path: CASMcode_global/dist - key: ${{ runner.os }}-libcasm-global-v2-0-4 + key: ${{ runner.os }}-libcasm-global-v2-0-5 ### libcasm-xtal ### - name: restore libcasm-xtal cache @@ -40,7 +44,7 @@ jobs: uses: actions/cache/restore@v4 with: path: CASMcode_crystallography/dist - key: ${{ runner.os }}-libcasm-xtal-v2-0a9 + key: ${{ runner.os }}-libcasm-xtal-v2-0a10 - name: Install CASM dependencies run: | diff --git a/.github/workflows/test-macos-build.yml b/.github/workflows/test-macos-build.yml index 192b3d9..5da6d4a 100644 --- a/.github/workflows/test-macos-build.yml +++ b/.github/workflows/test-macos-build.yml @@ -1,6 +1,10 @@ name: Testing build on macos-latest -on: [push, pull_request] +on: + push: + pull_request: + schedule: + - cron: '0 12 * * 0' jobs: build: diff --git a/.github/workflows/test-macos.yml b/.github/workflows/test-macos.yml index 804ac9e..8e04b56 100644 --- a/.github/workflows/test-macos.yml +++ b/.github/workflows/test-macos.yml @@ -1,6 +1,10 @@ name: Testing on macos-latest -on: [push, pull_request] +on: + push: + pull_request: + schedule: + - cron: '0 12 * * 0' jobs: build: diff --git a/CHANGELOG.md b/CHANGELOG.md index 842a962..5973be9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to `libcasm-mapping` will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [v2.0a4] - 2024-07-12 ### Added @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Changed default `atom_cost_f` for libcasm.mapping.mapsearch.MappingSearch to IsotropicAtomCost. - Changed MappingSearch node insertion so that nodes are only added to the queue if the total cost is less than or equal to the current max_cost instead of always. +- Wheels compiled with numpy>=2.0.0 ### Fixed diff --git a/build_requirements.txt b/build_requirements.txt index 7ca123d..f7b8c24 100644 --- a/build_requirements.txt +++ b/build_requirements.txt @@ -4,5 +4,5 @@ scikit-build cmake>=3.20 ninja pybind11>=2.6 -libcasm-global>=2.0.4 -libcasm-xtal>=2.0a9 +libcasm-global>=2.0.5 +libcasm-xtal>=2.0a10 diff --git a/pyproject.toml b/pyproject.toml index d2312aa..7d331cb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,14 +6,14 @@ requires = [ "cmake>=3.20", "ninja", "pybind11>=2.6", - "libcasm-global>=2.0.4", - "libcasm-xtal>=2.0a9", + "libcasm-global>=2.0.5", + "libcasm-xtal>=2.0a10", ] build-backend = "setuptools.build_meta" [project] name = "libcasm-mapping" -version = "2.0a3" +version = "2.0a4" authors = [ { name="CASM developers", email="casm-developers@lists.engr.ucsb.edu" }, ] @@ -29,8 +29,8 @@ classifiers = [ "Topic :: Scientific/Engineering", ] dependencies = [ - "libcasm-global>=2.0.4", - "libcasm-xtal>=2.0a9", + "libcasm-global>=2.0.5", + "libcasm-xtal>=2.0a10", "numpy", ] @@ -39,13 +39,13 @@ Homepage = "https://prisms-center.github.io/CASMcode_docs/" Repository = "https://github.com/prisms-center/CASMcode_mapping" -[tool.ruff] -select = ["E", "F", "I"] +[tool.ruff.lint] +select = ["NPY201", "E", "F", "I"] -[tool.ruff.per-file-ignores] +[tool.ruff.lint.per-file-ignores] "__init__.py" = ["F401"] -[tool.ruff.isort] +[tool.ruff.lint.isort] known-first-party = ["libcasm", "casm"] diff --git a/python/doc/conf.py b/python/doc/conf.py index f513ebc..8035ddf 100644 --- a/python/doc/conf.py +++ b/python/doc/conf.py @@ -3,14 +3,13 @@ # -- package specific configuration -- project = "libcasm-mapping" version = "2.0" # The short X.Y version. -release = "2.0a3" # The full version, including alpha/beta/rc tags. +release = "2.0a4" # The full version, including alpha/beta/rc tags. project_desc = "CASM structure mapping" logo_text = "libcasm-mapping" github_url = "https://github.com/prisms-center/CASMcode_mapping/" pypi_url = "https://pypi.org/project/libcasm-mapping/" intersphinx_libcasm_packages = [("global", "2.0"), ("xtal", "2.0")] - # -- CASM common configuration --- # -*- coding: utf-8 -*- @@ -62,7 +61,6 @@ print(intersphinx_mapping) - # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. diff --git a/python/pyproject.toml b/python/pyproject.toml index 84b6b7e..07f1ca5 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -4,7 +4,7 @@ requires = [ "setuptools", "wheel", "pybind11>=2.8.0", - "libcasm-global>=2.0.4", - "libcasm-xtal>=2.0a9", + "libcasm-global>=2.0.5", + "libcasm-xtal>=2.0a10", ] build-backend = "setuptools.build_meta" diff --git a/python/setup.py b/python/setup.py index 9cfd3f6..f108c79 100644 --- a/python/setup.py +++ b/python/setup.py @@ -1,6 +1,6 @@ import os -__version__ = "2.0a3" +__version__ = "2.0a4" # Available at setup time due to pyproject.toml from pybind11.setup_helpers import Pybind11Extension, build_ext @@ -37,7 +37,6 @@ "-lcasm_mapping", ] - # The main interface is through Pybind11Extension. # * You can add cxx_std=11/14/17, and then build_ext can be removed. # * You can set include_pybind11=false to add the include directory yourself, @@ -82,7 +81,6 @@ ), ] - setup( name="libcasm-mapping", version=__version__, diff --git a/setup.py b/setup.py index 94b44f9..97abfe5 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setup( name="libcasm-mapping", - version="2.0a3", + version="2.0a4", packages=[ "libcasm", "libcasm.mapping",