What a packed release! We're bringing improvements both big and small, as well as important bugfixes and speedups.
Constrains streams can now be precomputed
In certain exceptional cases where the stream does not depend on any variables, your constraint can now be precomputed, improving the solver's performance when operating on static data.
Sorting of entities and values in construction heuristics
We have long since supported custom sorting for entities and values in construction heuristics, but only for the basic variable. In this release, we are making the same possible for list variables as well. We recommend you experiment with all kinds of input sorting, because it can greatly improve the results you can get out of the construction heuristics.
Quickstarts get a visual refresh
Timefold Solver gets a new logo and with it, the quickstarts got a slightly cleaner, more unified look. Have you seen our quickstarts lately?
Deprecations galore
As we continue evolving the solver, we need to make changes to the solver API. Most often, these changes are backwards compatible - we deprecate the old APIs and introduce new ones on top. In this release, we have made a whole bunch of such changes, and we encourage you to check our upgrade recipe.
Changelog
🚀 Features
- 298d4ed Add a producer id to BestSolutionChangedEvent (#1913)
- d890863 Add hasNoImpact() to ConstraintVerifier assertions (#1909)
- 9eb30e8 Enable sorting for CH with list variable (#1833)
- dfd8e34 Allow caching the results of an unfiltered constraint stream (#1853)
🐛 Fixes
🧰 Tasks
- 5899f4f Improve memory consumption of reachable values structure (#1917)
- 3531f19 Deprecate PiggybackShadowVariable
📝 Documentation
Contributors
We'd like to thank the following people for their contributions:
- Christopher Chianelli (@Christopher-Chianelli)
- Tom Cools (@TomCools)
- Diallo Francis-Patrick (@PatrickDiallo23)
- 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.
Timefold Solver Enterprise Edition requires a license.
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.28.0 dependency in your pom.xml to get started.
You can also import the Timefold Solver Bom (ai.timefold.solver : timefold-solver-bom : 1.28.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.