diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 5ee1fd2..f38ca38 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -39,30 +39,16 @@ jobs: arch: x86_64 py-vers-full: cp39-* cp310-* cp311-* cp312-* cp313-* cp314-* py-vers-pr: cp313-* - before-all: MACOSX_DEPLOYMENT_TARGET=11 brew install --build-from-source boost zlib - extra-env: > - CC=clang - CXX=clang++ - MACOSX_DEPLOYMENT_TARGET=11 - SDKROOT=$(xcrun --sdk macosx --show-sdk-path) - CFLAGS="-mmacosx-version-min=11" - CXXFLAGS="-mmacosx-version-min=11" - LDFLAGS="-mmacosx-version-min=11" - mdt: 11 - - os: macos-15 + before-all: brew install boost zlib + extra-env: CC=clang CXX=clang++ + mdt: 15 + - os: macos-14 arch: arm64 py-vers-full: cp39-* cp310-* cp311-* cp312-* cp313-* cp314-* py-vers-pr: cp314-* - before-all: MACOSX_DEPLOYMENT_TARGET=11 brew install --build-from-source boost zlib - extra-env: > - CC=clang - CXX=clang++ - MACOSX_DEPLOYMENT_TARGET=11 - SDKROOT=$(xcrun --sdk macosx --show-sdk-path) - CFLAGS="-mmacosx-version-min=11" - CXXFLAGS="-mmacosx-version-min=11" - LDFLAGS="-mmacosx-version-min=11" - mdt: 11 + before-all: brew install boost zlib + extra-env: CC=clang CXX=clang++ + mdt: 14 env: CIBW_BUILD: ${{ github.event_name != 'pull_request' && matrix.py-vers-full || matrix.py-vers-pr }} diff --git a/CMakeLists.txt b/CMakeLists.txt index d3436d2..e0ad3c7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.15) message(STATUS "CMake version: ${CMAKE_VERSION}") -project(asmc LANGUAGES CXX VERSION 1.3.1) +project(asmc LANGUAGES CXX VERSION 1.4.0) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) diff --git a/COPYING b/COPYING index d38a567..eb53868 100644 --- a/COPYING +++ b/COPYING @@ -1,4 +1,4 @@ -Copyright (c) 2020, University of Oxford. +Copyright (c) 2025, University of Oxford. All rights reserved. University of Oxford means the Chancellor, Masters and Scholars of the diff --git a/PyPI_README.md b/PyPI_README.md index cafbde6..bca3814 100644 --- a/PyPI_README.md +++ b/PyPI_README.md @@ -8,7 +8,15 @@ # ASMC and FastSMC -This repository contains ASMC and an extension, FastSMC, together with python bindings for both. +This repository provides ASMC and its extension FastSMC, implemented in C++ with Python bindings. +Prebuilt CPython wheels are available for Linux (compatible with glibc ≥ 2.28) and macOS (built on macOS 15 for x86_64 and macOS 14 for arm64). + +| Platform \ CPython | ≤3.8 | 3.9 | 3.10 | 3.11 | 3.12 | 3.13 | 3.14 | +|-----------------------------| ---- | --- | ---- | ---- | ---- | ---- | ---- | +| Linux x86_64 | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| Linux aarch64 | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| macOS Intel (x86_64) | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| macOS Apple Silicon (arm64) | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ## Quickstart diff --git a/README.md b/README.md index fe79f94..c9497af 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ This should not have a substantial impact on most downstream analyses. ## For developers: making a release -- Bump the version number in [pyproject.toml]([pyproject.toml]), [CMakeLists.txt](CMakeLists.txt) and [conf.py](docs/conf.py) +- Bump the version number in [pyproject.toml](pyproject.toml), [CMakeLists.txt](CMakeLists.txt) and [conf.py](docs/conf.py) - Update [RELEASE_NOTES.md](RELEASE_NOTES.md) - Push changes and check that all [GitHub workflows](https://github.com/PalamaraLab/ASMC/actions) pass - Tag the commit in Git using syntax `vX.Y` diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 869c756..6adf437 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,5 +1,17 @@ # ASMC Release Notes +## v1.4.0 (2025-10-22) + +### Breaking changes + +- Dependencies are no longer managed with vcpkg. Boost and zlib should now be obtained from a system package manager, while other dependencies are fetched using CMake's FetchContent during configuration. + +### Other changes + +- Added support for cross-platform SIMD vectorization using the Google Highway library. This improves performance by dynamically dispatching to the most powerful supported instruction set at runtime (e.g., AVX-512, AVX2, or NEON), ensuring optimal performance on different CPU architectures. + +- Python wheels are now available for Linux and macOS on both x86_64 and arm64/AArch64 architectures, for CPython versions 3.9 to 3.14 inclusive. + ## v1.3.1 (2023-06-30) ### Breaking changes diff --git a/docs/conf.py b/docs/conf.py index 95cd5f8..569fbd5 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -18,9 +18,9 @@ # -- Project information ----------------------------------------------------- project = 'ASMC' -copyright = '2023, ASMC Developers' +copyright = '2025, ASMC Developers' author = 'ASMC Developers, https://palamaralab.github.io/software/asmc/' -release = 'v1.3.1' +release = 'v1.4.0' # -- General configuration --------------------------------------------------- diff --git a/pyproject.toml b/pyproject.toml index e880b1f..98ed6f1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ build-backend = "scikit_build_core.build" [project] dynamic = ["readme"] name = "asmc-asmc" -version = "1.3.1" +version = "1.4.0" description = "ASMC is a method to efficiently estimate pairwise coalescence time along the genome" authors = [ { name = "PalamaraLab (https://palamaralab.github.io/)" }