lhotari opened a new pull request, #26018:
URL: https://github.com/apache/pulsar/pull/26018

   ### Motivation
   
   The `pulsar-client-api-v5` and `pulsar-client-v5` modules are public client 
libraries, but they were configured with `pulsar.java-conventions`, which does 
not set up Maven publishing. Because the published `:pulsar-client-tools` 
module depends on them, publishing fails the published-dependency validation in 
`pulsar.public-java-library-conventions`:
   
   ```
   Published module ':pulsar-client-tools' depends on unpublished projects:
     - implementation -> :pulsar-client-api-v5 (not published)
     - implementation -> :pulsar-client-v5 (not published)
   ```
   
   This breaks publishing the public client libraries to the Maven repository 
during a release, and there was no CI coverage to catch this class of 
publishing problem before a release.
   
   ### Modifications
   
   - Switch `pulsar-client-api-v5` and `pulsar-client-v5` from 
`pulsar.java-conventions` to `pulsar.public-java-library-conventions` so they 
are published to Maven repositories.
   - Add a `mavenPublishLock` shared build service (`maxParallelUsages = 1`) 
wired into every `PublishToMavenRepository` task in 
`pulsar.publish-conventions`. This serializes uploads so release uploads to the 
Apache Nexus staging repository all land in a single implicitly-created staging 
repository, removing the need to pass `--no-parallel` for releases (the rest of 
the build still runs in parallel). The surrounding documentation comment is 
updated accordingly.
   - Add a CI step that runs `./gradlew 
publishAllPublicationsToLocalDeployRepository` to verify that all publications 
can be published and to catch publishing regressions early.
   
   ### Verifying this change
   
   - [x] Make sure that the change passes the CI checks.
   
   This change is a build/release configuration fix, verified manually as 
follows:
   
   - Without the change, `./gradlew 
publishMavenPublicationToLocalDeployRepository` fails with the 
unpublished-projects error shown above.
   - With the change, `./gradlew publishAllPublicationsToLocalDeployRepository` 
completes successfully and the v5 modules are published to the local deploy 
repository. The new CI step provides ongoing coverage.
   - `./gradlew spotlessCheck checkstyleMain checkstyleTest` passes.
   
   ### Does this pull request potentially affect one of the following parts:
   
   *If the box was checked, please highlight the changes*
   
   - [ ] Dependencies (add or upgrade a dependency)
   - [ ] The public API
   - [ ] The schema
   - [ ] The default values of configurations
   - [ ] The threading model
   - [ ] The binary protocol
   - [ ] The REST endpoints
   - [ ] The admin CLI options
   - [ ] The metrics
   - [x] Anything that affects deployment: the `pulsar-client-api-v5` and 
`pulsar-client-v5` artifacts are now published to the Maven repository (they 
were previously not published).
   


-- 
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]

Reply via email to