Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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:
Expand Down Expand Up @@ -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:
Expand Down
6 changes: 3 additions & 3 deletions PUBLISHING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion deploy/test_docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
10 changes: 5 additions & 5 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
Expand Down Expand Up @@ -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.
Expand Down
4 changes: 2 additions & 2 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.