ros-foxy-py-trees (2.1.6-1focal) focal; urgency=high

  * [tests] mypy conformance,  #327 <https://github.com/splintered-reality/py_trees/pull/327>
  * [composites] show ghost states for sequence children,  #330 <https://github.com/splintered-reality/py_trees/pull/330> (reverts behaviour introduced in #325 <https://github.com/splintered-reality/py_trees/pull/325>)

 -- Daniel Stonier <d.stonier@gmail.com>  Mon, 31 May 2021 04:00:00 -0000

ros-foxy-py-trees (2.1.5-1focal) focal; urgency=high

  * [composites] sequences w/o memory, #325 <https://github.com/splintered-reality/py_trees/pull/325>
  * [composites] selectors with memory, #324 <https://github.com/splintered-reality/py_trees/pull/324>
  * [display] unicode trees are unicode, not ascii #324 <https://github.com/splintered-reality/py_trees/pull/324>

 -- Daniel Stonier <d.stonier@gmail.com>  Sun, 09 May 2021 04:00:00 -0000

ros-foxy-py-trees (2.1.4-1focal) focal; urgency=high

  * [behaviours] added BlackboardToStatus, #320 <https://github.com/splintered-reality/py_trees/pull/320>
  * [idioms] bugfix lost append in blackboard names for either_or, #319 <https://github.com/splintered-reality/py_trees/pull/319>
  * [docs] contributing guidelines added, #315 <https://github.com/splintered-reality/py_trees/pull/315>

 -- Daniel Stonier <d.stonier@gmail.com>  Wed, 24 Feb 2021 05:00:00 -0000

ros-foxy-py-trees (2.1.3-1focal) focal; urgency=high

  * [blackboard] convenience absolute_name() api for blackboard clients, #306 <https://github.com/splintered-reality/py_trees/pull/306>

 -- Daniel Stonier <d.stonier@gmail.com>  Sun, 13 Dec 2020 05:00:00 -0000

ros-foxy-py-trees (2.1.2-1focal) focal; urgency=high

  * [sequences] bugfix current child setting whilst moving through children, #304 <https://github.com/splintered-reality/py_trees/pull/304>

 -- Daniel Stonier <d.stonier@gmail.com>  Thu, 05 Nov 2020 05:00:00 -0000

ros-foxy-py-trees (2.1.1-1focal) focal; urgency=high

  * [behaviours] generators for variable values in SetBlackboardVariable, #300 <https://github.com/splintered-reality/py_trees/pull/300>

 -- Daniel Stonier <d.stonier@gmail.com>  Tue, 11 Aug 2020 04:00:00 -0000

ros-foxy-py-trees (2.1.0-1focal) focal; urgency=high

  * [behaviours] CheckBlackboardVariableValue, WaitForBlackboardVariableValue use comparison expressins, #296 <https://github.com/splintered-reality/py_trees/pull/296>
  * [idioms] eternal_guard uses blackboard_names (previously blackboard_name_prefix), #295 <https://github.com/splintered-reality/py_trees/pull/295>
  * [composites] Chooser deprecated, #293 <https://github.com/splintered-reality/py_trees/pull/293>
  * [composites] chain-able add_children for all composites, #290 <https://github.com/splintered-reality/py_trees/pull/290>

 -- Daniel Stonier <d.stonier@gmail.com>  Mon, 20 Jul 2020 04:00:00 -0000

ros-foxy-py-trees (2.0.16-1focal) focal; urgency=high

  * [behaviours] generators for variable values in SetBlackboardVariable, #300 <https://github.com/splintered-reality/py_trees/pull/300>

 -- Daniel Stonier <d.stonier@gmail.com>  Tue, 11 Aug 2020 04:00:00 -0000

ros-foxy-py-trees (2.0.15-1focal) focal; urgency=high

  * [composites] fix current_child problems on dynamic child insertion/removal, #289 <https://github.com/splintered-reality/py_trees/pull/289>

 -- Daniel Stonier <d.stonier@gmail.com>  Thu, 14 May 2020 04:00:00 -0000

ros-foxy-py-trees (2.0.14-1focal) focal; urgency=high

  * [blackboard] bugfix metadata not created on static set, #286 <https://github.com/splintered-reality/py_trees/pull/286>

 -- Daniel Stonier <d.stonier@gmail.com>  Sun, 26 Apr 2020 04:00:00 -0000

ros-foxy-py-trees (2.0.13-1focal) focal; urgency=high

  * [composites] parallel bugfix to invalidate correctly, #285 <https://github.com/splintered-reality/py_trees/pull/285>

 -- Daniel Stonier <d.stonier@gmail.com>  Tue, 24 Mar 2020 04:00:00 -0000

ros-foxy-py-trees (2.0.12-1focal) focal; urgency=high

  * [idioms] the either_or pattern, designed to replace the Chooser, #283 <https://github.com/splintered-reality/py_trees/pull/283>
  * [behaviours] TickCounter, a timer based on tree ticks, #283 <https://github.com/splintered-reality/py_trees/pull/283>
  * [behaviours] CheckBlackboardVariableValues, logical checks across multiple values, #283 <https://github.com/splintered-reality/py_trees/pull/283>
  * [common] ComparisonExpression, a more concise way of storing checkers, #283 <https://github.com/splintered-reality/py_trees/pull/283>
  * [composites] protect against adding a child to multiple parents, #281 <https://github.com/splintered-reality/py_trees/pull/281>

 -- Daniel Stonier <d.stonier@gmail.com>  Tue, 10 Mar 2020 04:00:00 -0000

ros-foxy-py-trees (2.0.11-1focal) focal; urgency=high

  * [display] completely remove blackboard variables from the dot layout, #280 <https://github.com/splintered-reality/py_trees/pull/280>

 -- Daniel Stonier <d.stonier@gmail.com>  Sun, 01 Mar 2020 05:00:00 -0000

ros-foxy-py-trees (2.0.10-1focal) focal; urgency=high

  * [trees] setup timeout error with last behaviour name included in the error message, #279 <https://github.com/splintered-reality/py_trees/pull/279>
  * [blackboard] rooted variables in namespaced clients working as designed, fixed docs, #277 <https://github.com/splintered-reality/py_trees/pull/277>

 -- Daniel Stonier <d.stonier@gmail.com>  Thu, 27 Feb 2020 05:00:00 -0000

ros-foxy-py-trees (2.0.9-1focal) focal; urgency=high

  * [demos] display modes demonstrating usage of various options, #275 <https://github.com/splintered-reality/py_trees/pull/275>
  * [display] enforce left to right ordering of children in dot graphs

 -- Daniel Stonier <d.stonier@gmail.com>  Fri, 14 Feb 2020 05:00:00 -0000

ros-foxy-py-trees (2.0.8-1focal) focal; urgency=high

  * [display] bugfix and use elipsis on ascii visited only display modes, #273 <https://github.com/splintered-reality/py_trees/pull/273>

 -- Daniel Stonier <d.stonier@gmail.com>  Sat, 01 Feb 2020 05:00:00 -0000

ros-foxy-py-trees (2.0.7-1focal) focal; urgency=high

  * [display] option for only visited behaviours in text tree snapshot displays, #272 <https://github.com/splintered-reality/py_trees/pull/272>

 -- Daniel Stonier <d.stonier@gmail.com>  Fri, 24 Jan 2020 05:00:00 -0000

ros-foxy-py-trees (2.0.5-1focal) focal; urgency=high

  * [display] enum agnostic display for local and remote activity view displays

 -- Daniel Stonier <d.stonier@gmail.com>  Wed, 25 Dec 2019 05:00:00 -0000

ros-foxy-py-trees (2.0.4-1focal) focal; urgency=high

  * [display] optional show_title in unicode_blackboard_activity_stream

 -- Daniel Stonier <d.stonier@gmail.com>  Mon, 25 Nov 2019 05:00:00 -0000

ros-foxy-py-trees (2.0.3-1focal) focal; urgency=high

  * [trees] revert to using user signals if available to avoid shenanigans with SIGINT, #264 <https://github.com/splintered-reality/py_trees/pull/264>
  * [trees] play nicely, reset signal handlers after setup, #262 <https://github.com/splintered-reality/py_trees/pull/262>
  * [visitors] bugfix the snapshot visitor to look for exclusive write keys as well

 -- Daniel Stonier <d.stonier@gmail.com>  Sun, 24 Nov 2019 05:00:00 -0000

ros-foxy-py-trees (2.0.1-1focal) focal; urgency=high

  * [blackboard] static methods have a namespace too (root), use absolute names, #261 <https://github.com/splintered-reality/py_trees/pull/261>
  * [blackboard] do not register keys on the client when xclusive write aborts the process, #261 <https://github.com/splintered-reality/py_trees/pull/261>

 -- Daniel Stonier <d.stonier@gmail.com>  Tue, 19 Nov 2019 05:00:00 -0000

ros-foxy-py-trees (1.3.3-1focal) focal; urgency=high

  * [blackboard] client ``Blackboard.unregister_key()`` method

 -- Daniel Stonier <d.stonier@gmail.com>  Tue, 15 Oct 2019 04:00:00 -0000

ros-foxy-py-trees (1.3.2-1focal) focal; urgency=high

  * [blackboard] global ``Blackboard.clear()`` method

 -- Daniel Stonier <d.stonier@gmail.com>  Tue, 15 Oct 2019 04:00:00 -0000

ros-foxy-py-trees (1.3.1-1focal) focal; urgency=high

  * [blackboard] don't do any copying, just pass handles around, #239 <https://github.com/splintered-reality/py_trees/pull/239>
  * [blackboard] client ``exists()`` method, #238 <https://github.com/splintered-reality/py_trees/pull/238>
  * [blackboard] global ``Blackboard.set()`` method
  * [blackboard] client ``Blackboard.unset()`` method, #239 <https://github.com/splintered-reality/py_trees/pull/239>

 -- Daniel Stonier <d.stonier@gmail.com>  Tue, 15 Oct 2019 04:00:00 -0000

ros-foxy-py-trees (1.2.2-1focal) focal; urgency=high

  * [trees] standalone ``setup()`` method with timer for use on unmanaged trees, #198 <https://github.com/splintered-reality/py_trees/pull/198>
  * [examples] fix api in ``skeleton_tree.py``,  #199 <https://github.com/splintered-reality/py_trees/pull/199>

 -- Daniel Stonier <d.stonier@gmail.com>  Tue, 06 Aug 2019 04:00:00 -0000

ros-foxy-py-trees (1.2.1-1focal) focal; urgency=high

  * [decorators] ``StatusToBlackboard`` reflects the status of it's child to the blackboard, #195 <https://github.com/splintered-reality/py_trees/pull/195>
  * [decorators] ``EternalGuard`` decorator that continuously guards a subtree (c.f. Unreal conditions), #195 <https://github.com/splintered-reality/py_trees/pull/195>
  * [idioms] ``eternal_guard`` counterpart to the decorator whose conditions are behaviours, #195 <https://github.com/splintered-reality/py_trees/pull/195>

 -- Daniel Stonier <d.stonier@gmail.com>  Tue, 21 May 2019 04:00:00 -0000

ros-foxy-py-trees (1.1.0-1focal) focal; urgency=high

  **Breaking API**
  * [display] print_ascii_tree -> ascii_tree, #178 <https://github.com/splintered-reality/py_trees/pull/178>.
  * [display] generate_pydot_graph -> dot_graph, #178 <https://github.com/splintered-reality/py_trees/pull/178>.
  * [trees] tick_tock(sleep_ms, ..) -> tick_tock(period_ms, ...),  #182 <https://github.com/splintered-reality/py_trees/pull/182>.
  **New Features**
  * [trees] add missing ``add_visitor()`` method
  * [trees] flexible ``setup()`` for children via kwargs
  * [trees] convenience method for ascii tree debugging
  * [display] highlight the tip in ascii tree snapshots
  **Bugfixes**
  * [trees] threaded timers for setup (avoids multiprocessing problems)
  * [behaviour|composites] bugfix tip behaviour, add tests
  * [display] correct first indent when non-zero in ascii_tree
  * [display] apply same formatting to root as children in ascii_tree

 -- Daniel Stonier <d.stonier@gmail.com>  Tue, 19 Mar 2019 04:00:00 -0000

ros-foxy-py-trees (1.0.6-1focal) focal; urgency=high

  * [decorators] fix missing root feedback message in ascii graphs

 -- Daniel Stonier <d.stonier@gmail.com>  Wed, 06 Mar 2019 05:00:00 -0000

ros-foxy-py-trees (1.0.5-1focal) focal; urgency=high

  * [decorators] fix timeout bug that doesn't respect a child's last tick

 -- Daniel Stonier <d.stonier@gmail.com>  Thu, 28 Feb 2019 05:00:00 -0000

ros-foxy-py-trees (1.0.4-1focal) focal; urgency=high

  * [display] drop spline curves, it's buggy with graphviz 2.38

 -- Daniel Stonier <d.stonier@gmail.com>  Tue, 26 Feb 2019 05:00:00 -0000

ros-foxy-py-trees (1.0.3-1focal) focal; urgency=high

  * [visitors] winds of change visitor and logging demo

 -- Daniel Stonier <d.stonier@gmail.com>  Wed, 13 Feb 2019 05:00:00 -0000

ros-foxy-py-trees (1.0.2-1focal) focal; urgency=high

  * [console] fallbacks for unicode chars when (UTF-8) encoding cannot support them

 -- Daniel Stonier <d.stonier@gmail.com>  Wed, 13 Feb 2019 05:00:00 -0000

ros-foxy-py-trees (1.0.1-1focal) focal; urgency=high

  * [trees] don't use multiprocess on setup if not using timeouts

 -- Daniel Stonier <d.stonier@gmail.com>  Mon, 12 Feb 2018 05:00:00 -0000

ros-foxy-py-trees (1.0.0-1focal) focal; urgency=high

  **Breaking API**
  * [behaviour] setup() no longer returns a boolean, catch exceptions instead, #143 <https://github.com/stonier/py_trees/issues/143>.
  * [behaviour] setup() no longer takes timeouts, responsibility moved to BehaviourTree, #148 <https://github.com/stonier/py_trees/issues/148>.
  * [decorators] new-style decorators found in py_trees.decorators
  * [decorators] new-style decorators stop their running child on completion (SUCCESS||FAILURE)
  * [decorators] old-style decorators in py_trees.meta deprecated
  **New Features**
  * [blackboard] added a method for clearing the entire blackboard (useful for tests)
  * [composites] raise TypeError when children's setup methods don't return a bool (common mistake)
  * [composites] new parallel policies, SuccessOnAll, SuccessOnSelected
  * [decorators] oneshot policies for activating on completion or *successful* completion only
  * [meta] behaviours from functions can now automagically generate names

 -- Daniel Stonier <d.stonier@gmail.com>  Fri, 18 Jan 2019 05:00:00 -0000

ros-foxy-py-trees (0.8.0-1focal) focal; urgency=high

  * [infra] shortcuts to types in __init__.py removed (PR117 <https://github.com/stonier/py_trees/pull/117>)
  * [bugfix] python3 rosdeps
  * [idioms] pick_up_where_you_left_off added

 -- Daniel Stonier <d.stonier@gmail.com>  Thu, 18 Oct 2018 04:00:00 -0000

ros-foxy-py-trees (0.7.5-1focal) focal; urgency=high

  * [idioms] oneshot added
  * [bugfix] properly set/reset parents when replacing/removing children in composites

 -- Daniel Stonier <d.stonier@gmail.com>  Wed, 10 Oct 2018 04:00:00 -0000

ros-foxy-py-trees (0.7.0-1focal) focal; urgency=high

  * [announce] python3 only support from this point forward
  * [announce] now compatible for ros2 projects

 -- Daniel Stonier <d.stonier@gmail.com>  Thu, 27 Sep 2018 04:00:00 -0000

ros-foxy-py-trees (0.6.5-1focal) focal; urgency=high

  * [bugfix] pick up missing feedback messages in inverters
  * [bugfix] eliminate costly/spammy blackboard variable check feedback message

 -- Daniel Stonier <d.stonier@gmail.com>  Wed, 19 Sep 2018 04:00:00 -0000

ros-foxy-py-trees (0.6.4-1focal) focal; urgency=high

  * [bugfix] replace awkward newlines with spaces in ascii trees

 -- Daniel Stonier <d.stonier@gmail.com>  Wed, 19 Sep 2018 04:00:00 -0000

ros-foxy-py-trees (0.6.3-1focal) focal; urgency=high

  * [bugfix] don't send the parellel's status to running children, invalidate them instead

 -- Daniel Stonier <d.stonier@gmail.com>  Tue, 04 Sep 2018 04:00:00 -0000

ros-foxy-py-trees (0.6.2-1focal) focal; urgency=high

  * [bugfix] oneshot now reacts to priority interrupts correctly

 -- Daniel Stonier <d.stonier@gmail.com>  Fri, 31 Aug 2018 04:00:00 -0000

ros-foxy-py-trees (0.6.1-1focal) focal; urgency=high

  * [bugfix] oneshot no longer permanently modifies the original class

 -- Daniel Stonier <d.stonier@gmail.com>  Mon, 20 Aug 2018 04:00:00 -0000

ros-foxy-py-trees (0.6.0-1focal) focal; urgency=high

  * [infra] python 2/3 compatibility

 -- Daniel Stonier <d.stonier@gmail.com>  Tue, 15 May 2018 04:00:00 -0000

ros-foxy-py-trees (0.5.10-1focal) focal; urgency=high

  * [meta] add children monkeypatching for composite imposters
  * [blackboard] check for nested variables in WaitForBlackboard

 -- Daniel Stonier <d.stonier@gmail.com>  Sat, 17 Jun 2017 04:00:00 -0000

ros-foxy-py-trees (0.5.9-1focal) focal; urgency=high

  * [docs] bugfix image links and rewrite the motivation

 -- Daniel Stonier <d.stonier@gmail.com>  Sat, 25 Mar 2017 04:00:00 -0000

ros-foxy-py-trees (0.5.8-1focal) focal; urgency=high

  * [infra] setup.py tests_require, not test_require

 -- Daniel Stonier <d.stonier@gmail.com>  Sun, 19 Mar 2017 04:00:00 -0000

ros-foxy-py-trees (0.5.7-1focal) focal; urgency=high

  * [infra] update maintainer email

 -- Daniel Stonier <d.stonier@gmail.com>  Wed, 01 Mar 2017 05:00:00 -0000

ros-foxy-py-trees (0.5.5-1focal) focal; urgency=high

  * [docs] many minor doc updates
  * [meta] bugfix so that imposter now ticks over composite children
  * [trees] method for getting the tip of the tree
  * [programs] py-trees-render program added

 -- Daniel Stonier <d.stonier@gmail.com>  Wed, 01 Mar 2017 05:00:00 -0000

ros-foxy-py-trees (0.5.4-1focal) focal; urgency=high

  * [infra] handle pypi/catkin conflicts with install_requires

 -- Daniel Stonier <d.stonier@gmail.com>  Wed, 22 Feb 2017 05:00:00 -0000

ros-foxy-py-trees (0.5.2-1focal) focal; urgency=high

  * [docs] disable colour when building
  * [docs] sidebar headings
  * [docs] dont require project installation

 -- Daniel Stonier <d.stonier@gmail.com>  Wed, 22 Feb 2017 05:00:00 -0000

ros-foxy-py-trees (0.5.1-1focal) focal; urgency=high

  * [infra] pypi package enabled

 -- Daniel Stonier <d.stonier@gmail.com>  Tue, 21 Feb 2017 05:00:00 -0000

ros-foxy-py-trees (0.5.0-1focal) focal; urgency=high

  * [ros] components moved to py_trees_ros
  * [timeout] bugfix to ensure timeout decorator initialises properly
  * [docs] rolled over with napolean style
  * [docs] sphinx documentation updated
  * [imposter] make sure tip() drills down into composites
  * [demos] re-organised into modules

 -- Daniel Stonier <d.stonier@gmail.com>  Tue, 21 Feb 2017 05:00:00 -0000

ros-foxy-py-trees (0.4.0-1focal) focal; urgency=high

  * [trees] add pre/post handlers after setup, just in case setup fails
  * [introspection] do parent lookups so you can crawl back up a tree
  * [blackboard] permit init of subscriber2blackboard behaviours
  * [blackboard] watchers
  * [timers] better feedback messages
  * [imposter] ensure stop() directly calls the composited behaviour

 -- Daniel Stonier <d.stonier@gmail.com>  Fri, 13 Jan 2017 05:00:00 -0000

ros-foxy-py-trees (0.3.0-1focal) focal; urgency=high

  * ``failure_is_running decorator`` (meta).

 -- Daniel Stonier <d.stonier@gmail.com>  Thu, 25 Aug 2016 04:00:00 -0000

ros-foxy-py-trees (0.2.0-1focal) focal; urgency=high

  * do terminate properly amongst relevant classes
  * blackboxes
  * chooser variant of selectors
  * bugfix the decorators
  * blackboard updates on change only
  * improved dot graph creation
  * many bugfixes to composites
  * subscriber behaviours
  * timer behaviours

 -- Daniel Stonier <d.stonier@gmail.com>  Wed, 01 Jun 2016 04:00:00 -0000

ros-foxy-py-trees (0.1.2-1focal) focal; urgency=high

  * one shot sequences
  * abort() renamed more appropriately to stop()

 -- Daniel Stonier <d.stonier@gmail.com>  Mon, 16 Nov 2015 05:00:00 -0000

ros-foxy-py-trees (0.1.1-1focal) focal; urgency=high

  * lots of bugfixing stabilising py_trees for the spain field test
  * complement decorator for behaviours
  * dot tree views
  * ascii tree and tick views
  * use generators and visitors to more efficiently walk/introspect trees
  * a first implementation of behaviour trees in python

 -- Daniel Stonier <d.stonier@gmail.com>  Sat, 10 Oct 2015 04:00:00 -0000


