Timefold Solver 2.1.0
With Timefold Solver 2.1.0, we return to a predictable release schedule. We have fixed some issues that slipped through the cracks of the major release, made more tweaks to multi-threaded solving, and improved our documentation.
New fail-fast
This release also add a new fail-fast, detecting a severe user error. The solver will newly fail in situations where the user has erroneously provided duplicate instances of planning entities or problem facts. This issue would not announce itself in any way, but it would silently result in inaccurate or unexpected solver results.
If your planning solution is not correct, you will see an exception with a message such as The fact ... was already inserted, so it cannot insert again. To resolve, make sure your @PlanningEntityCollectionProperty and @ProblemFactCollectionProperty fields do not include any two objects which equals() one another.
Changelog
🐛 Fixes
- entities use equality comparison (#2301)
- use context class loader, then parent in GIZMO (#2284)
- add missing rewrite scripts
- fix value-range validation with null values (#2300)
- split random at the start of step (#2259)
🔄️ Changes
- improve performance of ConstraintCollectors.toList() (#2285)
📝 Documentation
- clarify CH need for Neighborhoods API (#2288)
- integration page improvements (#2283)
- link to plus enterprise pages (#2258)
Contributors
We'd like to thank the following people for their contributions:
- Christopher Chianelli (@Christopher-Chianelli)
- Tom Cools (@TomCools)
- Frederico Gonçalves (@zepfred)
- Jan Willem Keizer (@janwillemkeizer)
- 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.
Timefold also offers commercial editions of the solver, which include additional features such as explainability, the ability to scale out to the biggest datasets, and enterprise-grade support. Find out which edition is right for you.
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 : 2.1.0 dependency in your pom.xml to get started.
You can also import the Timefold Solver Bom (ai.timefold.solver : timefold-solver-bom : 2.1.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.