Skip to content

Releases: bsommerfeld/pathetic

Release 5.4.6

11 Feb 15:18

Choose a tag to compare

Build Success Tests Succeeded

Changelog

Added

  • PathfindingSearch#done() - check if search is complete
  • PathfindingSearch#resultBlocking() - block until result is available
  • PathfindingSearch#result() - get result if available

Changed

  • PathfinderSearchImpl is now package-private

Fixed

Removed

  • JetBrains annotations dependency

Release 5.4.5

30 Jan 00:36

Choose a tag to compare

Build Success Tests Succeeded

Changelog

Added

Changed

  • PathfindingSearch#exceptionally now accepts a Consumer instead of a Function
  • aborting the current pathfinding operation now triggers #orElse instead of #exceptionally and returns an ABORTED PathfindingResult
  • #abort now returns void

Fixed

  • added defensive cleanup for PathfindingSession
  • fixed issue with algorithm cleanup not being performed consistently
  • fixed abort behavior to ensure cooperative cancellation

Removed

Release 5.4.4

29 Jan 23:26

Choose a tag to compare

Build Success Tests Succeeded

Changelog

Added

  • add JetBrains annotations dependency
  • add pathfindingHooks to PathfinderConfiguration
  • introduced PathfindingSearch which represents a single search operation
  • introduced validationProcessors in PathfinderConfigurationBuilder
  • introduced costProcessors in PathfinderConfigurationBuilder

Changed

  • marked getEnvironmentContext Nullable in SearchContext
  • replaced CompletionStage return from Pathfinder with PathfindingSearch
  • simplified exception handling in AbstractPathfinder
  • aborting the pathfinding operation is now per-search

Fixed

Removed

  • deprecated nodeValidationProcessors in PathfinderConfigurationBuilder
  • deprecated nodeCostProcessors in PathfinderConfigurationBuilder
  • deprecated Pathfinder#registerPathfindingHooks

Release 5.4.3

28 Jan 17:36

Choose a tag to compare

Build Success Tests Succeeded

Changelog

5.4.3 is a cleanup release, focusing on code organization and deprecating outdated features.

Added

  • introduced .of(double, double, double) factory methods for PathVector and PathPosition
  • introduced Depth#value()
  • introduced Cost#value()

Changed

  • introduced MinHeap, Resizable, Siftable interfaces to abstract the heap implementations
  • extracted release workflow into own repository

Fixed

Removed

  • deprecated Depth#getValue()
  • deprecated Pathfinder#abort()
  • deprecated Cost#getValue()
  • ErrorLogger has been removed
  • tinylog dependencies have been removed
  • deprecated PathUtils
  • removed outdated jitpack.yml

Release 5.4.2

26 Jan 15:31

Choose a tag to compare

Build Success Tests Succeeded

Changelog

Added

  • .integration-tests module with pathfinding workflow tests
  • added JMH benchmarks for internal heaps

Changed

  • GridRegionData is now SpatialData
  • AStarPathfinder.PathfindingSession has been extracted

Fixed

  • ${revision} placeholder
  • prevent duplicate exception logging in async mode
  • added missing fastutil dependency classes

Removed

Release 5.4.1

08 Jan 23:55

Choose a tag to compare

Build Success Tests Succeeded

Changelog

Added

  • Update Dependencies Maven Configuration
  • Run Tests Maven Configuration
  • Build Jar Maven Configuration
  • A specialized, array-backed binary heap tailored for A*
  • Introduced overloaded getOffset(PathPosition) method in INeighborStrategy
  • Implemented support for reopening Closed Set nodes to handle inconsistent heuristics (configurable via reopenClosedNodes).

Changed

  • Revamp README for better engagement – add humor, benchmarks, and real-world demos to combat stagnation
  • optimized core data structures for reduced GC pressure and cleaned up legacy code
  • Switched internal Open Set implementation from Fibonacci to PrimitiveMinHeap.
  • ~3x to 4.5x faster pathfinding in benchmarks due to improved CPU cache locality.
  • Achieved true zero-allocation operations within the Open Set (eliminated millions of Node wrapper and Double boxing objects).
  • Renamed NodeCostProcessor -> CostProcessor
  • Renamed NodeValidationProcessor -> ValidationProcessor
  • Renamed NodeEvaluationContext -> EvaluationContext

Fixed

  • removed legacy lazy computing of hcost
  • Fixed subtle yet crucial a control flow bug where updates to nodes in the Open Set were ignored, ensuring the optimal path is always prioritized.

Removed

  • Several before deprecated Methods (see 5.4.0)
  • Tuple3 + Tests
  • ComputingCache + Tests
  • org.jheaps dependency
  • Experimental annotation

Release 5.4.0

30 Oct 13:09

Choose a tag to compare

Build Success Tests Succeeded

Changelog

Pathetic 5.4.0 is now available on Maven Central.

Added

  • Path has a new collect() method.
  • Added more tests to AStarPathfinderTest
  • Introduced PathUtils class
  • Introduced DistanceCalculator interface
  • Introduced PathfindingProgress class

Changed

  • Optimized tie-breaker calculations
  • Cost now only can be positive
  • PathImpl now delegates several functions to PathUtils class
  • Refactored heuristic implementations with DistanceCalculators

Fixed

  • Fixed SquaredHeuristicStrategy with now a matching squared manhattan, octile and heightDiff calculation which improved performance

Removed

  • Deprecated negativeCost configuration
  • Deprecated several specific distance calculations inside PathPosition
  • Several Path post-processing methods are now Deprecated and PathUtils should be used
  • Deprecated PathPosition#isInSameBlock

Release 5.3.2

10 Oct 07:03

Choose a tag to compare

Build Success Tests Succeeded

Changelog

Added

  • Added 3 tests for AStarPathfinder behavior

Changed

  • Small improvements for negative coordinates and cost comparison
  • AStarPathfinder is now final

Fixed

Removed

Release 5.3.1

23 Sep 05:37

Choose a tag to compare

Build Success Tests Succeeded

Changelog

Added

  • Added new factory method in PathfinderFactory with no arguments
  • PathfindingContext in PathfinderHook now contains the current PathPosition

Changed

Fixed

  • Fixed StackOverflow in ExpiringHashMap
  • Fixed validate transitions when updating existing nodes with better paths by @steveb05

Removed

  • Deprecated NATURAL and DIRECT HeuristicWeights has been removed

Release 5.3.0

15 Jul 14:27

Choose a tag to compare

Build Success Tests Succeeded

Changelog

Added

  • Added workflow to automate release descriptions
  • Added CHANGELOG.md to keep track of changes
  • Added tests for all util classes

Changed

  • Now using custom Iterables class instead of Guavas
  • Offset got replaced with a new INeighborStrategy to provide more flexible offsets and control over the path density
  • HeuristicMode got replaced with IHeuristicStrategy, allowing the user more freedom regarding custom heuristics
  • Moved heuristic API to the api module.

Fixed

  • Fixed PathPosition toString formatting by @steveb05
  • Fixed initial node processing by @steveb05

Removed

  • Removed HeuristicMode
  • Removed Offset