diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 50032f02..353a12ee 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,6 +1,6 @@ name: Build & Publish wheels -# Builds manylinux wheels with cibuildwheel and publishes them to (Test)PyPI +# Builds manylinux wheels with cibuildwheel and publishes them to PyPI # using Trusted Publishing (OIDC) — no API tokens stored in the repo. # # Wheels are built on native per-arch AWS CodeBuild runners @@ -12,7 +12,7 @@ name: Build & Publish wheels # expression maps the cibuildwheel arch to the runner project's name suffix. # # Triggers: -# * push a tag like v0.1.3 -> builds + publishes to TestPyPI +# * push a tag like v0.1.4 -> builds + publishes to PyPI # * manual "Run workflow" -> builds only (no publish), for smoke testing on: push: @@ -68,7 +68,7 @@ jobs: fail-fast: false matrix: arch: [x86_64, aarch64] - python: ["3.8", "3.9", "3.10", "3.11"] + python: ["3.8", "3.9", "3.10", "3.11", "3.12"] steps: - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: diff --git a/PUBLISHING.md b/PUBLISHING.md index b5021e47..c5000b73 100644 --- a/PUBLISHING.md +++ b/PUBLISHING.md @@ -58,12 +58,12 @@ run — do this once per index. ```bash # Make sure pyproject.toml `version` is what you want to publish, then: -git tag v0.1.3 -git push origin v0.1.3 +git tag v0.1.4 +git push origin v0.1.4 ``` Pushing a `v*` tag triggers the workflow: it builds the full wheel matrix, then -the `publish` job uploads to TestPyPI. A **manual** run (Actions → Run workflow) +the `publish` job uploads to PyPI. A **manual** run (Actions → Run workflow) builds wheels only and does **not** publish — useful for smoke-testing. ## Verify from TestPyPI diff --git a/deploy/test_docker.sh b/deploy/test_docker.sh index 9ace93f9..991916c9 100755 --- a/deploy/test_docker.sh +++ b/deploy/test_docker.sh @@ -11,7 +11,7 @@ fi CP_TAG="cp${PY_VER//./}" # Match the cibuildwheel/auditwheel output name, e.g. -# far_unitree_sdk-0.1.3-cp311-cp311-manylinux_2_31_x86_64.whl +# far_unitree_sdk-0.1.4-cp311-cp311-manylinux_2_31_x86_64.whl WHEEL_GLOB="far_unitree_sdk-*-${CP_TAG}-${CP_TAG}-manylinux*_${ARCH}.whl" echo "Testing wheel matching '$WHEEL_GLOB' on $ARCH with Python $PY_VER" diff --git a/pyproject.toml b/pyproject.toml index 9aca5552..0658fc30 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,15 +6,15 @@ build-backend = "setuptools.build_meta" # PyPI distribution name. Prefixed with "far-" to avoid colliding with any # upstream Unitree project. The IMPORT name is unchanged: `import unitree_interface`. name = "far-unitree-sdk" -version = "0.1.3" +version = "0.1.4" description = "Unitree robot SDK Python bindings (FAR fork)" readme = "README.md" # Binary-only distribution (no sdist fallback): every interpreter allowed here # MUST have a wheel built by [tool.cibuildwheel] below, or `pip install` fails -# with no candidate. cibuildwheel builds cp38/cp39/cp310/cp311, so cap the upper -# bound at <3.12 — an open-ended ">=3.8" would let pip pick 3.12/3.13 and find +# with no candidate. cibuildwheel builds cp38/cp39/cp310/cp311/cp312, so cap the +# upper bound at <3.13 — an open-ended ">=3.8" would let pip pick 3.13 and find # no wheel. -requires-python = ">=3.8,<3.12" +requires-python = ">=3.8,<3.13" license = { text = "BSD-3-Clause" } authors = [{ name = "FAR" }] keywords = ["unitree", "robotics", "sdk", "dds"] @@ -49,7 +49,7 @@ unitree_interface = ["*.so", "*.so.*", "*.pyi", "py.typed"] # LD_LIBRARY_PATH and emits a properly tagged manylinux wheel. # --------------------------------------------------------------------------- [tool.cibuildwheel] -build = "cp38-* cp39-* cp310-* cp311-*" +build = "cp38-* cp39-* cp310-* cp311-* cp312-*" # The vendored FastDDS libraries are prebuilt glibc binaries, so only build # manylinux wheels. musllinux (Alpine/musl) cannot link them and lacks glibc # headers like execinfo.h. diff --git a/uv.lock b/uv.lock index c750d11c..cb1627ad 100644 --- a/uv.lock +++ b/uv.lock @@ -1,8 +1,8 @@ version = 1 revision = 3 -requires-python = ">=3.8, <3.12" +requires-python = ">=3.8, <3.13" [[package]] name = "far-unitree-sdk" -version = "0.1.3" +version = "0.1.4" source = { editable = "." }