Skip to content

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.

Unreleased

0.34.1.6 - 2026-04-27 — PyPI README refresh

Same wheels as 0.34.1.5; recut so the published wheel's README metadata includes the Windows build badge alongside Linux and macOS on PyPI's project page.

Changed

  • README badge row includes a Windows build badge (6656815).

0.34.1.5 - 2026-04-27 — Windows x64 wheels debut + Python profile bindings

First complete cross-platform PyPI release: Linux, macOS, and Windows wheels for Python 3.9–3.12. Closes the long-running #40 Windows wheels initiative (#58). Also ships a batch of profile-binding contributions from @Joelkang that had been queued in Unreleased.

Added

  • Windows x64 wheels published to PyPI via the new wheels-windows.yml workflow. Mirrors wheels-{linux,macos}.yml; sources C++ deps from conda-forge via pixi; bundles plugin DLLs via delvewheel repair --analyze-existing (f9c122d, 3e3a2e4).
  • __init__.py prepends the package dir and tesseract_robotics_nanobind.libs/ to PATH on Windows — required because boost::dll's plain LoadLibrary ignores os.add_dll_directory (006ce38).
  • Cereal polymorphic types re-registered in the tesseract_serialization binding TU — MSVC instantiates the cereal registry per-DLL, so upstream's registrations don't reach the consumer .pyd without re-registration (af88515).
  • New developer doc docs/developer/windows-wheels.md capturing four Windows wheel packaging gotchas surfaced during the gh-40 diagnosis (fe5ad75).
  • CompositeInstruction.push_back now accepts a CompositeInstruction in addition to a plain Instruction, enabling nested composites (e.g. raster programs) to be built from Python the same way they are in C++ (#51, 6d17314).
  • contributed by @Joelkang
  • SimplePlanner profiles configurable from Python — SimplePlannerCompositeProfile plus seven concrete move profiles (FixedSize, FixedSizeAssign, FixedSizeAssignNoIK, LVS, LVSNoIK, LVSAssign, LVSAssignNoIK), with ProfileDictionary_addSimplePlannerMoveProfile / …CompositeProfile helpers for registration (#54, e2bf837).
  • contributed by @Joelkang
  • task_composer planning-node profiles exposed through a new tesseract_task_composer_planning module: ContactCheckProfile, FixStateBoundsProfile, FixStateCollisionProfile, KinematicLimitsCheckProfile, MinLengthProfile, ProfileSwitchProfile, and UpsampleTrajectoryProfile. Heavy TrajOpt-typed members on FixStateCollisionProfile (OSQP settings, SQP params, coeff data) are intentionally skipped — configure those via YAML or C++ (#56, 62cd2cd).
  • contributed by @Joelkang
  • ConstantTCPSpeedParameterization (KDL-based, constant TCP-speed time parameterization) bound alongside its ConstantTCPSpeedCompositeProfile (#55, f4f981d).
  • contributed by @Joelkang

Removed

  • vcpkg-based wheels-windows.yml variant (workflow_dispatch-only, never green) replaced by the conda-forge / pixi pipeline of the same name (3e3a2e4).

0.34.1.4 - 2026-04-27 [YANKED] — partial cross-platform release

Yanked. Linux and macOS wheels published successfully; Windows wheels built and tested but the publish job hit a PyPI Trusted Publisher configuration mismatch and didn't upload. Superseded by 0.34.1.5.

0.34.1.2 - 2026-04-23 — macOS arm64 stability

Follow-up to the macOS arm64 debut in 0.34.1.1, resolving a garbage-collection crash that surfaced in fresh virtual environments during motion planning.

Fixed

  • Dedupe versioned dylibs in the wheel — the actual root cause of the macOS GC crash (#48, 7f53185).
  • Pin plugin dylibs on macOS to prevent a garbage-collection crash during motion planning (#48, 590343f).

Changed

  • Restore the CI macOS test scope that had been narrowed as a workaround for #48 (#49, 07f8f9c).

0.34.1.1 - 2026-04-23 — macOS arm64 wheels debut

First PyPI-published macOS arm64 wheels, shipping via a dedicated wheels-macos.yml workflow parallel to the existing Linux x86_64 pipeline. Also introduces a Python trampoline for ConstraintSet, Python 3.9 compatibility for example modules, and installable example scripts.

Added

  • macOS arm64 wheels published to PyPI via a split, per-platform workflow (d80e689).
  • Python trampoline for ifopt.ConstraintSet so users can subclass it from Python for custom SQP constraints (361c60e).
  • Examples installable as console scripts (e.g. tesseract_basic_cartesian_example) via [project.scripts] (2c62952).
  • contributed by @marip8
  • pixi run build-wheel task for local wheel builds (e26df2a).

Changed

  • Non-benchmark tests fail loud instead of being silently skipped (a1d7607).

Fixed

  • Python 3.9 compatibility for example modules via from __future__ import annotations (87ce68e).