Great idea!
+1

Il giorno mar 8 feb 2022 alle ore 12:18 Christophe Bornet <
bornet.ch...@gmail.com> ha scritto:

> Hi everyone,
>
> I'd like to open a discussion on PIP 141 : Pulsar BOM
>
> The PIP is here : https://github.com/apache/pulsar/issues/14168
>
> ## Motivation
>
> When designing NAR modules loaded by Nifi in the broker such as protocol
> handlers, proxy extensions, Pulsar IO connectors, etc..., it's important
> that the dependencies that are common to the module and the broker are as
> close as possible to prevent incompatible library exceptions
> (NoSuchClassError, NoSuchMethodError, IncompatibleClassChangeError, etc
> ...) at runtime. If a class is both in the NAR and in the broker, the
> broker one will be loaded.
>
> ## Goal
>
> This proposal is to define a BOM (Bill Of Materials) for Pulsar.
> A BOM is a special kind of POM that contains all the dependency versions
> that are used by the project and can be imported in another project.
> Currently there is a `dependencyManagement` section in Pulsar's parent POM
> but it's not always possible to derive from this parent POM as it imports a
> lot more things than the dependency versions and external projects usually
> prefer to have their own parent POM.
> External projects can import this BOM and use the same library versions as
> Pulsar at compile/test time.
>
> ## API Changes
>
> No API changes
>
> ## Implementation
>
> The `dependencyManagement` section of Pulsar's parent POM and related
> properties will be extracted in a POM and put in a `pulsar-bom` directory.
> The `pulsar-bom` artifact shall be built and released independently from
> the rest of Pulsar project (not a maven module).
> The Pulsar's parent POM `dependencyManagement` section is replaced by:
>
>   <dependencyManagement>
>     <dependencies>
>       <dependency>
>         <groupId>org.apache.pulsar</groupId>
>         <artifactId>pulsar-bom</artifactId>
>         <version>2.10.0-SNAPSHOT</version>
>         <type>pom</type>
>         <scope>import</scope>
>       </dependency>
>     </dependencies>
>   </dependencyManagement>
>
> The CI will have to build `pulsar-bom` before building Pulsar.
>
> ## Reject Alternatives
>
> The BOM could be part of a distinct Git project. This would be harder to
> handle for contributions that modify both the BOM and Pulsar.
>
>
> Thanks a lot for your feedback !
>
> Christophe
>


-- 
Nicolò Boschi

Reply via email to