asyncapi / parser-js

AsyncAPI parser for Javascript (browser-compatible too).
Apache License 2.0
118 stars 93 forks source link

Adopt and/or adapt Spectral rules from AsyncAPI v2 Core ruleset to v3 #1016

Open smoya opened 3 months ago

smoya commented 3 months ago

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:

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:

Discarded rules:

smoya commented 3 months ago

bounty/candidate

aeworxet commented 3 months ago

Bounty Issue's service comment

Text labels: bounty/2024-Q3, bounty/medium, bounty/coding, bounty/unpicked, bounty/eol First assignment to third-party contributors: 2024-06-21 00:00:00 UTC+12:00 End Of Life after: 2024-07-31 23:59:59 UTC-12:00

@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.
ibishal commented 3 months ago

cc @smoya (here is a brief outline of the first four rule)

smoya commented 3 months ago

@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. Happy to discuss if you truly believe I'm making a mistake here.

aeworxet commented 3 months ago

feel free to submit PR's if you want to still work on

OTHER ISSUES

outside the bounty.

If @ibishal wants to contribute, they can submit PRs for OTHER ISSUES, leaving the Bounty Issue intact, in order not to pollute its pristineness.

smoya commented 3 months ago

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. Once a Bounty issue is assigned, any other PR sent in parallel regarding that issue will be discarded but only if that Bounty issue is assigned. If the issue is not assigned yet, why would I stop someone from contributing to it?

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

aeworxet commented 3 months ago

@smoya

If a regular contributor made a PR addressing 10/100 of a Medium Bounty Issue, this already erodes the initial Complexity Level of the Bounty Issue with which it was submitted and accepted into the Bounty Program. Not talking about 20/100 or even 50/100.

So, to avoid the impact of this period between the assignment of the GitHub label bounty and the assignment of the Bounty Issue to a Bounty Program Participant of three (3) days, I would propose to stop accepting PRs starting from the moment of assignment of the GitHub label bounty (which I intentionally made unambiguous, dependent on the unchangeable GitHub timestamp) and not starting from the moment of the assignment of the Bounty Issue to a Bounty Program Participant.

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

aeworxet commented 3 months ago

In other words, acceptance of PRs between the moment of assignment of the GitHub label bounty and the moment of assignment of the Bounty Issue to a Bounty Program Participant creates a race condition for the Bounty Program, which I obviously try to avoid by shifting mutex earlier in the execution sequence.

smoya commented 3 months ago

In other words, acceptance of PRs between the moment of assignment of the GitHub label bounty and the moment of assignment of the Bounty Issue to a Bounty Program Participant creates a race condition for the Bounty Program, which I obviously try to avoid by shifting mutex earlier in the execution sequence.

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.