Skip to content

Fix Inverter propagation of running child status - #1489

Open
yunyv wants to merge 2 commits into
AtsushiSakai:masterfrom
yunyv:fix/inverter-running-status
Open

yunyv wants to merge 2 commits into
AtsushiSakai:masterfrom
yunyv:fix/inverter-running-status

Conversation

@yunyv

@yunyv yunyv commented Nov 1, 2026 •

Copy link
Copy Markdown

Reference issue

No matching issue or competing fix found for Inverter's handling of a running child.

What does this implement/fix?

InverterNode documents that it passes through RUNNING, but currently converts it to FAILURE. For example, a tree built from <Inverter><Sleep sec="1.5" /></Inverter> immediately reports failure while its child is still running.

Preserve RUNNING without changing the existing success/failure inversion. Add a three-state regression and an XML-factory test that advances a controlled clock through the child's completion. No actual sleeps, API, parameter, dependency, or CI changes.

Additional information

Prepared and tested with AI assistance; no human review or hardware verification is claimed.

Linux / Python 3.13.5 and 3.14.8, pytest 9.1.0, Ruff 0.17.1:

  • Baseline with new tests: 2 failed, 8 passed.
  • Fixed complete behavior-tree tests: 10 passed with warnings as errors.
  • Behavior-tree tests plus native code-style check: 11 passed on each Python version.
  • Ruff on both changed files, compileall and git diff --check: passed. Ruff reports an existing configuration deprecation warning.

The configured mypy package list does not include MissionPlanning. Full bash runtests.sh, documentation build, animations and other platforms were not run; the full suite includes an unrelated PlantUML network/plotting test. The existing Inverter docstring and official RST autodoc already describe the correct behavior.

CheckList

  • Did you add an unittest for your new example or defect fix?
  • Did you add documents for your new example? No new example; existing contract unchanged.
  • All CIs are green? The three external statuses have succeeded: CircleCI documentation build and artifact, and AppVeyor. AppVeyor build 55007246 tested the PR merge for head 9e73a85ce28c698c470d75551922d41e501a1740 on Windows/Python 3.13 and reports 160 passed in 366.91s (https://ci.appveyor.com/project/AtsushiSakai/pythonrobotics/builds/55007246). GitHub Actions Linux_CI, Windows_CI, MacOS_CI and CodeQL have not run: all four await maintainer approval. This checklist remains unchecked until those workflows complete. The local-test limitations above still apply.

@yunyv
yunyv marked this pull request as ready for review November 3, 2026 12:49

This branch has not been deployed

No deployments
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.

1 participant