diff --git a/.github/actions/python-tests/action.yaml b/.github/actions/python-tests/action.yaml index 3ed745d6..56faced9 100644 --- a/.github/actions/python-tests/action.yaml +++ b/.github/actions/python-tests/action.yaml @@ -4,13 +4,16 @@ inputs: shell: required: true description: Which shell to use for the `run` command + python-version: + required: true + description: Python version to test runs: using: composite steps: - uses: actions/setup-python@v5 with: - python-version: "3.13" + python-version: ${{ inputs.python-version }} - name: Get latest CMake uses: lukka/get-cmake@latest - name: Install Python dependencies diff --git a/.github/workflows/assets.yaml b/.github/workflows/assets.yaml index 1412ef01..515031a2 100644 --- a/.github/workflows/assets.yaml +++ b/.github/workflows/assets.yaml @@ -31,11 +31,12 @@ jobs: - uses: actions/setup-python@v5 - name: Install cibuildwheel run: | - python -m pip install cibuildwheel==2.23.3 + python -m pip install cibuildwheel==4.3.0 - name: Build wheels run: | python -m cibuildwheel --output-dir wheelhouse env: + CIBW_BUILD: "cp310-* cp311-* cp312-* cp313-* cp314-*" CIBW_ENVIRONMENT_LINUX: LIBQASM_CONAN_BUILD_PATTERNS="m4/* bison/* flex/*" CIBW_BEFORE_ALL_LINUX: ${{ (matrix.os == 'ubuntu-24.04-arm') && 'yum install -y --disablerepo=epel java-11-openjdk' || ':' }} - uses: actions/upload-artifact@v4 diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 766c00f3..1068dcb4 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -186,6 +186,10 @@ jobs: python-linux-x64: name: "Python tests (Linux/x64)" runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - name: Checkout uses: actions/checkout@v4 @@ -196,10 +200,15 @@ jobs: - uses: ./.github/actions/python-tests with: shell: bash + python-version: ${{ matrix.python-version }} python-linux-arm64: name: "Python tests (Linux/arm64)" runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - name: Checkout uses: actions/checkout@v4 @@ -210,10 +219,15 @@ jobs: - uses: ./.github/actions/python-tests with: shell: bash + python-version: ${{ matrix.python-version }} python-macos-x64: name: "Python tests (macOS/x64)" runs-on: macos-15-intel + strategy: + fail-fast: false + matrix: + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - name: Checkout uses: actions/checkout@v4 @@ -224,10 +238,15 @@ jobs: - uses: ./.github/actions/python-tests with: shell: bash + python-version: ${{ matrix.python-version }} python-macos-arm64: name: "Python tests (macOS/arm64)" runs-on: macos-14 + strategy: + fail-fast: false + matrix: + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - name: Checkout uses: actions/checkout@v4 @@ -238,16 +257,22 @@ jobs: - uses: ./.github/actions/python-tests with: shell: bash + python-version: ${{ matrix.python-version }} python-windows-x64: name: "Python tests (Windows/x64)" runs-on: windows-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - name: Checkout uses: actions/checkout@v4 - uses: ./.github/actions/python-tests with: shell: bash + python-version: ${{ matrix.python-version }} docker: name: Docker diff --git a/CHANGELOG.md b/CHANGELOG.md index 617175b1..381baf42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,12 @@ This project adheres to [Semantic Versioning](http://semver.org/). - **Fixed** for any bug fixes. - **Removed** for now removed features. +## [ 1.6.0 ] - [ 2026-10-13 ] + +### Added +- Support for Python 3.14. + + ## [ 1.5.0 ] - [ 2026-10-01 ] ### Added diff --git a/docs/dev-guide/cpp-dev-guide.md b/docs/dev-guide/cpp-dev-guide.md index c2a3f8dc..40db0397 100644 --- a/docs/dev-guide/cpp-dev-guide.md +++ b/docs/dev-guide/cpp-dev-guide.md @@ -7,7 +7,7 @@ The following line will also build and cache the `libqasm` Conan package. ```shell conan profile detect -conan create --version 1.5.0 . -pr:a=tests-debug -b missing +conan create --version 1.6.0 . -pr:a=tests-debug -b missing ``` You can test the C++ binaries: diff --git a/emscripten/test_libqasm.ts b/emscripten/test_libqasm.ts index 24405d5d..5d8c1f0c 100644 --- a/emscripten/test_libqasm.ts +++ b/emscripten/test_libqasm.ts @@ -8,7 +8,7 @@ wrapper().then(function(result: any) { try { let output = cqasm.get_version() - let expected_output = "1.5.0" + let expected_output = "1.6.0" console.log("\nThe version of libqasm compiled with emscripten is:", output); if (output !== expected_output) { console.log("\tExpected output:", expected_output) diff --git a/include/libqasm/versioning.hpp b/include/libqasm/versioning.hpp index 63ca76de..66583195 100644 --- a/include/libqasm/versioning.hpp +++ b/include/libqasm/versioning.hpp @@ -2,7 +2,7 @@ namespace cqasm { -static const char* version{ "1.5.0" }; +static const char* version{ "1.6.0" }; static const char* release_year{ "2026" }; [[nodiscard]] [[maybe_unused]] static const char* get_version() { diff --git a/package.json b/package.json index 209e527c..c46e9337 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "libqasm", - "version": "1.5.0", + "version": "1.6.0", "repository": { "type": "git", "url": "https://github.com/QuTech-Delft/libqasm.git" diff --git a/setup.py b/setup.py index 40c29a00..a117bb24 100755 --- a/setup.py +++ b/setup.py @@ -169,6 +169,7 @@ def run(self): 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', 'Programming Language :: Python :: 3.13', + 'Programming Language :: Python :: 3.14', 'Topic :: Scientific/Engineering' ], packages=['libqasm', 'cqasm', 'cqasm.v3x'],