-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce a BOM (Bill of Materials) for SmallRye GraphQL #2270
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Marvin Froeder <[email protected]>
Thanks, I think this is an awesome idea that we should have implemented earlier. I'm just worried a bit about the impact on the release automation, but hopefully it won't be much of a trouble (we won't know until we actually perform a release though) |
<plugin> | ||
<groupId>io.sundr</groupId> | ||
<artifactId>sundr-maven-plugin</artifactId> | ||
<version>0.200.0</version> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please extract this to a property, like all other dependency versions
|
||
<modules> | ||
<includes> | ||
<include>io.smallrye:*</include> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should exclude test-related modules (smallrye-graphql-integration-tests
, smallrye-graphql-client-generator-test
, smallrye-graphql-maven-plugin-tests
, smallrye-graphql-tck
, smallrye-graphql-client-tck
) and also smallrye-graphql-documentation
, so maybe it would be better to explicitly list the modules to include (without a wildcard)
Looking at this, I've also noticed that after moving to the new release process, our test-related modules have started being published too (see for example https://repo1.maven.org/maven2/io/smallrye/smallrye-graphql-integration-tests/2.12.1/) - CC @radcortez and @gastaldi - how do I avoid that? The modules set |
@jmartisk you just put the modules in a profile and disable them during the release. |
Motivation
Currently, users who depend on multiple SmallRye GraphQL artifacts must explicitly specify the version for each dependency, as shown in the example below:
This approach introduces unnecessary complexity, especially when integrating SmallRye GraphQL via frameworks like Quarkus. If a user needs to override the SmallRye GraphQL version, they must do so for each individual artifact.
Solution
I have a list of 11 dependencies to make sure a override it all from quarkus graphql client.
This PR introduces a Bill of Materials (BOM) for SmallRye GraphQL, allowing users to manage all SmallRye GraphQL dependencies with a single import:
With this change, users can:
This simplifies version management and improves maintainability, making it easier to update SmallRye GraphQL across projects.
Impact
Let me know if you need any adjustments! 🚀