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]