July 8th, 2025

Timefold Solver 1.24.0

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

  • Enable mixed models (#1645)

🐛 Fixes

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

🔄️ Changes

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

🧰 Tasks

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

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

  • Christopher Chianelli (@Christopher-Chianelli)
  • Tom Cools (@TomCools)
  • Frederico Gonçalves (@zepfred)
  • Lukáš Petrovický (@triceo)

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.

Back to overview

Stay In-The-Know

Sign Up for Our Newsletter

We care about the protection of your data. Read our Privacy Policy.

Timefold

Timefold is an AI planning optimization platform, built on powerful open-source solver technology, enabling software builders to tackle real-world, complex and high-impact operational planning problems. It delivers significant economic value in optimization operations like extended VRP, maintenance scheduling, field service routing, task sequencing, etc.

© 2025 Timefold BV