-
-
Notifications
You must be signed in to change notification settings - Fork 23
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 INCUBATING status #5
Comments
I think experimental suffices for such use cases as well. Ultimately, we do not want to condone a proliferation of enum constants. |
How about a common extension interface, that would allow to add some metadata API declaration. This could be an additional entry point for external tools that would like to work with API-Guardian. |
I don't understand what you are proposing with a "common extension interface".
If you mean something else, please expound. |
The most primitive extension interface would be tagging:
Those tags would not change any semantics in scope of this project, but could be used by external tools to customize their behaviour, e.g. Another approach would be attributes:
with usage
I may have screwed up the syntax of annotation-as-value, but you get the gist. I don't like neither of these approaches, to be honest... I'm not sure whether that should be handled on level of this API, or extensions like that should be handled via tool-specific annotations. Common interface would make it more managable and provide better tool interoperability, but at this moment it is hard to think of all the possible use cases and we may find ourselves in a situation where such extension entry point will be insufficient for some tool. |
I'm missing API status that would mean "this is completely new feature and it will almost definitely change - expect SOME solution to problem solved by this, but don't get too attached to current form".
That way EXPERIMENTAL would mean something like "this API may morph, but gradually", while INCUBATING would mean "we have no clue how to describe this domain/context, but here's an approach".
I wouldn't provide any contract on what happens to such features in future versions, but I'd say that INCUBATING features shouldn't be promoted directly to MAINTAINED or STABLE and should go through EXPERIMENTAL stage first.
In the end, EXPERIMENTAL would mean "we're polishing this", while INCUBATING would mean "we're coming up with this".
The text was updated successfully, but these errors were encountered: