Timefold

Latest version: v1.20.1b0

Safety actively analyzes 722491 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 5

5.2.5

2.7.18

51a587a deps: bump version.io.quarkus to 2.16.12.Final

1.20.1

We interrupt your regularly scheduled programming to bring you a hotfix release.
If you experienced the solver no longer terminating early, this one is for you.

Changelog

🐛 Fixes
- 17c7556 phases should always check if the solver terminated early (1456)
- 90f02f4 match count in score analysis diff need not match the match list size (1454)

📝 Documentation
- 013aefd improve Diminished Returns termination doc (1448)

Contributors
We'd like to thank the following people for their contributions:
- Christopher Chianelli (Christopher-Chianelli )
- 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](https://github.com/TimefoldAI/timefold-solver/blob/main/CONTRIBUTING.adoc).

Should your business need to scale to truly massive data sets or require enterprise-grade support,
check out [_Timefold Solver Enterprise Edition_](https://timefold.ai/pricing).

How to use Timefold Solver

To see Timefold Solver in action, check out [the quickstarts](https://github.com/TimefoldAI/timefold-quickstarts).

[//]: (Ideally we'd show the pom.xml snippet, but a JReleaser bug would remove all whitespace from it.)
[//]: (See https://github.com/jreleaser/jreleaser/issues/1142)
With Maven or Gradle, add the `ai.timefold.solver : timefold-solver-core : 1.20.1` dependency in your `pom.xml` to get started.

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

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](https://docs.timefold.ai/timefold-solver/latest/using-timefold-solver/running-the-solver#environmentMode) 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](https://github.com/TimefoldAI/timefold-solver/discussions/categories/general).

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
- d8d5d55 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](https://github.com/TimefoldAI/timefold-solver/blob/main/CONTRIBUTING.adoc).

Should your business need to scale to truly massive data sets or require enterprise-grade support,
check out [_Timefold Solver Enterprise Edition_](https://timefold.ai/pricing).

How to use Timefold Solver

To see Timefold Solver in action, check out [the quickstarts](https://github.com/TimefoldAI/timefold-quickstarts).

[//]: (Ideally we'd show the pom.xml snippet, but a JReleaser bug would remove all whitespace from it.)
[//]: (See https://github.com/jreleaser/jreleaser/issues/1142)
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.

1.19.0

Valentine's day is still a few days away, but we're giving Timefold Solver care and attention every day! This release is rich with bug fixes and performance improvements, but also a long-awaited feature:

Featured update: Diminished Returns termination

Users of Timefold Solver have surely noticed that the ways of automatically terminating the solver leave something to be desired - they are either too hardware-dependent, or too problem-specific. We are now addressing this with the [Diminished Returns termination](https://docs.timefold.ai/timefold-solver/latest/optimization-algorithms/overview#diminishedReturnsTermination).

This new termination takes a look at how quickly the solver is improving, and only ends solving when the rate of improvement slows down to nearly nothing. This removes dependency on both hardware and problem sizes, and we recommend that you try it.

Changelog

🚀 Features
- 881f725 Allow SolverManager and SolverJob to submit problem changes in batches
- 6537668 Log a warning when CH terminated prematurely (1362)
- e94c4e8 Add Diminished Returns termination (1313)

🐛 Fixes
- f3b830c Only run local search when there is something to run
- a7c8374 Prevent possible concurrent modification of a collection (1370)
- e4805a8 Do not crash dev mode on empty app
- 9f53d4a Do not double count move evaluations
- 8ca431c Fix Python custom justifications with Decimal scores
- d769425 Use different SolverScope in the RuinRecreateMove nested phase

🔄️ Changes
- 292ea28 Remove certain polymorphic call sites (1341)
- c42acc7 Improve performance of Bavet indexing (1324)
- 3bf5d40 Improve tuple store performance (1329)

📝 Documentation
- bc77f8e Add diagrams for consecutive and connected collectors

Contributors
We'd like to thank the following people for their contributions:
- Christopher Chianelli (Christopher-Chianelli)
- Tom Cools (TomCools)
- Frederico Gonçalves (zepfred)
- Lukáš Petrovický (triceo)
- Geoffrey De Smet (ge0ffrey)
- Radovan Synek (rsynek)

_Timefold Solver Community Edition_ is an open source project, and you are more than welcome to contribute as well!
For more, see [Contributing](https://github.com/TimefoldAI/timefold-solver/blob/main/CONTRIBUTING.adoc).

Should your business need to scale to truly massive data sets or require enterprise-grade support,
check out [_Timefold Solver Enterprise Edition_](https://timefold.ai/pricing).

How to use Timefold Solver

To see Timefold Solver in action, check out [the quickstarts](https://github.com/TimefoldAI/timefold-quickstarts).

[//]: (Ideally we'd show the pom.xml snippet, but a JReleaser bug would remove all whitespace from it.)
[//]: (See https://github.com/jreleaser/jreleaser/issues/1142)
With Maven or Gradle, add the `ai.timefold.solver : timefold-solver-core : 1.19.0` dependency in your `pom.xml` to get started.

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

1.18.0

We welcome the new year with another release of Timefold Solver!

This time, it's mostly bugfixes and quality of life improvements, but we also introduce a [Solution Diff feature](https://docs.timefold.ai/timefold-solver/latest/constraints-and-score/understanding-the-score#solutionDiff) to let you easily check differences between two planning solutions. It starts out its life as a preview feature, so [let us know](https://github.com/TimefoldAI/timefold-solver/discussions) what you think!

Changelog

🚀 Features
- d79f75c Solution diff in SolutionManager (1312), closes 1312
- 4316a5e (Python) Support deep_planning_clone class decorator (1271), closes 1271

🐛 Fixes
- 3247e86 Ruin&Recreate score corruption and multi-threaded fixes (1320), closes 1320
- d3ae68f Use Named Solver fields and method parameters to determine list of solver names in Quarkus (1308), closes 1308
- 6271534 More accurate type hints for Python planning_entity

🔄️ Changes
- 415de75 Reduce the LocationInList allocation rate (1277), closes 1277


Contributors
We'd like to thank the following people for their contributions:
- Christopher Chianelli (Christopher-Chianelli )
- Frederico Gonçalves (zepfred )
- Jonathan Romano (luxaritas )
- Lukáš Petrovický (triceo )
- tomashauser (tomashauser )


_Timefold Solver Community Edition_ is an open source project, and you are more than welcome to contribute as well!
For more, see [Contributing](https://github.com/TimefoldAI/timefold-solver/blob/main/CONTRIBUTING.adoc).

Should your business need to scale to truly massive data sets or require enterprise-grade support,
check out [_Timefold Solver Enterprise Edition_](https://timefold.ai/pricing).

How to use Timefold Solver

To see Timefold Solver in action, check out [the quickstarts](https://github.com/TimefoldAI/timefold-quickstarts).

[//]: (Ideally we'd show the pom.xml snippet, but a JReleaser bug would remove all whitespace from it.)
[//]: (See https://github.com/jreleaser/jreleaser/issues/1142)
With Maven or Gradle, add the `ai.timefold.solver : timefold-solver-core : 1.18.0` dependency in your `pom.xml` to get started.

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

Page 1 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.