-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
split kubernetes-client into an api and an impl #3645
Comments
Changes (some breaking) that are needed for this:
Based upon the above the only dependencies needed will be slf4j (which could be marked as provided) and jackson (which we could minimize somewhat. It would take quite a bit more work to refactor / break things to not have those. |
Opened a pr #3654 to show what this module would look like - which addresses the interface related questions above, but does not yet make the kubernetes-client module use the new one, so split packages have not been addressed. Additional thoughts after working through this:
@manusa @metacosm @rohanKanojia if all of this seems like too much to bite off in a single release, we could start just with making the proposed interface changes prior to creating a new module. |
Some things to move out of utils and other api packages: UnmatchedFieldTypeModule is effectively part of the public api. It looks like most of the rest of utils would have to stay given their general nature. |
this is currently not used this is to avoid having the same class in multiple jars
… split/repackaging
… split/repackaging
… split/repackaging
Is your task related to a problem? Please describe
Rather than just creating an api module specific to the http api, we can consider splitting the whole kubernetes-client into a separate api module.
Describe the solution you'd like
This is related to #3549 and #2829 - beyond CustomResource and CustomResourceList, it would be a good idea for the dsl, client package interfaces, etc. to be in their own api module. As much as possible the compile dependencies like common-*, generex, bouncy castle, slf4j, and ideally jackson would be eliminated there.
This would also somewhat alleviate the need for the internal package convention - only classes from the api would be intended for public use.
Ideally this will add some flexibility in terms of matching version across dependencies - if you depend on a module that uses fabric8 6.0.1 api, that should work with any fabric8 6.0.x impl, etc.
Describe alternatives you've considered
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: