Releases: apajon/lifecore_ros2
Release list
v0.10.0
See CHANGELOG.md for details.
v0.9.0
v0.8.1
v0.8.0
v0.7.0
v0.6.1
v0.6.0
v0.5.2
lifecore_ros2 v0.4.0 — first public release
lifecore_ros2 is a minimal lifecycle composition library for ROS 2 Jazzy — no hidden state machine.
This is the first public release of lifecore_ros2. It establishes a small, predictable
surface for composing lifecycle-aware ROS 2 nodes without layering a hidden state machine
on top of native ROS 2 lifecycle semantics.
Supported baseline
- Python 3.12 or newer
- ROS 2 Jazzy
rclpyis required at runtime and is expected to come from the system ROS installation;
it is intentionally not declared as a PyPI dependency
Included in this release
Public API (re-exported from lifecore_ros2):
LifecycleComponentNode— lifecycle node that owns and drives registered components as
native ROS 2 managed entitiesLifecycleComponent— base class for lifecycle-aware components (abstract by
convention); propagates transitions through_on_configure,_on_activate,
_on_deactivate,_on_cleanup,_on_shutdown,_on_errorTopicComponent— base class for topic-oriented components; allocates ROS pub/sub
during configure, releases during cleanupLifecyclePublisherComponent[MsgT]— generic publisher gated by activation stateLifecycleSubscriberComponent[MsgT]— generic subscriber whoseon_messagecallback
is gated by activation statewhen_active— decorator that guards component methods on activation stateLifecoreErrorand typed boundary-violation subclasses:RegistrationClosedError,
DuplicateComponentError,ComponentNotAttachedError,ComponentNotConfiguredError
Examples: examples/minimal_node.py, examples/minimal_publisher.py,
examples/minimal_subscriber.py, examples/telemetry_publisher.py,
examples/composed_pipeline.py.
Documentation: getting-started guide, architecture overview, recommended patterns
and anti-patterns, migration notes from raw rclpy, FAQ, and a Sphinx-buildable API
reference under docs/.
Quality baseline: Ruff formatting and linting, Pyright strict mode for the core
package, and a pytest suite covering nominal transitions, edge transitions, activation
gating, failure propagation, and resource handling.
Known limitations
- The public API is in the
0.xseries — experimental stability level; minor bumps may
include breaking changes composed_pipeline.pydemonstrates multi-component composition inside a single node;
multi-node or domain-specific examples live in the planned companion repository- The
MsgTtype parameter on topic components is unbounded by design — no stable ROS 2
message base class is exported byrosidlto constrain it without coupling - No companion examples repository (
lifecore_ros2_examples) ships with this release - Lifecycle observability beyond standard
rclpylogging (e.g./diagnostics
integration) is out of scope for the core library