diff --git a/.github/workflows/cibw-cc.yaml b/.github/workflows/cibw-cc.yaml new file mode 100644 index 0000000..0fab127 --- /dev/null +++ b/.github/workflows/cibw-cc.yaml @@ -0,0 +1,49 @@ +name: CIBW cross-compile + +on: + workflow_dispatch: + pull_request: + branches: + - master + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build-pyodide: + name: Pyodide + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + + - uses: pypa/cibuildwheel@v3.0.0rc2 + env: + CIBW_PLATFORM: pyodide + + - uses: actions/upload-artifact@v4 + with: + name: wheels-pyodide + path: dist/*.whl + + build-ios: + name: iOS + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + + - run: brew upgrade cmake + + - uses: pypa/cibuildwheel@v3.0.0rc2 + env: + CIBW_PLATFORM: ios + CIBW_ARCHS: all + + - uses: actions/upload-artifact@v4 + with: + name: wheels-ios + path: dist/*.whl diff --git a/.github/workflows/enscripten.yaml b/.github/workflows/enscripten.yaml deleted file mode 100644 index d0be658..0000000 --- a/.github/workflows/enscripten.yaml +++ /dev/null @@ -1,33 +0,0 @@ -name: WASM - -on: - workflow_dispatch: - pull_request: - branches: - - master - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - build-wasm-emscripten: - name: Pyodide - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - with: - submodules: true - fetch-depth: 0 - - - uses: actions/setup-python@v5 - with: - python-version: "3.12" - - - uses: pypa/cibuildwheel@v2.23 - env: - CIBW_PLATFORM: pyodide - - - uses: actions/upload-artifact@v4 - with: - path: dist/*.whl diff --git a/.github/workflows/pip.yml b/.github/workflows/pip.yml index c16fd69..a9a1f80 100644 --- a/.github/workflows/pip.yml +++ b/.github/workflows/pip.yml @@ -15,7 +15,7 @@ jobs: fail-fast: false matrix: platform: [windows-latest, macos-latest, ubuntu-latest] - python-version: ["3.9", "3.13", "pypy-3.10"] + python-version: ["3.9", "3.14", "pypy-3.10"] steps: - uses: actions/checkout@v4 @@ -26,7 +26,7 @@ jobs: allow-prereleases: true - name: Build and install - run: pip install --verbose .[test] + run: pip install --verbose . --group test - name: Test run: pytest diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 9e3cf80..d6ad408 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -44,7 +44,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-13, macos-latest, windows-latest] + os: [ubuntu-latest, macos-13, macos-latest, windows-latest, ubuntu-24.04-arm, windows-11-arm] steps: - uses: actions/checkout@v4 @@ -53,10 +53,7 @@ jobs: - uses: astral-sh/setup-uv@v5 - - uses: pypa/cibuildwheel@v2.23 - env: - CIBW_ENABLE: cpython-prerelease - CIBW_ARCHS_WINDOWS: auto ARM64 + - uses: pypa/cibuildwheel@v3.0.0rc1 - name: Verify clean directory run: git diff --exit-code @@ -95,5 +92,3 @@ jobs: subject-path: "dist/*" - uses: pypa/gh-action-pypi-publish@release/v1 - with: - attestations: true diff --git a/pyproject.toml b/pyproject.toml index 106ce08..0a48921 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,11 +1,13 @@ [build-system] -requires = ["scikit-build-core>=0.10", "pybind11"] +requires = ["scikit-build-core>=0.11", "pybind11>=3.0.0rc3"] build-backend = "scikit_build_core.build" [project] name = "scikit_build_example" version = "0.0.1" +license = "MIT" +license-files = ["LICENSE"] description="A minimal example package (with pybind11)" readme = "README.md" authors = [ @@ -14,23 +16,23 @@ authors = [ requires-python = ">=3.9" classifiers = [ "Development Status :: 4 - Beta", - "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Private :: Do Not Upload", ] -[project.optional-dependencies] + +[dependency-groups] test = ["pytest"] +dev = [{ include-group = "test" }] [tool.scikit-build] -wheel.expand-macos-universal-tags = true minimum-version = "build-system.requires" @@ -48,12 +50,18 @@ testpaths = ["tests"] [tool.cibuildwheel] build-frontend = "build[uv]" -test-command = "pytest {project}/tests" -test-extras = ["test"] +enable = ["cpython-prerelease", "pypy"] +test-command = "python -m pytest tests" +test-sources = ["pyproject.toml", "tests"] +test-groups = ["test"] [tool.cibuildwheel.pyodide] build-frontend = {name = "build", args = ["--exports", "whole_archive"]} +[tool.cibuildwheel.ios] +build-frontend = "build" +xbuild-tools = ["cmake", "ninja"] + [tool.ruff.lint] extend-select = [ "B", # flake8-bugbear