Skip to content

feat: introduce an optimization model support as a preview#2307

Merged
triceo merged 19 commits into
TimefoldAI:mainfrom
rsynek:chore/sdk-merge
May 26, 2026
Merged

feat: introduce an optimization model support as a preview#2307
triceo merged 19 commits into
TimefoldAI:mainfrom
rsynek:chore/sdk-merge

Conversation

@rsynek
Copy link
Copy Markdown
Collaborator

@rsynek rsynek commented May 14, 2026

To illustrate the inclusion of the SDK.

Enterprise Solver: https://github.com/TimefoldAI/timefold-solver-enterprise/pull/538

This PR will only get merge with the full content later.

Copy link
Copy Markdown
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.

Had to submit the PR (non-draft), so that I can post comments.
I do not comment on the structure inside of the model/ directory - those are your choices. My comments apply on the boundaries, and where your choices proliferate to the top-level.

Comment thread .mvn/maven.config
Comment thread pom.xml
Comment thread model/rest/pom.xml Outdated
Comment thread model/maps/pom.xml Outdated
Comment thread model/facade/model/pom.xml
Comment thread model/tools/maven-plugin/pom.xml
Comment thread build/bom/pom.xml
@triceo triceo marked this pull request as draft May 18, 2026 08:40
Comment thread model/pom.xml Outdated
Comment thread model/maps/api/pom.xml Outdated
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 introduces a Maven pom.xml structure to support an SDK/model sub-tree and switches the build to CI-friendly versions via ${revision} (with flattening), aligning module parent versions across the repository.

Changes:

  • Replaced hardcoded 999-SNAPSHOT parent versions with ${revision} across existing modules.
  • Added ${revision} + flatten-maven-plugin configuration to the root build and introduced a new model/ multi-module subtree.
  • Extended the solver BOM to include the new model artifacts and added default Maven config to disable model processing.

Reviewed changes

Copilot reviewed 63 out of 63 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
tools/pom.xml Switch parent version to ${revision}.
tools/migration/pom.xml Switch parent version to ${revision}.
tools/benchmark/pom.xml Switch parent version to ${revision}.
tools/benchmark-aggregator/pom.xml Switch parent version to ${revision}.
spring-integration/spring-boot-starter/pom.xml Switch parent version to ${revision}.
spring-integration/spring-boot-integration-test/pom.xml Switch parent version to ${revision}.
spring-integration/spring-boot-autoconfigure/pom.xml Switch parent version to ${revision}.
spring-integration/pom.xml Switch parent version to ${revision}.
quarkus-integration/quarkus/runtime/pom.xml Switch parent version to ${revision}.
quarkus-integration/quarkus/reflection-integration-test/pom.xml Switch parent version to ${revision}.
quarkus-integration/quarkus/pom.xml Switch parent version to ${revision}.
quarkus-integration/quarkus/integration-test/pom.xml Switch parent version to ${revision}.
quarkus-integration/quarkus/devui-integration-test/pom.xml Switch parent version to ${revision}.
quarkus-integration/quarkus/deployment/pom.xml Switch parent version to ${revision}.
quarkus-integration/quarkus-jackson/runtime/pom.xml Switch parent version to ${revision}.
quarkus-integration/quarkus-jackson/pom.xml Switch parent version to ${revision}.
quarkus-integration/quarkus-jackson/integration-test/pom.xml Switch parent version to ${revision}.
quarkus-integration/quarkus-jackson/deployment/pom.xml Switch parent version to ${revision}.
quarkus-integration/quarkus-benchmark/runtime/pom.xml Switch parent version to ${revision}.
quarkus-integration/quarkus-benchmark/pom.xml Switch parent version to ${revision}.
quarkus-integration/quarkus-benchmark/integration-test/pom.xml Switch parent version to ${revision}.
quarkus-integration/quarkus-benchmark/deployment/pom.xml Switch parent version to ${revision}.
quarkus-integration/pom.xml Switch parent version to ${revision}.
pom.xml Introduce ${revision}, configure flatten-maven-plugin, add model module.
persistence/pom.xml Switch parent version to ${revision}.
persistence/jpa/pom.xml Switch parent version to ${revision}.
persistence/jaxb/pom.xml Switch parent version to ${revision}.
persistence/jackson/pom.xml Switch parent version to ${revision}.
model/tools/maven-plugin/pom.xml Add new Maven plugin module POM for model tooling.
model/test/pom.xml Add new model test-support module POM.
model/test-model/pom.xml Add new test model module POM (profile-driven module).
model/solver-worker/pom.xml Add new solver worker module POM.
model/rest/pom.xml Add new REST module POM for model SDK.
model/rest-definition/pom.xml Add new REST types/definitions module POM.
model/quarkus/runtime/pom.xml Add new Quarkus extension runtime module POM.
model/quarkus/pom.xml Add new Quarkus extension parent aggregator POM.
model/quarkus/integration-tests/pom.xml Add new Quarkus integration-tests module POM.
model/quarkus/deployment/pom.xml Add new Quarkus extension deployment module POM.
model/pom.xml Add model root parent/aggregator POM (includes flatten + distributionManagement).
model/model-defaults/pom.xml Add model defaults module POM.
model/maps/service-test/pom.xml Add maps service test module POM.
model/maps/service-rest/pom.xml Add maps service REST module POM.
model/maps/service-integration/pom.xml Add maps service integration module POM.
model/maps/service-client/pom.xml Add maps service client module POM.
model/maps/pom.xml Add maps integration aggregator POM.
model/maps/haversine/pom.xml Add haversine module POM.
model/maps/api/pom.xml Add maps API module POM.
model/json/pom.xml Add JSON integration module POM.
model/jackson/pom.xml Add Jackson integration module POM.
model/facade/sdk/pom.xml Add SDK facade dependency-aggregator POM (no maps).
model/facade/sdk-with-maps/pom.xml Add SDK facade dependency-aggregator POM (with maps).
model/facade/sdk-model-parent/pom.xml Add SDK model parent POM with profiles/plugins for model builds.
model/facade/sdk-model-base-parent/pom.xml Add SDK model base parent POM (dependency management + enterprise profile).
model/definition/pom.xml Add model definition module POM.
model/build/config/pom.xml Add model config module POM.
model/build/build-support/pom.xml Add model build-support module POM.
model/build/build-parent/pom.xml Add model build-parent POM (dependencies/plugins management for model subtree).
docs/pom.xml Switch parent version to ${revision}.
core/pom.xml Switch parent version to ${revision}.
build/ide-config/pom.xml Switch parent version to ${revision}.
build/build-parent/pom.xml Switch parent version to ${revision}.
build/bom/pom.xml Add model artifacts (and plugin) to solver BOM.
.mvn/maven.config Add default system property to disable model processing.

Comment thread model/tools/maven-plugin/pom.xml
Comment thread model/tools/maven-plugin/pom.xml
Comment thread model/facade/model-parent/pom.xml Outdated
Comment thread model/facade/model-parent/pom.xml
Comment thread .mvn/maven.config
Comment thread model/pom.xml Outdated
Comment thread build/bom/pom.xml
Comment thread .mvn/maven.config Outdated
@rsynek rsynek marked this pull request as ready for review May 26, 2026 14:09
Copilot AI review requested due to automatic review settings May 26, 2026 14:09
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.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

Copy link
Copy Markdown
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.

Good when Sonar is B or better.

Copilot AI review requested due to automatic review settings May 26, 2026 15:24
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.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
43.6% Coverage on New Code (required ≥ 70%)

See analysis details on SonarQube Cloud

@rsynek rsynek changed the title chore: introduce the pom.xml structure feat: introduce an optimization model support as a preview May 26, 2026
@triceo triceo merged commit 014bf85 into TimefoldAI:main May 26, 2026
21 of 22 checks passed
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