Skip to content

Timefold Solver 1.24.0

Latest
Compare
Choose a tag to compare
@timefold-release timefold-release released this 08 Jul 11:29

Summertime is here, but we're certainly not taking a break. Today's release brings another dose of features and improvements to your favorite solver!

Featured update: Combine Basic and List variables

In your models, it is now possible to use both a @PlanningVariable and @PlanningListVariable at the same time! This is a big step forward for the solver, and one less reason to still use chained variables.

Progress on Declarative Shadow Variables

Two releases ago, we introduced Declarative Shadow Variables as a preview feature. In this release, we are bringing significant performance improvements, making it run as fast or even faster than the equivalent implementations using variable listeners. We are working hard to finalize this feature, but there is still more to come before we do that - stay tuned!

Changelog

🚀 Features

🐛 Fixes

  • 1356100 Fail fast if @ShadowVariableLooped is reference from a @ShadowSources
  • d052cd9 Fail-fast on @PlanningEntity being used in a @ProblemFactCollectionProperty (#1646)
  • 4b57022 Improve error message when a declarative supplier is missing in Quarkus (#1687)
  • 2c9bb0a Process each entity only once and in topological order (#1662)
  • d253438 DSV graph should notify updater when cycles are formed or broken

🔄️ Changes

  • 6c3c668 Use a single node to represent multiple shadow variables in graphs (#1673)
  • 81374a6 Optimize DSV when used in simpler use cases (#1659)
  • b2e3eed Faster cloning (#1650)
  • fe93472 Revert "fix: clone the solution before sending it to the consumer"

🧰 Tasks

  • d2b2406 Prevent NPE in solution annotation processing
  • 204786b Quarkus extension gets a non-transparent icon

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, add the ai.timefold.solver : timefold-solver-core : 1.24.0 dependency in your pom.xml to get started.

You can also import the Timefold Solver Bom (ai.timefold.solver : timefold-solver-bom : 1.24.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.
It excludes 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.