June 10th, 2025

Timefold Solver 1.23.0

This release is packed full of bugfixes and assorted small improvements. We've been hard at work improving the recently introduced Declarative Shadow Variables - it now uses significantly less memory, runs faster and is overall much more stable. It is now significantly easier to test these shadow variables as well! They remain a preview feature, but we're making good progress towards full support and your feedback helps us get there sooner, so keep it coming!

Changelog

🚀 Features

  • Testing support for Declarative Shadow Variables (#1571)

🐛 Fixes

  • Benchmarker best score graph no longer empty (#1636)
  • Update looped status of entity even if no variables changed
  • Generate member accessors for referenced collection element members in Quarkus (#1603)
  • Clone the solution before sending it to the consumer
  • Avoid more situations where a K-OPT cannot be found
  • Enforce phase and solver terminations
  • Added missing getter and setter for the problemFile in the FileProblemProvider
  • Support MoveCountPerTypeProblemStatistic in JAXB mapping
  • AbstractTimeLineChartProblemStatistic to not throw NPE when unmarshalled by JAXB (#1551)
  • Filtering move selector honors the phase termination (#1608)
  • Support accessing non-declarative shadow variables from a fact (#1621)
  • Allow using declarative shadow variables on extended entities
  • Allow ShadowVariableLooped field and supplier method to be private (#1572)

🔄️ Changes

  • Improve many aspects of DSV performance (#1592), closes #1592

🧰 Tasks

  • Enforce consistency between variable getters and setters
  • Fail fast if variable path ends on a fact
  • Support pinning in Move Streams (#1560)

📝 Documentation

  • Fix an include in Quarkus VRP guide
  • Improve documentation on configuration of preview features

Contributors

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

  • Christopher Chianelli (@Christopher-Chianelli)
  • Tom Cools (@TomCools)
  • Jenne De Bleser (@jennedebleser)
  • Frederico Gonçalves (@zepfred)
  • Magnus Kjeldsen (@Magnusrk)
  • 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.23.0 dependency in your pom.xml to get started.

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