vbhanuchander-lang commented on PR #18056:
URL: https://github.com/apache/iceberg/pull/18056#issuecomment-5837646399

   Thanks @uros-b — I have implemented option 2 so there is something concrete 
to decide on, and rebased onto current `main`.
   
   **What changed since your review:** the list of distribution-only projects 
moved out of `build.gradle` into `settings.gradle`, declared once as 
`gradle.ext.unpublishedProjects` and added to immediately beside the `include` 
that registers the project:
   
   ```groovy
   include ":iceberg-kafka-connect:kafka-connect-runtime"
   project(":iceberg-kafka-connect:kafka-connect-runtime").projectDir = 
file('kafka-connect/kafka-connect-runtime')
   project(":iceberg-kafka-connect:kafka-connect-runtime").name = 
"iceberg-kafka-connect-runtime"
   // Builds a distribution only, see 
kafka-connect/kafka-connect-runtime/build.gradle
   gradle.ext.unpublishedProjects.add("iceberg-kafka-connect-runtime")
   ```
   
   That addresses your concern as far as I think it can be addressed: 
registering a new distribution-only module and excluding it from the BOM now 
happen in the same place, three lines apart, rather than in two files. It is 
still a declaration rather than something derived from the project, for the 
ordering reason in my previous comment — the BOM populates its constraints 
during root project configuration, before subproject build files are evaluated, 
and deferring to `gradle.projectsEvaluated` puts the constraints too late for 
the `java-platform` component to pick them up.
   
   Verified by regenerating the BOM POM, with the task actually run rather than 
reading a stale file: **30 artifacts on `main` with 
`iceberg-kafka-connect-runtime` present, 29 with this change and it absent**, 
and `iceberg-kafka-connect`, `-events` and `-transforms` all retained. Same 
result as the previous approach, so this is purely about where the declaration 
lives.
   
   @manuzhang @kevinjqliu @huaxingao — @uros-b asked me to bring in a committer 
for the final call, and you three are the ones who have been handling 
publication and build changes recently (#18042 in particular). The decision is 
narrow:
   
   1. **as it stands**: declare distribution-only projects in `settings.gradle` 
next to their `include`;
   2. **the previous revision**: the same list inline in the `iceberg-bom` 
block in `build.gradle`;
   3. something lazier that keeps `java-platform` constraints open past project 
evaluation, which I could not find — if it exists I am happy to implement it 
instead.
   
   Either of the first two is a few lines and I will push whichever you prefer. 
The underlying bug is the same in both: the BOM currently ships a constraint 
pointing at a POM that is never published, so importing the BOM and asking for 
`iceberg-kafka-connect-runtime` cannot resolve.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to