Skip to content

Conversation

@zepfred
Copy link
Contributor

@zepfred zepfred commented Sep 25, 2025

No description provided.

@zepfred
Copy link
Contributor Author

zepfred commented Sep 25, 2025

@triceo I noticed other factories used by configurations and annotations that are not located in the public API. Maybe, we should handle that in a separate PR as well.

Copy link
Collaborator

@triceo triceo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As always, the different selector combinations are causing me to ask questions - see inline.

Downstream tests are failing.

Also, please provide a migration recipe for the move of the interface to the public API; the uses of the old interface should be replaced by the new one.

Finally, the change needs to show up in the upgrade recipe in our docs.

@zepfred
Copy link
Contributor Author

zepfred commented Sep 26, 2025

Finally, the change needs to show up in the upgrade recipe in our docs.

I have included a recipe for automatic migration to the new interface. Do we need to add anything to our docs?

Copy link
Collaborator

@triceo triceo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General comments:

  • Deprecated declarations should move towards the end of the file. We want to see the active code first.
  • Plenty of places use the word "sorterComparator" where it should just be "comparator"; other places already use "comparator". This needs to be standardized.
  • If we ever touch code that uses @NonNull, let's convert it to @NullMarked. Reduces boilerplate.

Most importantly though - this PR has the same potential to break the solver, just like 1.26.0 did. What can we do to ensure that the same problem isn't repeated?

I suggest you ask Marek to try this with his sorting PoC in FSR. That will prove it still does what it needs to do. Carefully testing ESS will ensure the old code still works, because AFAIK ESS was already using it.

I am not yet done with the review, but this should be enough for now. With this, the codebase will change enough that I'll have to re-read it anyway.

Copy link
Collaborator

@triceo triceo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Forgot to submit these comments as well.

Copy link
Collaborator

@triceo triceo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Big PR! Finally got through all of it.

Leaving some more comments, but I think we're getting there.
None of these changes will affect performance of the code, therefore the existing experiments are not invalidated.

Copy link
Collaborator

@triceo triceo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, assuming that the verification on models passes.

@triceo
Copy link
Collaborator

triceo commented Oct 27, 2025

Anything you still want to do, @zepfred?
Since you're gone the rest of the week, I want to be sure before I merge it.

@triceo triceo merged commit 9eb30e8 into TimefoldAI:main Oct 28, 2025
34 checks passed
@zepfred zepfred deleted the feat/list-ch branch October 28, 2025 13:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants