Skip to content

Commit 342e8e9

Browse files
author
David Conner
committed
4.1.2
1 parent 60c63fe commit 342e8e9

24 files changed

Lines changed: 138 additions & 14 deletions

File tree

flexbe_behavior_engine/CHANGELOG.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
Changelog for package flexbe_behavior_engine
33
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
44

5+
4.1.2 (2026-05-11)
6+
------------------
7+
58
4.1.1 (2026-03-25)
69
------------------
710
* bump version to 4.1.0

flexbe_behavior_engine/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0"?>
22
<package format="2">
33
<name>flexbe_behavior_engine</name>
4-
<version>4.1.1</version>
4+
<version>4.1.2</version>
55
<description>
66
A meta-package to aggregate all the FlexBE packages
77
</description>

flexbe_core/CHANGELOG.rst

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@
22
Changelog for package flexbe_core
33
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
44

5+
4.1.2 (2026-05-11)
6+
------------------
7+
* Support nested behavior source paths in BehaviorLibrary for multi-package behavior hierarchies
8+
* Convert tuple/list behavior parameters to scalar automatically; warn on unhandled conversions
9+
* Replace runtime ``assert`` statements with ``StateError`` exceptions in core state containers
10+
* Rename ``make_persistant`` to ``make_persistent`` in ProxySubscriberCached; deprecated alias retained
11+
* Fix heartbeat topic type mappings in Topics constants
12+
* Move traceback imports to module level in ConcurrencyContainer and OperatableStateMachine
13+
* Proxy shutdown and GoalStatus constant cleanup in ProxyActionClient and ProxyPublisher
14+
* Fix test assertion to verify output userdata data-contract rather than proxy object identity
15+
516
4.1.1 (2026-03-25)
617
------------------
718
* modify handling of PriorityContainer

flexbe_core/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
schematypens="http://www.w3.org/2001/XMLSchema"?>
55
<package format="3">
66
<name>flexbe_core</name>
7-
<version>4.1.1</version>
7+
<version>4.1.2</version>
88
<description>
99
flexbe_core provides the core components for the FlexBE behavior engine.
1010
</description>

flexbe_core/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
setup(
88
name=PACKAGE_NAME,
9-
version='4.1.1',
9+
version='4.1.2',
1010
packages=find_packages(exclude=['test']),
1111
data_files=[
1212
('share/ament_index/resource_index/packages', ['resource/' + PACKAGE_NAME]),

flexbe_input/CHANGELOG.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
Changelog for package flexbe_input
33
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
44

5+
4.1.2 (2026-05-11)
6+
------------------
7+
* add conftest.py to ignore or stub GUI operations for GitHub tests
8+
59
4.1.1 (2026-03-25)
610
------------------
711
* add test coverage across all packages

flexbe_input/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
schematypens="http://www.w3.org/2001/XMLSchema"?>
55
<package format="3">
66
<name>flexbe_input</name>
7-
<version>4.1.1</version>
7+
<version>4.1.2</version>
88
<description>
99
flexbe_input enables to send data to onboard behavior when required.
1010
</description>

flexbe_input/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
setup(
88
name=PACKAGE_NAME,
9-
version='4.1.1',
9+
version='4.1.2',
1010
packages=find_packages(exclude=['test']),
1111
data_files=[
1212
('share/ament_index/resource_index/packages', ['resource/' + PACKAGE_NAME]),

flexbe_input/tests/conftest.py

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
"""pytest configuration: stub out PySide6 when it is not installed.
2+
3+
test_input_action_server.py patches every PySide6 call it makes, so the
4+
tests run correctly with lightweight stubs. test_input_gui.py exercises
5+
real widget behaviour and requires genuine PySide6, so it is excluded from
6+
collection when only stubs are present.
7+
"""
8+
import sys
9+
import types
10+
11+
try:
12+
import PySide6 # noqa: F401
13+
collect_ignore = []
14+
except ImportError:
15+
collect_ignore = ['test_input_gui.py']
16+
17+
# ------------------------------------------------------------------ #
18+
# Minimal PySide6 stubs sufficient for importing input_action_server #
19+
# and input_gui without a real Qt installation. #
20+
# ------------------------------------------------------------------ #
21+
22+
class _Signal:
23+
24+
def __init__(self, *args):
25+
pass
26+
27+
def connect(self, *args, **kwargs):
28+
pass
29+
30+
def emit(self, *args):
31+
pass
32+
33+
def _Slot(*_args, **_kwargs):
34+
def decorator(func):
35+
return func
36+
return decorator
37+
38+
class _QObject:
39+
40+
def __init__(self, *args, **kwargs):
41+
pass
42+
43+
def __getattr__(self, name):
44+
return lambda *a, **kw: None
45+
46+
class _QThread(_QObject):
47+
pass
48+
49+
class _QCoreApplication:
50+
51+
@staticmethod
52+
def quit(): # noqa: A003
53+
pass
54+
55+
class _QApplication(_QObject):
56+
pass
57+
58+
_qtcore = types.ModuleType('PySide6.QtCore')
59+
_qtcore.Signal = _Signal
60+
_qtcore.Slot = _Slot
61+
_qtcore.QThread = _QThread
62+
_qtcore.QCoreApplication = _QCoreApplication
63+
_qtcore.Qt = type('Qt', (), {'BlockingQueuedConnection': None})()
64+
_qtcore.QSize = type('QSize', (_QObject,), {})
65+
66+
_qtwidgets = types.ModuleType('PySide6.QtWidgets')
67+
_qtwidgets.QApplication = _QApplication
68+
for _cls_name in ('QComboBox', 'QLabel', 'QLineEdit', 'QMainWindow',
69+
'QPushButton', 'QVBoxLayout', 'QWidget'):
70+
setattr(_qtwidgets, _cls_name, type(_cls_name, (_QObject,), {}))
71+
72+
_pyside6 = types.ModuleType('PySide6')
73+
_pyside6.QtCore = _qtcore
74+
_pyside6.QtWidgets = _qtwidgets
75+
76+
sys.modules['PySide6'] = _pyside6
77+
sys.modules['PySide6.QtCore'] = _qtcore
78+
sys.modules['PySide6.QtWidgets'] = _qtwidgets

flexbe_mirror/CHANGELOG.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
Changelog for package flexbe_mirror
33
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
44

5+
4.1.2 (2026-05-11)
6+
------------------
7+
* Add startup timer probes to detect and report unresponsive mirror node at launch
8+
* Handle ``rclpy.InvalidHandle`` exceptions during shutdown to prevent spurious error logs
9+
510
4.1.1 (2026-03-25)
611
------------------
712
* fix deadlock issue in mirror

0 commit comments

Comments
 (0)