Releases: TimefoldAI/timefold-solver
Timefold Solver Community Edition 1.1.0
We are proud to announce the general availability of Timefold Solver Community Edition 1.1.0!
The highlights of this release include:
- Significant improvements to constraint matching performance.
- Several important bugfixes.
- Documentation improvements and other minor tweaks.
To ensure Constraint Streams process data correctly in all cases, we unfortunately had to sacrifice some solver performance. (See bug #186.)
Some use cases may see score calculation speeds drop by 5 % on average.
Changelog
🐛 Fixes
- 0b47ed1 propagate retracts before updates in order to have clean indexes (#193), closes #193
- 0bc4ec1 bail out of a never-ending loop when no move is doable
- b1761d4 dispose of step cache at phase end if necessary
🔄️ Changes
- 292dc67 read value range size instead of the value range (#205), closes #205
- 4586d66 significantly speed up constraint matching performance (#171), closes #171
📝 Documentation
- 787df84 fix tiny consistency issue regarding method names
- adf714c link the quickstarts repo early after frontpage link (#86), closes #86
- 8a7c815 change example from 'extends AbstractCustomPhaseCommand' to 'implements CustomPhaseCommand'
Contributors
We'd like to thank the following people for their contributions:
- Andreas Lundblad (@aioobe)
- Geoffrey De Smet
- Lukáš Petrovický (@triceo)
- Radovan Synek
- hdotslines (@hdotslines)
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, just add the ai.timefold.solver : timefold-solver-core : 1.1.0
dependency in your pom.xml
to get started.
You can also import the Timefold Solver Bom (ai.timefold.solver : timefold-solver-bom : 1.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.
They exclude 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.
Timefold Solver Community Edition 1.0.0
Changelog
🚀 Features
- 5d15619 Constraint Streams expand() support (#58), closes #58
- 954fc04 migrate Logback to Timefold too (#57), closes #19 #57
- cbcf0fe modernize the Benchmark report (#28), closes #28
🐛 Fixes
- 0285273 don't attempt to count entities which do not match the descriptor
- 11e8c27 make Quarkus and Spring not fail without global solver termination
- f4b163d use the correct parent ClassLoader on Quarkus
- 732473d quarkus: Workaround quarkus-run.jar fails fast due to gizmo missing
- 310cf3f allow min/max constraint collectors on planning variables (#99), closes #99
- 45d3931 address various issues identified during benchmarking (#90), closes #90
🔄️ Changes
- 607b21a speed up CS consecutive collector (#85), closes #85
- 5ddbcf1 make CS flattenLast() perform better on collections (#68), closes #68
- f23cedd Multi-threaded solving and nearby selection become services (#53), closes #53
🧰 Tasks
- 08909ab release version 1.0.0
- 00ac56a better exception when list variable is null (#140), closes #107 #140
- 292d44c remove the docs single-html and distribution
- eb205e7 remove the aggregated javadocs
- 13a4609 remove the distribution zip, closes #2
- ef03c9a add "Speaker makespan" constraint to Conference Scheduling (#102), closes #102
- dc7eafe move commercial features to Enterprise Edition (#108), closes #108
- 243e0f8 merge CS modules into a single constraint-streams module (#62), closes #62
- a1318e6 introduce issue templates (#31), closes #31
📝 Documentation
- 28684b7 introduce Enterprise Edition
- 18c7e98 describe "Speaker makespan" constraint
- 03caaf8 update the quarkus school-timetabling quickstart, closes #98
Contributors
We'd like to thank the following people for their contributions:
- Geoffrey De Smet
- Lukáš Petrovický (@triceo)
- Radovan Synek
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,
just add the ai.timefold.solver : timefold-solver-core : 1.0.0
dependency to get started.
You can also import the Timefold Solver Bom (ai.timefold.solver : timefold-solver-bom : 1.0.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.
They exclude 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.
Timefold Solver 0.9.39
Full Changelog: 0.9.38...0.9.39
How to use Timefold Solver
To see Timefold Solver in action, check out the quickstarts.
To develop with Timefold, the Solver jars are available in the central maven repository.
With Maven, just add the timefold-solver-core
dependency in your pom.xml
to get started:
<dependency>
<groupId>ai.timefold.solver</groupId>
<artifactId>timefold-solver-core</artifactId>
<version>0.9.39</version>
</dependency>
Or better yet, import the timefold-solver-bom
to avoid duplicating version numbers when adding other Timefold Solver dependencies later on:
<project>
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>ai.timefold.solver</groupId>
<artifactId>timefold-solver-bom</artifactId>
<type>pom</type>
<version>0.9.39</version>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>ai.timefold.solver</groupId>
<artifactId>timefold-solver-core</artifactId>
</dependency>
<dependency>
<groupId>ai.timefold.solver</groupId>
<artifactId>timefold-solver-test</artifactId>
<scope>test</scope>
</dependency>
...
</dependencies>
</project>
With Gradle, just add the timefold-solver-core
dependency in your build.gradle
to get started:
dependencies {
implementation 'ai.timefold.solver:timefold-solver-core:0.9.39'
}