-
-
Notifications
You must be signed in to change notification settings - Fork 96
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
Adopt and/or adapt Spectral rules from AsyncAPI v2 Core ruleset to v3 #1016
Comments
bounty/candidate |
Bounty Issue's service commentText labels: @asyncapi/bounty_team The Bounty Program is not a Mentorship Program. The accepted level of Bounty Program Participants is Middle/Senior.Third-party contributors should coherently articulate how they are going to approach the resolution process when expressing a desire to work on this Bounty Issue. |
cc @smoya (here is a brief outline of the first four rule) |
@ibishal I read your DM's where you share what your contributions to AsyncAPI are, and I determined that this task requires a bit more of experience with not only the Parser but within the spec. Not really sure you are the right candidate for this to work as a bounty issue, but feel free to submit PR's if you want to still work on it outside the bounty. |
OTHER ISSUES
If @ibishal wants to contribute, they can submit PRs for OTHER ISSUES, leaving the Bounty Issue intact, in order not to pollute its pristineness. |
Reiterating what I mentioned to @ibishal here, any user is encouraged to work on any of the issues available, no matters if they belong to an unassigned Bounty. That doesn't mean those issues will be assigned ever to the user since we only assign issues in programs such as Bounty, GSoC, etc. At least this is how I see it as maintainer of this repo. cc @jonaslagoni @magicmatatjahu just in case they wanna share their opinion on this |
If a regular contributor made a PR addressing So, to avoid the impact of this period between the assignment of the GitHub label The idea behind the Bounty Program is that there is one Bounty Program Participant and one AsyncAPI Maintainer, so it's clearly understandable who solved the Bounty Issue and therefore who should be rewarded for it. cc @derberg |
In other words, acceptance of PRs between the moment of assignment of the GitHub label |
As shared via DM with you @aeworxet, I believe this topic deserves a proper discussion, and in another place rather than this issue. I'm happy to contribute to that discussion and express my concerns. I think this discussion should involve maintainers of other repos as well. |
Context
Spectral rules are the rules that validate AsyncAPI documents. There are different types or levels:
In the case of AsyncAPI Spec v3, the rules that apply ATM are:
asyncapi-is-asyncapi
- The input must be a document with a supported version of AsyncAPI.asyncapi-latest-version
- Checking if the AsyncAPI document is using the latest version.asyncapi-document-resolved
- Checking if the AsyncAPI document has valid resolved structure.asyncapi-document-unresolved
- Checking if the AsyncAPI document has valid unresolved structure.asyncapi-internal
- That rule is internal to extend Spectral functionality for Parser purposes.asyncapi3-operation-messages-from-referred-channel
- Operation "messages" must be a subset of the messages defined in the channel referenced in this operation.asyncapi3-required-operation-channel-unambiguity
- The "channel" field of an operation under the root "operations" object must always reference a channel under the root "channels" object.asyncapi3-required-channel-servers-unambiguity
- The "servers" field of a channel under the root "channels" object must always reference a subset of the servers under the root "servers" object.Description
If you check how many specific v2 rules are, you will notice a lot compared to v3. This PR tries to fix that gap between Spec versions and adopt or adapt those rules from v2 that make sense in v3. We will be focusing on Core rules and skip Recommended rules by now (we will work on it in a next iteration).
Core Rules we might want to adopt/adapt from v2 to v3:
asyncapi3-server-variables
for the v3 core ruleset #1017asyncapi3-channel-no-query-nor-fragment
for the v3 core ruleset #1018asyncapi3-channel-parameters
for the v3 core ruleset #1019asyncapi3-channel-servers
for the v3 core ruleset #1020asyncapi3-operation-operationId-uniqueness
for the v3 core ruleset #1021asyncapi3-message-messageId-uniqueness
for the v3 core ruleset #1022asyncapi3-tags-uniqueness
for the v3 core ruleset #1023asyncapi3-message-examples
for the v3 core ruleset #1024Discarded rules:
asyncapi2-server-security
- Server have to reference a defined security schemes.security
field.asyncapi2-operation-security
- Operation have to reference a defined security schemes.asyncapi2-server-security
The text was updated successfully, but these errors were encountered: