-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
Clarify the contract of features and capabilities #9740
Conversation
47d8b10
to
069e436
Compare
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.
One comment is whether it should also update the documentation at https://quarkus.io/guides/building-my-first-extension#deploying-the-greeting-feature and https://quarkus.io/guides/writing-extensions#sample-test-extension to explain features and capability differences
@kenfinnigan That's a very good point. I'll update those docs tomorrow. |
I might have missed something since I am on PTO today, but what motivated this? |
There was a discussion around features and capabilities here: https://groups.google.com/forum/#!topic/quarkus-dev/QnGTnXIEAW8 (first part of the thread) So I've tried to clarify the contract and refactor some bits, because the string constants are error-prone (even now there are inconsistencies like @geoand Do you think it's useless (or too much ;-)? |
Not at all, I just wanted to know what promted it :) |
One rather serious implication is that this might break 3rd party extensions out there, potentially making releasing version 1.6 of the platform kind of hard. |
069e436
to
fe6ebd2
Compare
Yeah, I know. The 3rd party extensions that use the capabilities constants would break as I mentioned in the description. Here's the point - we should either do it now or never. And I tend to prefer the first option ;-). |
Yeah, I agree with you, it's now or never. But since it could impact the release 1.6 a lot, I see this as being as something in which @gsmet should have the final say. |
91dffcf
to
1a88ab3
Compare
@geoand I've reintroduced but deprecated the capabilities constants. This should help a little. |
Indeed, that should go a long way, thanks! +1 from me |
1a88ab3
to
73838e9
Compare
@kenfinnigan docs updated... |
1103b1f
to
539c023
Compare
- introduce enums for core extensions - validate duplicate features - deprecate capabilities constants - only extensions that use hard-coded string constants may be broken (due to introduction of naming conventions)
539c023
to
770dbae
Compare
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.
Looks good from a quick glance. Thanks for having the old constants back, that was necessary.
Let's wait for CI and merge.
This PR breaks compatibility:
Capabilities
andFeatureBuildItem
are extracted into enum values; i.e. theFeatureBuildItem.AGROAL
is now available asFeature.AGROAL.getName()
(and the name is generated from the enum name).io.quarkus.container-image-s2i
is nowio.quarkus.container.image.s2i