Skip to content
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

Quarkus bom should provide io.sundr builder-annotations #42991

Open
shawkins opened this issue Sep 3, 2024 · 8 comments
Open

Quarkus bom should provide io.sundr builder-annotations #42991

shawkins opened this issue Sep 3, 2024 · 8 comments
Labels
kind/enhancement New feature or request

Comments

@shawkins
Copy link
Contributor

shawkins commented Sep 3, 2024

Description

The quarkus platform bom provides the other operator sdk / fabric8 dependencies, so it would be good to include builder-anntations as that is commonly used with custom resources.

cc @manusa

Implementation ideas

No response

@geoand
Copy link
Contributor

geoand commented Sep 4, 2024

cc @iocanel @metacosm

@metacosm
Copy link
Contributor

metacosm commented Sep 4, 2024

I'm conflicted on this. On the one hand, it makes sense to manage this dependency since it is used de facto in downstream projects. On the other hand, I feel like this is an internal implementation detail that maybe shouldn't be exposed to end users…

@gsmet
Copy link
Member

gsmet commented Sep 4, 2024

If it's commonly used with custom resources as mentioned above, it doesn't look like an internal implementation detail?

@metacosm
Copy link
Contributor

metacosm commented Sep 4, 2024

If it's commonly used with custom resources as mentioned above, it doesn't look like an internal implementation detail?

To elaborate a little more on my thinking: these annotations can be used to generate fluent builders that follow the same patterns as the client but it's certainly not required to use the client by any means. That said, if people do want to use this, it's probably better that they indeed use the same version as the client's.

However, I would rather not expose this at all if we could help it since it has been a source of problems (see for example the binary compatibility issue that happened recently). Unfortunately, we probably cannot not expose it so it might indeed be better to do it in a "controlled" way via the BOM.

@shawkins
Copy link
Contributor Author

shawkins commented Oct 2, 2024

To do this properly - that is have the dependency come from fabric8 - then we'll either need to remove the provided scope in our pom (and update all of our references to it) or introduce another pom to act as the bom. @manusa are you good with just updating the fabric8 pom have builder-annotations not at the provided scope?

@metacosm
Copy link
Contributor

metacosm commented Oct 2, 2024

Wouldn't that mean that the sundrio jar would end up in users' dependencies at runtime, though?

@shawkins
Copy link
Contributor Author

shawkins commented Oct 2, 2024

Wouldn't that mean that the sundrio jar would end up in users' dependencies at runtime, though?

It would be on the user to set the scope to provided - which is what they have to do currently anyway. The difference is that they won't have to manage the version.

@manusa
Copy link
Contributor

manusa commented Oct 4, 2024

@manusa are you good with just updating the fabric8 pom have builder-annotations not at the provided scope?

Sure, no problem.
We just need to ensure all of the references are updated accordingly, which I think you did already in fabric8io/kubernetes-client#6407

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants