Skip to content

chore(deps): unpin ruckig, require >=0.19.4 which ships wheels - #77

Open
jeqcho wants to merge 1 commit into
i2rt-robotics:mainfrom
jeqcho:fix/unpin-ruckig
Open

chore(deps): unpin ruckig, require >=0.19.4 which ships wheels#77
jeqcho wants to merge 1 commit into
i2rt-robotics:mainfrom
jeqcho:fix/unpin-ruckig

Conversation

@jeqcho

@jeqcho jeqcho commented Jul 15, 2026

Copy link
Copy Markdown

Fixes #76.

Problem

ruckig==0.15.3 publishes only an sdist, and every published ruckig sdist through 0.17.3 fails to build under scikit-build-core >= 0.10 (the deprecated cmake.targets key became a hard error in scikit-build-core 1.0, released 2026-07-06). The [tool.uv] build-constraint-dependencies workaround in this repo only protects builds run inside the repo itself: uv ignores a dependency's [tool.uv] section, so anyone installing i2rt as a dependency (uv pip install "i2rt @ git+...", pip, CI) hits the build failure on a cold cache.

Fix

ruckig 0.19.4 (released today, includes the pantor/ruckig#261 fix per pantor/ruckig#263) ships prebuilt wheels for CPython 3.9-3.14 on manylinux/musllinux x86_64, macOS arm64, and Windows, so no source build happens on those platforms. On platforms without wheels (e.g. Linux aarch64 / Raspberry Pi), the 0.19.4 sdist builds cleanly under scikit-build-core 1.0, so the build-constraint block is removed as no longer needed. Lockfile updated with uv lock --upgrade-package ruckig (the extra marker simplifications are from 0.19.4 supporting Python 3.14, which removes a resolution fork).

Compatibility

The only ruckig consumer in the codebase is i2rt/flow_base/flow_base_controller.py. I exercised its full ruckig API surface (Ruckig, InputParameter, OutputParameter, ControlInterface, Result, update(), pass_to_input()) against 0.19.4: identical behavior, update() returns Result.Working, and the module imports cleanly with 0.19.4 installed.

🤖 Generated with Claude Code

ruckig 0.15.3 publishes only an sdist, and every published sdist through
0.17.3 fails to build under scikit-build-core >= 0.10 (deprecated
cmake.targets key became a hard error in 1.0). The in-repo
build-constraint-dependencies workaround does not propagate to consumers
installing i2rt as a dependency, so fresh installs of i2rt fail (i2rt-robotics#76).

ruckig 0.19.4 (released 2026-07-15) ships prebuilt wheels for CPython
3.9-3.14 on manylinux/musllinux x86_64, macOS arm64, and Windows, so no
source build happens on those platforms. On platforms without wheels
(e.g. Linux aarch64), the 0.19.4 sdist carries the pantor/ruckig#261 fix
and builds cleanly under scikit-build-core 1.0, so the [tool.uv]
build-constraint block is no longer needed and is removed.

Compatibility: the only ruckig consumer is
i2rt/flow_base/flow_base_controller.py; its full API surface (Ruckig,
InputParameter, OutputParameter, ControlInterface, Result, update(),
pass_to_input()) was exercised against 0.19.4 and behaves identically.

Fixes i2rt-robotics#76

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fresh installs fail building ruckig==0.15.3; the in-repo build-constraint workaround does not reach consumers

1 participant