Skip to content

0.8.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@sdcondon sdcondon released this 31 Jan 16:21
· 144 commits to main since this release

Breaking changes:

  • Renamed StateSpaceSearch to StateSpaceAStarPlanner and GoalSpaceSearch to GoalSpaceAStarPlanner - for clarity.
  • The various IPlanningTask implementations are no longer public inner types of their respective planners.
  • Planning.Search.IStrategy renamed to ICostStrategy, for clarity. Considered "ICostProvider", but decided that perhaps implies that it provides only the costs themselves, and not also cost estimates. Also some renaming for consistency in the face of this change:
    • The Planning.Search.Strategies namespace renamed to CostStrategies
    • DelegateStrategy renamed to DelegateCostStrategy
  • PlanningGraph's API has changed significantly - mostly for robustness. It was far too easy to write fragile code against it before - because whether you'd called GetLevel enough times for it to level off was something you needed to consider. No longer. Also lifted the public inner types (Level, PropositionNode, ActionNode) out of PlanningGraph. There's no need for them to be inner types (doing this unecessarily is a bad habit of mine..).

Non-breaking changes:

  • A number of significant PlanningGraph fixes.
  • Added GraphPlanPlanner and GraphPlanPlanningTask. In so doing, realised that "Artifical Intelligence: A Modern Approach" really isn't a good resource for GraphPlan - leaves so much out that it's downright misleading in places. This implementation is more influenced by "Automated Planning: Theory and Practice".
  • Made all ...PlanningTask ctors public. There's no reason consumers shouldn't be allowed to instantiate these directly, as opposed to going via IPlanner - so might as well empower people.
  • Plan.Steps prop changed from an IReadOnlyCollection to an ImmutableList (should be non-breaking, since ImmutableList implements IReadOnlyCollection).
  • Added TemplatePlanningTask - just a handy base class for planning tasks.
  • Some performance improvements to transformations, by confronting my LINQ addiction.
  • As ever, continuous improvements to XML docs, as well as various comment improvements for those that are debugging.
  • Fixed self-closing para tags in XML documentation - which aren't valid (and, while fine for VS, don't get rendered "correctly" in FuGet explorer).
  • Package description typo fix.
  • Some relatively unimportant dependency updates