OptaPlanner EOL notice - Timefold offers support
November 8th, 2023

Timefold Solver Community Edition 1.4.0

It's time for another monthly release of Timefold Solver Community Edition!

Featured Update - JSON-friendly score explanations:

  • Even wondered what does a score of -3hard/-5soft actually mean? Wonder no more!
  • Timefold Solver can now break down the score all the way to individual constraint matches.
  • It can also compute differences between any two solutions.
  • And finally, it can easily send them over the wire from the backend to the frontend.

Furthermore you can now generate a Spring Boot app and include the Timefold Solver dependency without it failing if there's no @PlanningSolution or @PlanningEntity classes.

On top of that, we have the usual assortment of performance improvements, bug fixes and dependency upgrades.


🚀 Features

  • JSON-friendly score analysis (#336), closes #336

🐛 Fixes

  • Do not fail-fast in spring boot extension if there no @PlanningSolution or @PlanningEntity classes (#397), closes #388 #397
  • depend on spring-boot-starter in the starter module
  • invalidate computed variables in Project Job Scheduling correctly (#371), closes #371
  • Enable constraint matching when metrics dictate

🔄️ Changes

  • replace stream with a loop on the hot path
  • Implement node sharing for groupBy (#401), closes #401
  • Implement node sharing for expand, map and flattenLast (#376), closes #376
  • Implement node sharing for ifExists and ifNotExists (#375), closes #375
  • Use lambda constants in CS to allow for more node sharing (#374), closes #374

🧰 Tasks

  • Move implementations of Collectors outside of ConstraintCollectors (#392), closes #392
  • rationalize Spring dependencies
  • don't use Javadoc tags in Spring Boot properties, closes #387
  • remove trailing newlines from exception messages

📝 Documentation

  • move information about Enterprise Edition to a new section (#404), closes #404


We'd like to thank the following people for their contributions:

Timefold Solver Community Edition is an open source project, and you are more than welcome to contribute as well! For more, see Contributing.

Should your business need to scale to truly massive data sets or require enterprise-grade support, check out Timefold Solver Enterprise Edition.

How to use Timefold Solver

To see Timefold Solver in action, check out the quickstarts.

With Maven or Gradle, just add the ai.timefold.solver : timefold-solver-core : 1.4.0 dependency in your pom.xml to get started.

You can also import the Timefold Solver Bom (ai.timefold.solver : timefold-solver-bom : 1.4.0) to avoid duplicating version numbers when adding other Timefold Solver dependencies later on.

Additional notes

The changelog and the list of contributors above are automatically generated. They exclude contributions to certain areas of the repository, such as CI and build automation. This is done for the sake of brevity and to make the user-facing changes stand out more.

Back to overview