From 29a1e8909b6a6d75fe0483c7caa15b637bdc6003 Mon Sep 17 00:00:00 2001 From: Dogan Ulus Date: Sun, 30 Nov 2025 08:41:18 +0000 Subject: [PATCH 01/14] Update PyPI publishing --- .github/workflows/publish.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 67a33b1..38c1a00 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -7,7 +7,6 @@ jobs: build_wheels: name: Build wheels on ${{ matrix.os }} runs-on: ${{ matrix.os }} - if: startsWith(github.ref, 'refs/tags/') strategy: matrix: os: [ubuntu-24.04, ubuntu-24.04-arm] @@ -36,7 +35,6 @@ jobs: build_sdist: name: Build source distribution runs-on: ubuntu-latest - if: startsWith(github.ref, 'refs/tags/') steps: - uses: actions/checkout@v5 @@ -56,7 +54,6 @@ jobs: name: Publish to PyPI needs: [build_wheels, build_sdist] runs-on: ubuntu-latest - if: startsWith(github.ref, 'refs/tags/') permissions: id-token: write From 44db46692f5230cf8fe9f5fea1665ab1cda6311d Mon Sep 17 00:00:00 2001 From: Dogan Ulus Date: Sun, 30 Nov 2025 10:07:29 +0000 Subject: [PATCH 02/14] Skip musllinux builds --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index f7392a7..763976d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -87,7 +87,7 @@ cache_dir = "/tmp/reelay/.pytest_cache" container-engine = "podman" manylinux-x86_64-image = "manylinux_2_28" manylinux-aarch64-image = "manylinux_2_28" -skip = "cp314t-*" +skip = ["cp314t-*", "*-musllinux_*"] test-command = "pytest" test-requires = ["pytest"] test-sources = ["python/tests"] From 72541742def1996c9fe7bde4576bef32ee0fd742 Mon Sep 17 00:00:00 2001 From: Dogan Ulus Date: Sun, 30 Nov 2025 10:09:59 +0000 Subject: [PATCH 03/14] Fix toml support --- .devcontainer/devcontainer.json | 3 ++- pyproject.toml | 6 ++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index abde6fb..cd72fbb 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -17,7 +17,8 @@ "GitHub.copilot", "ms-vscode.cmake-tools", "ms-python.python", - "ms-azuretools.vscode-containers" + "ms-azuretools.vscode-containers", + "tamasfe.even-better-toml" ], "settings": { "clangd.arguments": [ diff --git a/pyproject.toml b/pyproject.toml index 763976d..fc2c64a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,16 +23,14 @@ dynamic = ["version", "description"] add = "pybind11_project.add:main" [project.optional-dependencies] -devel = [ - "pytest" -] +devel = ["pytest"] docs = [ "mkdocs", "mkdocs-material", "mkdocs-material-extensions", "mkdocs-minify-plugin", "mkdocs-redirects", - "mkdocs-git-revision-date-localized-plugin" + "mkdocs-git-revision-date-localized-plugin", ] [build-system] From 42bf98a3adf73a07a351606fc762f70795a826c2 Mon Sep 17 00:00:00 2001 From: Dogan Ulus Date: Sun, 30 Nov 2025 10:28:35 +0000 Subject: [PATCH 04/14] try with manylinux2014 --- .github/workflows/publish.yml | 4 +--- pyproject.toml | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 38c1a00..c9919be 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -18,8 +18,6 @@ jobs: - uses: actions/checkout@v5 - uses: actions/setup-python@v5 - with: - python-version: "3.11" - name: Install cibuildwheel run: python -m pip install cibuildwheel @@ -67,4 +65,4 @@ jobs: - name: Publish to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: - repository-url: https://test.pypi.org/legacy/ + repository-url: https://test.pypi.org/simple/ diff --git a/pyproject.toml b/pyproject.toml index fc2c64a..3ec2ec7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -83,8 +83,8 @@ cache_dir = "/tmp/reelay/.pytest_cache" [tool.cibuildwheel] container-engine = "podman" -manylinux-x86_64-image = "manylinux_2_28" -manylinux-aarch64-image = "manylinux_2_28" +manylinux-x86_64-image = "manylinux2014" +manylinux-aarch64-image = "manylinux2014" skip = ["cp314t-*", "*-musllinux_*"] test-command = "pytest" test-requires = ["pytest"] From ff1c291b7640d95d111daf59ba9b0e9075ae0f8b Mon Sep 17 00:00:00 2001 From: Dogan Ulus Date: Sun, 30 Nov 2025 10:56:08 +0000 Subject: [PATCH 05/14] Test with environments --- .github/workflows/publish.yml | 8 +++++++- .github/workflows/wheels.yml | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c9919be..c546783 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -18,6 +18,8 @@ jobs: - uses: actions/checkout@v5 - uses: actions/setup-python@v5 + with: + python-version: "3.11" - name: Install cibuildwheel run: python -m pip install cibuildwheel @@ -52,6 +54,9 @@ jobs: name: Publish to PyPI needs: [build_wheels, build_sdist] runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/project/reelay/ permissions: id-token: write @@ -65,4 +70,5 @@ jobs: - name: Publish to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: - repository-url: https://test.pypi.org/simple/ + repository-url: https://test.pypi.org/legacy/ + verbose: true diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 2e26a56..366b498 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -19,7 +19,10 @@ jobs: steps: - uses: actions/checkout@v5 + - uses: actions/setup-python@v5 + with: + python-version: "3.11" - name: Install cibuildwheel run: python -m pip install cibuildwheel From 1fe9535aff5a94dba5c1b04b6772f6daa60d20c9 Mon Sep 17 00:00:00 2001 From: Dogan Ulus Date: Sun, 30 Nov 2025 11:16:02 +0000 Subject: [PATCH 06/14] Ensure setuptools version --- .github/workflows/publish.yml | 2 +- .github/workflows/wheels.yml | 2 +- pyproject.toml | 37 +++++++++++++++++------------------ 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c546783..9f66998 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -40,7 +40,7 @@ jobs: - uses: actions/checkout@v5 - uses: actions/setup-python@v5 with: - python-version: "3.11" + python-version: "3.13" - name: Build sdist run: pipx run build --sdist diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 366b498..19c7c96 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/setup-python@v5 with: - python-version: "3.11" + python-version: "3.13" - name: Install cibuildwheel run: python -m pip install cibuildwheel diff --git a/pyproject.toml b/pyproject.toml index 3ec2ec7..2854daf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,23 +1,23 @@ [project] -classifiers = [ - 'Development Status :: 4 - Beta', - 'Intended Audience :: Developers', - 'Intended Audience :: Science/Research', - 'Topic :: Scientific/Engineering', - 'Topic :: Scientific/Engineering :: Mathematics', - 'Topic :: Software Development :: Testing', - 'License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)', - 'Programming Language :: Python :: 3', -] -keywords = ["reactive", "automata", "monitoring", "testing", "runtime"] name = "reelay" +dynamic = ["version", "description"] readme = "README.md" requires-python = ">=3.8" -license = { "file" = "LICENSE" } -authors = [{ "name" = "Dogan Ulus", "email" = "doganulus@gmail.com" }] -urls = { "Documentation" = "https://doganulus.github.io/reelay" } +license = { file = "LICENSE" } +classifiers = [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: Science/Research", + "Topic :: Scientific/Engineering", + "Topic :: Scientific/Engineering :: Mathematics", + "Topic :: Software Development :: Testing", + "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)", + "Programming Language :: Python :: 3", +] +keywords = ["reactive", "automata", "monitoring", "testing", "runtime"] +authors = [{ name = "Dogan Ulus", email = "doganulus@gmail.com" }] +urls = { Documentation = "https://doganulus.github.io/reelay" } dependencies = [] -dynamic = ["version", "description"] [project.scripts] add = "pybind11_project.add:main" @@ -34,7 +34,7 @@ docs = [ ] [build-system] -requires = ["py-build-cmake~=0.1.8", "pybind11"] +requires = ["setuptools>=61", "py-build-cmake~=0.1.8", "pybind11"] build-backend = "py_build_cmake.build" [tool.py-build-cmake.module] @@ -69,11 +69,10 @@ env = {} "REELAY_BUILD_APPS:BOOL" = "OFF" "REELAY_BUILD_PYTHON_BINDINGS:BOOL" = "ON" -[tool.py-build-cmake.linux.cmake] # Linux-specific options +[tool.py-build-cmake.linux.cmake] generator = "Ninja" config = ["Release"] - -options = { "CMAKE_DEBUG_POSTFIX" = "_d" } +options = { CMAKE_DEBUG_POSTFIX = "_d" } [tool.pytest.ini_options] minversion = "7.0" From 45e2a563242e4b846dc9383828fd94b9d2149eda Mon Sep 17 00:00:00 2001 From: Dogan Ulus Date: Sun, 30 Nov 2025 11:27:12 +0000 Subject: [PATCH 07/14] Bump py-build-cmake version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2854daf..288f38d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,7 @@ docs = [ ] [build-system] -requires = ["setuptools>=61", "py-build-cmake~=0.1.8", "pybind11"] +requires = ["setuptools>=61", "py-build-cmake>=0.5.0", "pybind11"] build-backend = "py_build_cmake.build" [tool.py-build-cmake.module] From 9585cc7fb4ff9dcf0b1f4363c8fab05d0ab6f953 Mon Sep 17 00:00:00 2001 From: Dogan Ulus Date: Sun, 30 Nov 2025 12:01:07 +0000 Subject: [PATCH 08/14] Use version from pyproject --- .github/workflows/publish.yml | 6 ++++-- pyproject.toml | 3 ++- python/reelay/__init__.py | 1 - 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9f66998..3d6c1ed 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,6 +1,8 @@ name: Publish on: + release: + types: [released] workflow_dispatch: jobs: @@ -19,7 +21,7 @@ jobs: - uses: actions/setup-python@v5 with: - python-version: "3.11" + python-version: "3.13" - name: Install cibuildwheel run: python -m pip install cibuildwheel @@ -38,6 +40,7 @@ jobs: steps: - uses: actions/checkout@v5 + - uses: actions/setup-python@v5 with: python-version: "3.13" @@ -70,5 +73,4 @@ jobs: - name: Publish to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: - repository-url: https://test.pypi.org/legacy/ verbose: true diff --git a/pyproject.toml b/pyproject.toml index 288f38d..0ab0d2e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,7 @@ [project] name = "reelay" -dynamic = ["version", "description"] +version = "25.0.0-rc2" +description = "Reelay: A runtime verification library for real-time systems" readme = "README.md" requires-python = ">=3.8" license = { file = "LICENSE" } diff --git a/python/reelay/__init__.py b/python/reelay/__init__.py index fd05e7f..790212b 100644 --- a/python/reelay/__init__.py +++ b/python/reelay/__init__.py @@ -9,7 +9,6 @@ """ Python bindings for Reelay C++ library """ -__version__ = '25.0.0' from .dense_timed_monitor import dense_timed_monitor from .discrete_timed_monitor import discrete_timed_monitor From 05c8552354b7bc974cea7b61c6e2289c58759897 Mon Sep 17 00:00:00 2001 From: Dogan Ulus Date: Sun, 30 Nov 2025 13:14:27 +0000 Subject: [PATCH 09/14] Allow postfix on Reelay version --- src/pybind11/CMakeLists.txt | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/src/pybind11/CMakeLists.txt b/src/pybind11/CMakeLists.txt index bfc3fa7..2d651d4 100644 --- a/src/pybind11/CMakeLists.txt +++ b/src/pybind11/CMakeLists.txt @@ -5,33 +5,21 @@ message(STATUS "Python version: ${PY_FULL_VERSION}") # Make sure that the Python and CMake versions match if(DEFINED PY_BUILD_CMAKE_PACKAGE_VERSION) - if(NOT "${PY_BUILD_CMAKE_PACKAGE_VERSION}" MATCHES "^${PY_FULL_VERSION}$") + if(NOT "${PY_BUILD_CMAKE_PACKAGE_VERSION}" MATCHES "^${PY_FULL_VERSION}([.+-].*)?$") message(FATAL_ERROR "Version number does not match " "(${PY_BUILD_CMAKE_PACKAGE_VERSION} - ${PY_FULL_VERSION}).") endif() endif() -# include(cmake/QueryPythonForPybind11.cmake) -# find_pybind11_python_first() - # Find the Python development files find_package(Python3 REQUIRED COMPONENTS Development.Module) -# pybind11 is header-only, so finding a native version is fine -# find_package( -# pybind11 -# ${ARGN} -# REQUIRED -# CONFIG -# CMAKE_FIND_ROOT_PATH_BOTH) - include(FetchContent) -FetchContent_Declare( - pybind11 - GIT_REPOSITORY https://github.com/pybind/pybind11 - GIT_TAG v3.0.1 -) -FetchContent_MakeAvailable(pybind11) +fetchcontent_declare( + pybind11 + GIT_REPOSITORY https://github.com/pybind/pybind11 + GIT_TAG v3.0.1) +fetchcontent_makeavailable(pybind11) # Compile the example Python module pybind11_add_module(_pybind11_module MODULE "main.cpp") @@ -59,5 +47,4 @@ install( TARGETS _pybind11_module EXCLUDE_FROM_ALL COMPONENT python_modules - DESTINATION ${PY_BUILD_CMAKE_MODULE_NAME} -) + DESTINATION ${PY_BUILD_CMAKE_MODULE_NAME}) From 9c33fc90e53ecebce6339dc06ea1b084948030be Mon Sep 17 00:00:00 2001 From: Dogan Ulus Date: Sun, 30 Nov 2025 13:23:32 +0000 Subject: [PATCH 10/14] Fix version variables --- src/pybind11/CMakeLists.txt | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/pybind11/CMakeLists.txt b/src/pybind11/CMakeLists.txt index 2d651d4..b72223d 100644 --- a/src/pybind11/CMakeLists.txt +++ b/src/pybind11/CMakeLists.txt @@ -1,13 +1,11 @@ -set(PY_VERSION_SUFFIX "") -set(PY_FULL_VERSION ${PROJECT_VERSION}${PY_VERSION_SUFFIX}) - -message(STATUS "Python version: ${PY_FULL_VERSION}") +message(STATUS "Reelay version: ${PROJECT_VERSION}") +message(STATUS "Python version: ${PY_BUILD_CMAKE_PACKAGE_VERSION}") # Make sure that the Python and CMake versions match if(DEFINED PY_BUILD_CMAKE_PACKAGE_VERSION) - if(NOT "${PY_BUILD_CMAKE_PACKAGE_VERSION}" MATCHES "^${PY_FULL_VERSION}([.+-].*)?$") + if(NOT "${PY_BUILD_CMAKE_PACKAGE_VERSION}" MATCHES "^${PROJECT_VERSION}([.+-].*)?$") message(FATAL_ERROR "Version number does not match " - "(${PY_BUILD_CMAKE_PACKAGE_VERSION} - ${PY_FULL_VERSION}).") + "(${PROJECT_VERSION} - ${PY_BUILD_CMAKE_PACKAGE_VERSION}).") endif() endif() @@ -26,7 +24,7 @@ pybind11_add_module(_pybind11_module MODULE "main.cpp") target_link_libraries(_pybind11_module PRIVATE pybind11::pybind11 reelay::reelay) target_compile_definitions( _pybind11_module PRIVATE MODULE_NAME=$ - VERSION_INFO="${PY_FULL_VERSION}") + VERSION_INFO="${PY_BUILD_CMAKE_PACKAGE_VERSION}") # Hide all symbols by default (including external libraries on Linux) set_target_properties( From 3c2a1793a1be056ee7b85bd21e03f7643422267e Mon Sep 17 00:00:00 2001 From: Dogan Ulus Date: Sun, 30 Nov 2025 13:49:32 +0000 Subject: [PATCH 11/14] Use Python version specifier standard --- pyproject.toml | 2 +- src/pybind11/CMakeLists.txt | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0ab0d2e..42c2f4d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "reelay" -version = "25.0.0-rc2" +version = "25.0.0rc2" description = "Reelay: A runtime verification library for real-time systems" readme = "README.md" requires-python = ">=3.8" diff --git a/src/pybind11/CMakeLists.txt b/src/pybind11/CMakeLists.txt index b72223d..ac482b0 100644 --- a/src/pybind11/CMakeLists.txt +++ b/src/pybind11/CMakeLists.txt @@ -1,9 +1,10 @@ message(STATUS "Reelay version: ${PROJECT_VERSION}") message(STATUS "Python version: ${PY_BUILD_CMAKE_PACKAGE_VERSION}") -# Make sure that the Python and CMake versions match +# Make sure that the Python and CMake versions match) if(DEFINED PY_BUILD_CMAKE_PACKAGE_VERSION) - if(NOT "${PY_BUILD_CMAKE_PACKAGE_VERSION}" MATCHES "^${PROJECT_VERSION}([.+-].*)?$") + if(NOT "${PY_BUILD_CMAKE_PACKAGE_VERSION}" MATCHES + "^${PROJECT_VERSION}(?:(a|b|rc)\d+)?(?:\.post\d+)?(?:\.dev\d+)?$") message(FATAL_ERROR "Version number does not match " "(${PROJECT_VERSION} - ${PY_BUILD_CMAKE_PACKAGE_VERSION}).") endif() From b821f223e682e262540ac84ba11c8e1bb7539335 Mon Sep 17 00:00:00 2001 From: Dogan Ulus Date: Sun, 30 Nov 2025 14:28:02 +0000 Subject: [PATCH 12/14] Fix regex for cmake --- src/pybind11/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pybind11/CMakeLists.txt b/src/pybind11/CMakeLists.txt index ac482b0..3edc067 100644 --- a/src/pybind11/CMakeLists.txt +++ b/src/pybind11/CMakeLists.txt @@ -4,7 +4,7 @@ message(STATUS "Python version: ${PY_BUILD_CMAKE_PACKAGE_VERSION}") # Make sure that the Python and CMake versions match) if(DEFINED PY_BUILD_CMAKE_PACKAGE_VERSION) if(NOT "${PY_BUILD_CMAKE_PACKAGE_VERSION}" MATCHES - "^${PROJECT_VERSION}(?:(a|b|rc)\d+)?(?:\.post\d+)?(?:\.dev\d+)?$") + "^${PROJECT_VERSION}(?:(?:a|b|rc)[0-9]+)?(?:\\.post[0-9]+)?(?:\\.dev[0-9]+)?$") message(FATAL_ERROR "Version number does not match " "(${PROJECT_VERSION} - ${PY_BUILD_CMAKE_PACKAGE_VERSION}).") endif() From 8b2dd3abcc866791bc9ed8277f63e98b66c9bee0 Mon Sep 17 00:00:00 2001 From: Dogan Ulus Date: Sun, 30 Nov 2025 14:30:53 +0000 Subject: [PATCH 13/14] Fix cmake regex --- src/pybind11/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pybind11/CMakeLists.txt b/src/pybind11/CMakeLists.txt index 3edc067..0b7d144 100644 --- a/src/pybind11/CMakeLists.txt +++ b/src/pybind11/CMakeLists.txt @@ -4,7 +4,7 @@ message(STATUS "Python version: ${PY_BUILD_CMAKE_PACKAGE_VERSION}") # Make sure that the Python and CMake versions match) if(DEFINED PY_BUILD_CMAKE_PACKAGE_VERSION) if(NOT "${PY_BUILD_CMAKE_PACKAGE_VERSION}" MATCHES - "^${PROJECT_VERSION}(?:(?:a|b|rc)[0-9]+)?(?:\\.post[0-9]+)?(?:\\.dev[0-9]+)?$") + "^${PROJECT_VERSION}((a|b|rc)[0-9]+)?(\\.post[0-9]+)?(\\.dev[0-9]+)?$") message(FATAL_ERROR "Version number does not match " "(${PROJECT_VERSION} - ${PY_BUILD_CMAKE_PACKAGE_VERSION}).") endif() From 2b6c1dfbc01774a21b8a26d9aaa57d699b95393b Mon Sep 17 00:00:00 2001 From: Dogan Ulus Date: Sun, 30 Nov 2025 15:10:26 +0000 Subject: [PATCH 14/14] Verify version before publishing --- .github/workflows/publish.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3d6c1ed..405d45b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -6,12 +6,31 @@ on: workflow_dispatch: jobs: + verify_version: + name: Verify tag matches pyproject version + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + - name: Check tag and project version alignment + env: + TAG_REF: ${{ github.ref_name }} + run: | + echo "Git tag ref: $TAG_REF" + FILE_VERSION=$(grep '^version =' pyproject.toml | head -1 | cut -d '"' -f2) + echo "pyproject.toml version: $FILE_VERSION" + if [ "$FILE_VERSION" != "$TAG_REF" ]; then + echo "Error: tag ($TAG_REF) does not match pyproject version ($FILE_VERSION)" >&2 + exit 1 + fi + echo "Success: tag matches project version ($FILE_VERSION)" + build_wheels: name: Build wheels on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-24.04, ubuntu-24.04-arm] + needs: verify_version concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ strategy.job-index }} cancel-in-progress: true @@ -37,6 +56,7 @@ jobs: build_sdist: name: Build source distribution runs-on: ubuntu-latest + needs: verify_version steps: - uses: actions/checkout@v5 @@ -74,3 +94,4 @@ jobs: uses: pypa/gh-action-pypi-publish@release/v1 with: verbose: true + repository-url: https://test.pypi.org/legacy/