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

breaking changes in v1.7.0 without notice - no migration path given #1000

Closed
talbx opened this issue Oct 2, 2024 · 4 comments
Closed

breaking changes in v1.7.0 without notice - no migration path given #1000

talbx opened this issue Oct 2, 2024 · 4 comments
Labels
bug Something isn't working

Comments

@talbx
Copy link

talbx commented Oct 2, 2024

Describe the bug
Public APIs such as the AsyncAnnotationScanner were removed / altered in a breaking manner.
In the release notes for v1.7.0 nothing is mentioned regarding this.
A migration path for consumers of those changed / deleted public classes is missing.

Upgrading to v1.7.0 (in my case from v1.6.0) is breaking the build.

Dependencies and versions used
springwolf-core version 1.7.0.

Code example
See this commit fa63e49.
Multiple classes were deleted, multiple classes were moved into different packages, such as the AsyncAnnotationProvider

ps: my team is using e.g AsyncAnnotationScanner and AsyncAnnotationProvider to help supporting multi-spec async API in our project. For more info see #805

ps²: are u generally using semver? if yes then this release number should be re-evaluated
Stack trace and error logs

@talbx talbx added the bug Something isn't working label Oct 2, 2024
Copy link

github-actions bot commented Oct 2, 2024

Welcome to Springwolf. Thanks a lot for reporting your first issue. Please check out our contributors guide and feel free to join us on discord.

@timonback
Copy link
Member

Hi @talbx,
Thank you for the feedback.

Springwolf uses interfaces to allow to inject functionality at integration points. Springwolf provides default implementation, but those can be replaced. All default implementations are Spring managed beans, which can be overridden.
Source: https://www.springwolf.dev/docs/configuration/customizing

We consider most public interfaces as public APIs (i.e. ChannelScanner). Any implementations (including beans) are considered internal, but can be adapted/used/replaced on your own risk.
While we update the implementation to improve Springwolf, we try to keep the public interfaces stable in minor releases and do not mention this explicitly in the release notes.

We welcome you to participate at Springwolf.
To avoid future changes, we are interested to hear about your use-case and whether you can upstream your changes so that others can benefit as well.

Also, we have started on #805. Feel free to comment, implement and/or test so that there is no need for private customization.

@timonback timonback added the waiting for feedback Waiting for user feedback/response label Oct 11, 2024
@talbx
Copy link
Author

talbx commented Oct 18, 2024

Hi @timonback,

thanks for the feedback!

Well you are completely right, we should just stick to the interfaces 😄 .
Of course we didn't since we worked on the custom usecase (#805) and needed to use some beans directly - so the release would probably not really effect other uses who use this library as it was intended in the first place.

Since you started working on #805, we are pausing the upgrade to v1.7.0, because with finalization of said issue, our efforts become obsolete anyway. I will clarify in which manner we can assist you; e.g with further input or actual code contributions.

This issue can be closed then!

Thank you!

@github-actions github-actions bot removed the waiting for feedback Waiting for user feedback/response label Oct 18, 2024
@timonback
Copy link
Member

Hi @talbx,
a first preview of #805 is implemented. More details: #805 (comment)

We are looking forward to your feedback

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants