Skip to content

chore: merge model parents and disconnect it from build parent#2323

Open
rsynek wants to merge 1 commit into
TimefoldAI:mainfrom
rsynek:fix/fix-model-parent
Open

chore: merge model parents and disconnect it from build parent#2323
rsynek wants to merge 1 commit into
TimefoldAI:mainfrom
rsynek:fix/fix-model-parent

Conversation

@rsynek
Copy link
Copy Markdown
Collaborator

@rsynek rsynek commented May 29, 2026

Notable changes:

  • merged the model-base-parent and model-parent as the idea of layered models is no longer relevant
  • disconnected the model-parent from build-parent to avoid solver build process impact models
  • added some forgotten dependency renames in the enterprise profile

@rsynek rsynek requested a review from winklerm May 29, 2026 13:03
@rsynek rsynek requested a review from triceo as a code owner May 29, 2026 13:03
Copilot AI review requested due to automatic review settings May 29, 2026 13:03
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR simplifies the model build by removing the layered “base parent” POM, folding its responsibilities into model-parent, and decoupling model-parent from the solver build parent to avoid cross-build side effects, while also updating renamed Enterprise dependencies.

Changes:

  • Removed the model-base-parent module from the model reactor and deleted its POM.
  • Made timefold-solver-model-parent standalone (no parent), adding its own key version/properties and BOM imports.
  • Updated Enterprise profile dependency/artifactId renames and added Enterprise BOM import/repository wiring.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
model/pom.xml Removes facade/model-base-parent from the module list to reflect the parent POM merge.
model/facade/model-parent/pom.xml Converts the model parent into a standalone parent POM, adds version management/BOM imports, and updates Enterprise profile dependencies.
model/facade/model-base-parent/pom.xml Deletes the now-obsolete base parent POM after consolidation.

Comment thread model/facade/model-parent/pom.xml
@rsynek rsynek force-pushed the fix/fix-model-parent branch from 94ffa78 to 0aac227 Compare May 29, 2026 13:17
@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown
Contributor

@winklerm winklerm left a comment

Choose a reason for hiding this comment

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

Thanks, the changes look good to me!

I have left a question and one concern about the flatten plugin, which I find potentially problematic, but I do not have any proof that it will not work without it, so leaving that up to your judgment.

<relativePath>../model-base-parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>ai.timefold.solver</groupId>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Q: Is this the right groupId? I would expect something like ai.timefold.solver.model so that the artifacts are clearly distinguishable from the "core" solver artifacts, but fine if it was decided to name it this way.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

That has been already decided for all the artifacts to share the same groupId. The difference is in the artifactId prefix, which for the "sdk" artifacts contains model, like timefold-solver-model-definition, etc.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Sounds good!

<!-- Dependencies -->
<!-- ************************************************************************ -->
<version.ai.timefold.solver>${revision}</version.ai.timefold.solver>
<version.io.quarkus>3.35.3</version.io.quarkus>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

PP: Would it make sense to add a comment to the build-parent mentioning that for instance Quarkus version is declared also in this file and should be kept in sync?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

FYI Dependabot happened earlier today. Some of these dependencies were upgraded.

<modelVersion>4.0.0</modelVersion>
<groupId>ai.timefold.solver</groupId>
<artifactId>timefold-solver-model-parent</artifactId>
<version>${revision}</version>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I am concerned a bit that we are not using the maven-flatten-plugin because Maven docs explicitely says it has to be used when installing/deploying poms using properties like revision: https://maven.apache.org/guides/mini/guide-maven-ci-friendly.html#install-deploy

But I am not sure how to test that, apart from the fact that we try to build a model with this model parent (which already seems to work). I am wondering if we could get some pushback from Maven central when trying to deploy there..

Comment on lines +270 to 272
<ai.timefold.sdk.enterprise>true</ai.timefold.sdk.enterprise>
<!-- enable copy of Timefold diagnostic tools when building container image - see container profile -->
<ai.timefold.sdk.enterprise.skipTools>false</ai.timefold.sdk.enterprise.skipTools>
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Is there an issue anywhere to refactor these properties to remove the "sdk" keyword?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants