Releases: zepfred/timefold-solver
Releases · zepfred/timefold-solver
Timefold Solver Community Edition 1.13.1
Timefold Solver Community Edition 1.13.0
!!! REMOVE THIS !!!
!!! SUMMARIZE THE RELEASE HERE !!!
!!! REMOVE THIS !!!
Changelog
🚀 Features
- 85e6812 introduce a Ruin And Recreate move (TimefoldAI#1010), closes TimefoldAI#1010
- ff6ae02 Add missing
of
methods to scores in Python (TimefoldAI#1055), closes TimefoldAI#1055 - 6c7416c Add chained variable support to Python
- df74d42 improve JVM exceptions (TimefoldAI#1037), closes TimefoldAI#1037
- 132a232 Improve @CascadingUpdateShadowVariable logic (TimefoldAI#1020), closes TimefoldAI#1020
- 4f6b099 add support for
sourceEntityClass
to@CascadingUpdateShadowVariable
(TimefoldAI#996), closes TimefoldAI#996 - 2bb6b26 add improvements for
@CascadingUpdateShadowVariable
(TimefoldAI#992), closes TimefoldAI#992 - 735db99 Add CascadingUpdateShadowVariable to Python (TimefoldAI#989), closes TimefoldAI#989
- 10b9258 add new Shadow variable listener (TimefoldAI#954), closes TimefoldAI#954
- 2c74a11 constraint weight override (TimefoldAI#946), closes TimefoldAI#946
- d07cfb2 add support for fairness constraints (TimefoldAI#918), closes TimefoldAI#918
- 7e6102e Improve
ScoreAnalysis
debug information (TimefoldAI#923), closes TimefoldAI#923 - 84e4ae0 Allow to consume the initialized solution (TimefoldAI#915), closes TimefoldAI#915
- 30980b7 make the nearbyDistanceMeterClass a visitable class for GIZMO
- d7a5404 disable nearby configuration for CH
- d5f1d06 Add the concurrent usage collector (TimefoldAI#800), closes TimefoldAI#800
- a99e600 Improve constraint verifier error messages (TimefoldAI#758), closes TimefoldAI#758
- 8344f4b Adding down-sampling process for Benchmark (TimefoldAI#714), closes TimefoldAI#714
- 53f83bd Automatic node sharing for ConstraintProvider (Enterprise) (TimefoldAI#685), closes TimefoldAI#685
- d2e24d2 add withClassLoader method to SolverConfig (TimefoldAI#695), closes TimefoldAI#691 TimefoldAI#695
- 31f66ad add the
nearby-distance-meter-class
property for Quarkus and Spring (TimefoldAI#687), closes TimefoldAI#687 - 388490b Expose entity, variable and value counts in the logs and metrics (TimefoldAI#671), closes TimefoldAI#671
- 3211f8c enabling Nearby Selection for non-empty move selectors configuration (TimefoldAI#684), closes TimefoldAI#684
- 55c373b Adding Nearby configuration by exception (TimefoldAI#673), closes TimefoldAI#673
- 82a9a68 Extending
SingleConstraintAssertion
to check Justification/indictment (TimefoldAI#659), closes TimefoldAI#659 - a0ce0e2 support unassigned elements for list variables (TimefoldAI#573), closes TimefoldAI#573
- 14b7b68 add penalty methods for
long
andBigDecimal
values without match weighter (TimefoldAI#656), closes TimefoldAI#656 - 8462888 Spring boot native image support (TimefoldAI#609), closes TimefoldAI#609
- fb946aa Support getting score calculation count and speed for SolverJob, closes TimefoldAI#621
- dc71df8 Adding VRP quickstart documentation (TimefoldAI#623), closes TimefoldAI#623
- 9009fa4 Support multiple SolverManager instances in Spring Boot (TimefoldAI#590), closes TimefoldAI#590
- 00bb032 Support multiple SolverManager instances (TimefoldAI#564), closes TimefoldAI#564
- 3cb5490 pinning support for list variable (TimefoldAI#491), closes TimefoldAI#491
- d9b99b1 syntactic sugar for ScoreAnalysis (TimefoldAI#546), closes TimefoldAI#546
- a481fe1 Overriding Solver termination configuration (TimefoldAI#542), closes TimefoldAI#515 TimefoldAI#542
- d2e52cd PlannerBenchmarkFactory.createFromSolverConfig() (TimefoldAI#479), closes TimefoldAI#479
🐛 Fixes
- 96c3da0 allow @PlanningId to be defined on interfaces (TimefoldAI#1060), closes TimefoldAI#1060
- 274dadd Use inserted range when retracting range in
toConnectedRanges
(TimefoldAI#1056), closes TimefoldAI#953 TimefoldAI#1056 - 6229923 adjust template
- 3ffb49b address scale equal to NaN
- ec49da1 respect merge function in toMap() collector
- 2c6c5f2 support github actor with brackets and enable Dependabot (TimefoldAI#1016), closes TimefoldAI#1016
- d01cd42 avoid duplicating nearby configuration
- d39be48 check duplicated class members for
@CascadingUpdateShadowVariable
(TimefoldAI#990), closes TimefoldAI#990 - d042172 register the
ConstraintWeightOverrides
access member for native compilation (TimefoldAI#987), closes TimefoldAI#987 - 842b1df Adjust weights properly and don't throw NPEs (TimefoldAI#981), closes TimefoldAI#981
- ecae569 proper casts in Python load_balance collector
- e7fae26 only include tail chain move when using a single var (TimefoldAI#936), closes TimefoldAI#936
- d5ed7e1 Do not fail on solution/entity classes as interfaces (TimefoldAI#934), closes TimefoldAI#934
- 6b9ac28 fix formatting
- 24b3240 continue the warmup when one configuration fails
- 03ed42c update the best score image of the benchmark section
- 5690ec6 fail fast when local search starts from an uninitialized solution
- 73bfaa6 Use custom thread factor class in SolverManager (TimefoldAI#875), closes TimefoldAI#875
- 6c4e2e6 properly detect value ranges with wildcard types (TimefoldAI#838), closes TimefoldAI#838
- c373c2b Remove too eager fail-fast in concat node's retract (TimefoldAI#831), closes TimefoldAI#831
- fdeb06a forbid pinning uninitialized entities when unassigned not allowed (TimefoldAI#821), closes TimefoldAI#821
- b5ff711 unassigned location is the last element destination
- 3b7b544 Simplified moves need to list their entities and values
- 3ab0480 enable Nearby selection for Construction Heuristics (TimefoldAI#767), closes TimefoldAI#767
- 6da1776 Add fail-fast when node sharing is enabled in SolverConfig instead of application.properties (TimefoldAI#766), closes TimefoldAI#766
- c6f1e4f Benchmark duplicated metrics (TimefoldAI#761), closes TimefoldAI#163 TimefoldAI#761
- a7e7a19 unimproved terminations skip construction heuristic (TimefoldAI#755), closes TimefoldAI#755
- 493723e add rebase support to NoChangeMove and ListUnassignMove
- c9416a4 unused dep fix
- 0d020b4 imports fix
- b8fdd8d Do not recalculate problem size statistics in benchmarker
- 6916ba7 pass provided class loader to service loader (TimefoldAI#692), closes TimefoldAI#690 TimefoldAI#692
- 964adbd Recommended Fit API needs to ignore any unassigned entities/values (TimefoldAI#618), closes TimefoldAI#581 TimefoldAI#618
- 5c3bcdf nearby selection pinning support (TimefoldAI#614), closes TimefoldAI#614
- a9d7c62 Pass all subclasses of Throwable to the exception handler in SolverManager
- 693e321 Ensuring the spent termination property is read in the Quarkus environment (TimefoldAI#600), closes TimefoldAI#600
- d9122e6 avoid eager initialization of the Benchmark resources
- 67d4448 avoid exception when analysing uninitialized solution (TimefoldAI#536), closes TimefoldAI#536
- a5c3960 fail fast when @DeepPlanningClone on a record
- 69e3e55 Make MatchAnalysis implement Comparable to fix score corruption analysis (TimefoldAI#527), closes TimefoldAI#527
- be84ea1 correct quickstarts-archive-url
- 2b35c89 Updating the School Timetabling quickstarts documentation (TimefoldAI#494), closes TimefoldAI#98 TimefoldAI#494
- 10ba396 non-existent methods referenced for score explanation
- a8e7a8a filter trivial 2-opt moves and make KOptListMove public (TimefoldAI#485), closes TimefoldAI#480 TimefoldAI#485
- 0357f3e Do not set shadow variables to null when calculating from scratch in TRACED_FULL_ASSERT (TimefoldAI#484), closes TimefoldAI#478 TimefoldAI#484
🔄️ Changes
- 1a9d194 create less BigDecimal in load balancing (TimefoldAI#1030), closes TimefoldAI#1030
- 3aee054 min/max collector perf improvement was causing score corruptions
- 5443347 minor improvements to Constraint Streams (TimefoldAI#830), closes TimefoldAI#830
- 787d804 "ci: Enabling SonarCloud for forks (TimefoldAI#641)" (TimefoldAI#643), closes TimefoldAI#641 TimefoldAI#643
- 92ff8fa reduce allocations in CS
🧪 Tests
- ae83aad use less double in LineChart (TimefoldAI#860), closes TimefoldAI#860
- 8e2e8e8 add tolerance to double comparison
- 02be447 do not create a new entity in EnvironmentMode test
🧰 Tasks
- a1ee6bb improve release CI
- ec3b796 link the Github Release page from within docs
- 87ccc52 assorted changes to CI and README after Python merge
- 355a2e3 Migrate Python repo (TimefoldAI#955), closes TimefoldAI#955
- 44187cb deprecate constraint package (TimefoldAI#945), closes TimefoldAI#945
- afc70bb minor changes
- 312e32b deps: bump actions/setup-python from 4 to 5
- a965d8b deps: bump actions/setup-java from 3 to 4
- 50e19a2 rename timefold-solver python package
- 9c76f53 Update docs on which time and date types to use
- a649452 improve score corruption error message (TimefoldAI#822), closes TimefoldAI#822
- a210d93 remove
examples
module (TimefoldAI#809), closes TimefoldAI#809 - 93f5b58 add support for authenticated Enterprise repo (TimefoldAI#811), closes TimefoldAI#811
- 7aadd5c removing Nurse Rostering code (TimefoldAI#799), closes TimefoldAI#799
- d8a98a1 removing Project Job Scheduling code (TimefoldAI#796), closes TimefoldAI#796
- a65457c allow to mark objects as immutable (TimefoldAI#786), closes TimefoldAI#786
- 7841b1c deps: bump stCarolas/setup-maven from 4.5 to 5
- abc3aea remove task assigning code
- 1356da4 remove traveling tournament code
- 08b464a address some Sonar-reported reliability issues (TimefoldAI#779), closes TimefoldAI#779
- 9f46fda removing Meetings Schedule code (TimefoldAI#773), closes TimefoldAI#773
- 4f7c9b2 downgrade Quarkus to 3.8.3
- bc2d5a2 remove Flight Crew code
- 0a25027 address CodeQL warnings and fix release script (TimefoldAI#759), closes TimefoldAI#759
- 4a62ced bring Sonar reliability rating back to green
- f1e8bd8 Removing Patient Admission Scheduling code (TimefoldAI#753), closes TimefoldAI#753
- 829d6b2 Node sharing value proposition
- fcf1e3b remove many Swing-based examples (TimefoldAI#730), closes TimefoldAI#730
- 019a13e Add internal interface for planning cloning atypical types (TimefoldAI#727), closes TimefoldAI#727
- 2773757 make solution class name consistent with the quickstart
- 6b2259c remove conference-scheduling documentation
- 25a0675 remove conference scheduling references
- 98f2f92 remove conference scheduling example
- da7f5ce port a few minor fixes
- e473fca Remove ServiceLoader use from the codebase (TimefoldAI#705), closes TimefoldAI#705
- 05c7475 nit picking before the release
- 3704433 allow for automatic node-sharing in examples
- bb5ae0a remove unused vaccination images (TimefoldAI#688), closes TimefoldAI#688
- 3e4b05e docs: Add nearbySelectionValueProposition image
- 307630c Improve error messages from loading YAML files (TimefoldAI#637), closes TimefoldAI#637
- ba74046 docs: Kotlinify domain classes to remove boilerplate code
- 6771466 docs: Update enterprise docs
- c5100ee deps: bump actions/upload-artifact from 3 to 4
📝 Documentation
- 716e45e Add Python examples (TimefoldAI#1047), closes TimefoldAI#1047
- 189b894 remove WIP from upgrade recipe
- 0245d84 add fairness to the left-hand menu
- 29cddf2 fix broken xref
- 3ce640a update to the latest version of the Python quickstart
- 6cceeb3 tweak wording around multi-threaded
- 6dc26bf remove Nearby for CH
- 6452e8b Add a Python hello-world example to docs (TimefoldAI#867), closes TimefoldAI#867
- 7b83e91 update links to use new quickstart structure (TimefoldAI#865), closes TimefoldAI#865
- 62603f7 fix a typo in toConsecutiveSequences example
- e558697 fix typos in connected ranges
- 83abce6 fix typos in collectors
- d64b634 fix ConstraintCollectors.average() example
- 5bfa796 document the throttling feature of...