Skip to content

Use request properties consistently for CI-friendly version interpolation#12184

Open
gnodet wants to merge 1 commit into
apache:masterfrom
gnodet:fix/ci-friendly-version-interpolation
Open

Use request properties consistently for CI-friendly version interpolation#12184
gnodet wants to merge 1 commit into
apache:masterfrom
gnodet:fix/ci-friendly-version-interpolation

Conversation

@gnodet
Copy link
Copy Markdown
Contributor

@gnodet gnodet commented May 29, 2026

Summary

  • Fix inconsistent property source for CI-friendly version interpolation (${revision}, ${changelist}, ${sha1})
  • The model builder used session properties for CI-friendly version replacement but request properties for interpolation, causing ${revision} to remain unresolved when user properties differ from the session
  • Fix getPropertiesWithProfiles(), doReadFileModel(), and DefaultConsumerPomBuilder.buildModel() to consistently use request properties

Test plan

  • Added DefaultModelBuilderTest cases for CI-friendly dependency version resolution
  • Verify projects using ${revision} (e.g. logging-log4j-*, hbase-connectors, bigtop-manager) build correctly

Claude Code on behalf of Guillaume Nodet

…tion

The model builder inconsistently used session properties for CI-friendly
version replacement and model property merging, while model interpolation
used request properties. When user properties on the ModelBuilderRequest
differ from the Session (e.g. -Drevision=2.0.0 overriding a POM-defined
revision), ${revision} in dependency versions and distributionManagement
was not properly resolved.

Fix three places in DefaultModelBuilder to use request properties:
- getPropertiesWithProfiles(): use request system+user properties
  instead of session.getEffectiveProperties()
- doReadFileModel(): use request.getUserProperties() instead of
  session.getUserProperties() for model property and profile merging

Also fix DefaultConsumerPomBuilder.buildModel() to pass API Session
properties (iSession) instead of RepositorySystemSession properties
to the model builder request, ensuring consumer POM builds have
access to the full set of user properties.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@gnodet gnodet added this to the 4.0.0-rc-6 milestone May 29, 2026
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.

1 participant