Skip to content

Timefold Solver 1.20.0

Compare
Choose a tag to compare
@timefold-release timefold-release released this 11 Mar 12:23

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

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

🐛 Fixes

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

🧰 Tasks

Contributors

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.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.