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

feat!: add 3.0.0 validation support #208

Merged
merged 147 commits into from
Nov 30, 2023
Merged

feat!: add 3.0.0 validation support #208

merged 147 commits into from
Nov 30, 2023

Conversation

jonaslagoni
Copy link
Member

@jonaslagoni jonaslagoni commented Apr 21, 2022

When this is merged, from version 6 and onwards, all pre-release spec versions will be released as a regular feature request, before the spec itself is released.

The pre-release version will be released as if it was not a pre-release, for example for AsyncAPI 3.0, it will be released as normal:

module.exports = {
    'schemas': {
        ...
        '3.0.0': require('./schemas/3.0.0.json'),
    },
    'schemasWithoutId': {
        ...
        '3.0.0': require('./schemas/3.0.0-without-$id.json'),
    }
};

However, while the it's still a pre-release, the underlying schemas CAN contain breaking changes from version to version, up until the spec is released. This means that one AsyncAPI document using v3 in the pre-release stage might be valid in 6.0.0, but invalid in the 6.1.0. This ONLY applies to pre-release schemas, and NOT regular ones that is set in stone.

If you want to make sure you don't use a schema not released yet, you have to whitelist which versions you allow in your tool.

This PR is created upfront to reflect on a daily basis what things are included in the release.

Also, the reason to create this PR a long time before the release is to enable automation (bot keeps upstream branches always up to date with master, see this action) that we have in place to regularly update the release branch with whatever is changed in the master branch. So nobody has to do it manually.

@jonaslagoni
Copy link
Member Author

/au
/dnm

@fmvilas
Copy link
Member

fmvilas commented Nov 27, 2023

Yeah, long-living branches are a pain. In the future we should probably leverage feature flags or similar.

I vote for merging this PR already. Other improvements and fixes can be done in minor and patch versions.

fmvilas
fmvilas previously approved these changes Nov 27, 2023
Copy link
Member

@fmvilas fmvilas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can already merge this.

fmvilas
fmvilas previously approved these changes Nov 30, 2023
Copy link

SonarCloud Quality Gate failed.    Quality Gate failed

Bug C 4 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 6 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication

idea Catch issues before they fail your Quality Gate with our IDE extension sonarlint SonarLint

@derberg
Copy link
Member

derberg commented Nov 30, 2023

ready to merge, sonar complains about CI building which can be later ignored anyway, not runtime related

@derberg derberg merged commit 6300c37 into master Nov 30, 2023
12 of 13 checks passed
derberg added a commit to derberg/asyncapi-node that referenced this pull request Nov 30, 2023
This reverts commit 6300c37, reversing
changes made to 8369438.
@fmvilas
Copy link
Member

fmvilas commented Nov 30, 2023

🎉 🥳

derberg added a commit that referenced this pull request Nov 30, 2023
This reverts commit 6300c37, reversing
changes made to 8369438.
@asyncapi-bot
Copy link
Contributor

🎉 This PR is included in version 6.0.0-next-major-spec.17 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.