Skip to content

Timefold Solver 1.22.0

Compare
Choose a tag to compare
@timefold-release timefold-release released this 28 Apr 11:38

We're even more excited than usual to bring you this release. Sure, it has the usual fixes and improvements, but it also brings... drumroll please...

Declarative shadow variables (Preview)

We've heard from so many of you over the years that variable listeners are too complex. We've also heard that it's too hard to enforce before-after relationships between entities, such as when a job needs to happen after another one, or together with some other. Well, not anymore!

With declarative shadow variables, you can now define methods to compute values for individual shadow variables, and let the solver figure out the dependencies between them, what to call first and how to propagate the changes throughout the planning solution.

We have been working on this for months and we have verified this feature on several of our own planning problems. But before we set the API in stone, we want to hear from you. That's why we're making declarative shadow variables available as a preview feature, and we may still tweak parts of it based on your feedback. Check out the documentation, try replacing your variable listeners, and come talk to us with results - we're looking forward to hearing from you.

Changelog

🐛 Fixes

  • 5c48116 Use FIELD_OR_READ_METHOD member accessor type for declarative shadow variable calculator
  • b86edcb Do not enumerate constraint matches which do not differ
  • 4e192e5 Do not reset global terminations on phase level (#1509)

🧰 Tasks

📝 Documentation

  • 404455f Better explain the requirements for @PlanningId properties (#1529)

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

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