Skip to content

chore: rename Example maturity level to Template - #2661

Merged
rsynek merged 3 commits into
TimefoldAI:mainfrom
rsynek:chore/rename-example-to-template
Sep 16, 2026
Merged

rsynek merged 3 commits into
TimefoldAI:mainfrom
rsynek:chore/rename-example-to-template

Conversation

@rsynek

@rsynek rsynek commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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.

🟡 Changes recommended

The rename breaks existing Example consumers, documentation lists an invalid value, and compatibility guidance and regression coverage are needed.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Renames the model maturity level from Example to Template in the service API and documentation.

Changes:

  • Renames the public enum constant.
  • Updates the documented maturity-level values.
File summaries
File Change
service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelMaturityLevel.java Renames the maturity-level enum constant.
docs/src/modules/ROOT/pages/deploying-to-platform/model-metadata.adoc Documents Template as the maturity level.
Review details

Suppressed comments (3)

docs/src/modules/ROOT/pages/deploying-to-platform/model-metadata.adoc:33

  • Changing the documented value without a migration note leaves existing users unaware that timefold.model.maturity-level=Example now causes valueOf to throw during the build; add an upgrade entry telling users to replace Example with Template, or preserve the legacy value.
Use `timefold.model.maturity-level` to tell consumers how stable a given model is, using the same https://docs.timefold.ai/timefold-platform/latest/models/versioning-and-maturity[maturity levels] Timefold uses for its own models (`Template`, `Experimental`, `Preview`, `Stable`, `Deprecated`).

docs/src/modules/ROOT/pages/deploying-to-platform/model-metadata.adoc:33

  • Deprecated is listed as a valid configuration value here, but the enum has no Deprecated constant and the processor parses the property with ModelMaturityLevel.valueOf(...), so this documented value causes deployment to fail with IllegalArgumentException; either add that enum value or remove it from the documented list.
Use `timefold.model.maturity-level` to tell consumers how stable a given model is, using the same https://docs.timefold.ai/timefold-platform/latest/models/versioning-and-maturity[maturity levels] Timefold uses for its own models (`Template`, `Experimental`, `Preview`, `Stable`, `Deprecated`).

service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelMaturityLevel.java:5

  • Related deployment tests deserialize generated ModelDescriptor files but never assert the maturity level, so this rename has no regression coverage for the Template value or compatibility with existing Example descriptors; add a focused test for the property and serialized descriptor.
    Template,
  • Files reviewed: 2/2 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Copilot AI left a comment

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.

🟢 Approval recommended

The API rename and corresponding documentation update are aligned, with no unresolved review comments.

Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI left a comment

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.

🟡 Changes recommended

Add the Revapi suppression or compatibility-baseline update for the deliberate enum constant removal.

Get a fresh assessment by requesting another Copilot review.

Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 1
  • Review effort level: Lite

Copilot AI review requested due to automatic review settings September 16, 2026 06:56
@triceo
triceo force-pushed the chore/rename-example-to-template branch from f08d476 to 153e498 Compare September 16, 2026 06:56

@triceo triceo left a comment

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.

Good when no comments.

Copilot AI left a comment

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.

🔵 Needs a closer look

Add the intentional enum removal to the Revapi allowed differences before merging.

Review details

Suppressed comments (1)

service/definition/src/main/java/ai/timefold/solver/service/definition/api/ModelMaturityLevel.java:5

  • The service-definition module runs Revapi over ai.timefold.solver.service.definition.api (service/definition/pom.xml:52-63 and src/build/revapi-filter.json:3-10), but this removal has no corresponding allowed difference, so the API check will report the removed enum constant and fail the build; add an explicit entry to revapi-differences.json or otherwise configure this intentional preview break before merging.
    Template,
  • Files reviewed: 2/2 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI left a comment

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.

🟢 Approval recommended

No unresolved review issues were identified.

Review details
  • Files reviewed: 4/4 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

@rsynek
rsynek merged commit 74e9375 into TimefoldAI:main Sep 16, 2026
25 of 29 checks passed

This branch was successfully deployed

2 active deployments
documentation (preview) 7b69433b Deployed Sep 16, 2026 by rsynek via Build Documentation #705
internal 7b69433b Deployed Sep 16, 2026 by rsynek via approval_required #785
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.

3 participants