March 11th, 2025

Timefold Solver 1.20.0

Spring is in the air and Timefold Solver 1.20.0 brings some spring cleanup! We have fixed some severe bugs and also made numerous improvements to our documentation. One change stands out among others though:

Some score assertions now enabled by default

We noticed that some of our users have score corruptions in their code without even knowing. Score corruption is a serious issue affecting the quality of your solutions to the point not being usable in practice. We have therefore enabled some very basic score corruption checks at the end of every solver phase - if your solver suddenly starts throwing exceptions after upgrading, it is to let you know that you have a dangerous error in your implementation and should look into fixing it.

The new default environment mode is PHASE_ASSERT. Users who wish to ignore score corruptions may switch to environment mode NO_ASSERT (formerly known as REPRODUCIBLE) which will restore the original behavior. Only do so at your own risk - instead, we recommend figuring out the root cause of your problem, perhaps with the help of our lovely community.

Changelog

🚀 Features

  • Allow phase-level terminations on solver level (#1431)

🐛 Fixes

  • Improve thread safety around problem changes (#1439)
  • Do not call variable listeners when the solution is in an inconsistent state in undo moves (#1438)
  • Don't terminate if a value can still be unassigned (#1395)

🧰 Tasks

  • Fail fast when score corruption detected (#1411)

Contributors

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

  • Christopher Chianelli (@Christopher-Chianelli)
  • Nathan Colgate (@nathancolgate)
  • Tom Cools (@TomCools)
  • Frederico Gonçalves (@zepfred)
  • Lukáš Petrovický (@triceo)
  • Phạm Trọng Thắng (@phamtrongthang123)

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.20.0 dependency in your pom.xml to get started.

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