Why does the Narayana BOM feature third-party dependencies?

28 views
Skip to first unread message

Laird Nelson

unread,
Sep 25, 2023, 1:17:25 PM9/25/23
to narayana-users
I was curious why the Narayana BOM features third-party dependencies, instead of the more common practice of including only what you publish.

Best,
Laird

Manuel Finelli

unread,
Sep 25, 2023, 3:37:14 PM9/25/23
to Laird Nelson, narayana-users
Hi Laird, The goal of JBTM-3735 was to simplify the version management of Maven dependencies across Narayana.

Best,
Manuel

--
You received this message because you are subscribed to the Google Groups "narayana-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to narayana-user...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/narayana-users/CAHNdxu%3DEHfiSjJ46cOhhnXw%2BHU7H_TAUc6PoriN3SPnHe_Y5PA%40mail.gmail.com.

Laird Nelson

unread,
Sep 25, 2023, 4:23:30 PM9/25/23
to Manuel Finelli, narayana-users
I see; thank you. It's just that: most BOMs include only what a project publishes so that other projects using those BOMs can continue to use their transitive dependency convergence strategies. The Narayana BOM, as currently constituted, prevents that.

Some arbitrarily selected examples:


…and so on.

Thanks again for the rationale.

Michael Musgrove

unread,
Sep 26, 2023, 6:04:57 AM9/26/23
to narayana-users
We need to harmonise dependency versions across the various Narayana modules.

If we did it the same way as WildFly does it would that work for you, for example the standard ee bom contains:

```
    <dependencyManagement>
        <dependencies>
            <!-- Inherit the common deps -->
            <dependency>
                <groupId>${ee.maven.groupId}</groupId>
                <artifactId>wildfly-common-ee-dependency-management</artifactId>
                <version>${ee.maven.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
```

and the wildfly-common-ee-dependency-management pom is similar to our bom in the sense that it includes third-party dependencies, i.e. the resulting "effective-pom" for the WildFly bom will be similar to the narayana bom.

Marco Sappe Griot

unread,
Sep 28, 2023, 9:30:05 AM9/28/23
to ljne...@gmail.com, narayana-users
Thanks Laird for your question,
we decided to add extra description and comments in Narayana BOMs in order to clarify their function.
You can see the merged PR.
Marco


Laird Nelson

unread,
Sep 28, 2023, 12:11:41 PM9/28/23
to narayana-users
No, but that's OK, we just won't use it.

Normally BOMs are exactly that: a bill of materials of the stuff the project makes, not stuff it uses.  (This thing, whatever it is, is a convenience collection of managed versions for a particular set of use cases, and it probably satisfies those use cases, whatever they are, just fine.)

Michael Musgrove

unread,
Sep 29, 2023, 5:45:41 AM9/29/23
to Laird Nelson, narayana-users
So, since the WildFly BOMs inherit common third party dependencies in the dependencyManagement section (I provided links in my previous message), I think we should follow their lead.

Marco Sappe Griot

unread,
Sep 29, 2023, 6:40:00 AM9/29/23
to narayana-users, Laird Nelson
I agree with Mike, 
Laird, would that be convenient for your use-case?

Thanks,
Marco

Laird Nelson

unread,
Sep 29, 2023, 12:18:50 PM9/29/23
to narayana-users
I'm honestly not sure. All of the other BOMs we use don't have third party dependencies in them, so we probably won't start here. Thanks for the conversation!
Reply all
Reply to author
Forward
0 new messages