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

docs: add info about breaking changes to contributing guide #854

Merged
merged 11 commits into from
Oct 26, 2023

Conversation

Dule-martins
Copy link
Contributor

@Dule-martins Dule-martins commented Oct 19, 2022

I extended the CONTRIBUTING.md file with content for Breaking Change vs Non Breaking Change.
This PR Resolves #688

I extended the CONTRIBUTING.md file with content for Breaking Change vs Non Breaking Change.
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Welcome to AsyncAPI. Thanks a lot for creating your first pull request. Please check out our contributors guide useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.

@Dule-martins Dule-martins changed the title Updated CONTRIBUTING.md with new content. docs: updated CONTRIBUTING.md with new content. Oct 19, 2022
@derberg
Copy link
Member

derberg commented Oct 20, 2022

Thanks a 💯 @Dule-martins

please modify:

  • PR title to docs: add info about breaking changes to contributing guide as it is important to always indicate core of the change. Not what file you updated, but what change was added
  • PR description. Add separate sentence like Resolves #688 so once we merge this PR, linked issue will be automatically closed

CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated
Comment on lines 85 to 92
_Non-breaking changes:_
- Adding a property

_Breaking changes:_
- Making a property required
- Making a property optional
- Removing a property
- Changing the type of a property in any way
Copy link
Member

Choose a reason for hiding this comment

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

Is it intended to be an exhaustive list or just an example?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

from the suggestion made I think it is a list, I can't be sure of how exhaustive it is nor if it is an example.
Maybe @derberg could explain that.

Copy link
Member

Choose a reason for hiding this comment

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

it is intended as a result of #688

it should be explicit

@Dule-martins Dule-martins changed the title docs: updated CONTRIBUTING.md with new content. docs: add info about breaking changes to contributing guide Oct 22, 2022
Co-authored-by: Fran Méndez <[email protected]>
fmvilas
fmvilas previously approved these changes Oct 27, 2022
@derberg
Copy link
Member

derberg commented Nov 8, 2022

@dalelane @char0n @smoya as this is a change to contribution guide, I think the rule to have 3 code owners approval applies here. 2 more are missing

@sonarqubecloud
Copy link

sonarqubecloud bot commented Nov 8, 2022

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

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

No Coverage information No Coverage information
No Duplication information No Duplication information

smoya
smoya previously approved these changes Nov 8, 2022
Copy link
Member

@smoya smoya left a comment

Choose a reason for hiding this comment

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

LGTM! 🚀🌔

Copy link
Collaborator

@char0n char0n left a comment

Choose a reason for hiding this comment

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

Proposing a suggestion about type backward compatibility.

CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated
Specifications are not much different than software. Some changes provided in the spec can cause breaking changes for tools that support it. For example, if one of the properties that was `required` becomes `optional`, it is considered a breaking change because some tools might depend on that property and fail if all suddenly it is not provided.

_Non-breaking changes:_
- Adding a property
Copy link
Collaborator

Choose a reason for hiding this comment

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

should this be adding an optional property?

Copy link
Member

Choose a reason for hiding this comment

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

Yes, definitely. If you add a required property, it's a breaking change.

Copy link
Member

Choose a reason for hiding this comment

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

@dalelane makes sense, can you make a code change suggestion for @Dule-martins please?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@derberg I just committed all suggestions made here.

CONTRIBUTING.md Outdated Show resolved Hide resolved
@github-actions
Copy link

This pull request has been automatically marked as stale because it has not had recent activity 😴

It will be closed in 120 days if no further activity occurs. To unstale this pull request, add a comment with detailed explanation.

There can be many reasons why some specific pull request has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model.

Let us figure out together how to push this pull request forward. Connect with us through one of many communication channels we established here.

Thank you for your patience ❤️

@github-actions github-actions bot added the stale label Mar 16, 2023
@Dule-martins Dule-martins dismissed stale reviews from smoya and fmvilas via 9b937fc March 16, 2023 05:03
Dule-martins and others added 3 commits March 16, 2023 06:03
Co-authored-by: Dale Lane <[email protected]>
Co-authored-by: Dale Lane <[email protected]>
Co-authored-by: Vladimír Gorej <[email protected]>
@github-actions github-actions bot removed the stale label Mar 17, 2023
CONTRIBUTING.md Outdated Show resolved Hide resolved
dalelane
dalelane previously approved these changes Apr 5, 2023
Copy link
Collaborator

@dalelane dalelane left a comment

Choose a reason for hiding this comment

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

I've left a minor suggested wording improvement, but essentially this looks good to me

@derberg
Copy link
Member

derberg commented Apr 13, 2023

we need to specify something super important about breaking change and understanding of backwards incompatibility

discussed scenario:

  • I have AsyncAPI document in version 2.4
  • It has security field under operation (not supported in previous versions)
  • I switch my version of AsyncAPI document to 2.3

expected result:

  • as adding new property is not a breaking change, it is expected that it is a valid AsyncAPI 2.3 document
  • in other words, parser written for AsyncAPI 2.3 will still successfully parse such AsyncAPI document with security in operation

current result:

  • tools fail because JSON Schema for AsyncAPI says additionalProperties: false
  • specification says explicitly that additional data can be added to extend the specification but as x- extension

This basically means that new optional filed is also a breaking changes because it is not backward compatible

more info on 3.0 call -> https://youtu.be/hN6aE3Ebn08?t=1105 (specific moment pointed)

thoughts?

@GreenRover
Copy link
Collaborator

Recap of today spec 3.0 meeting:

  • backward compatibility is not a goal:
    if the parser is cape able to handle max spec version 2.7 it will not be able to handle 2.8.
    Of the viewpoint tooling every minor spec increase is breaking
  • a possible way to define breaking change is:
    you take a spec and change the version number to a newer one and done have to modify something else. The spec is not breaking.

Co-authored-by: Dale Lane <[email protected]>
@Dule-martins Dule-martins dismissed stale reviews from dalelane and smoya via da826f7 April 15, 2023 19:10
@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

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

No Coverage information No Coverage information
No Duplication information No Duplication information

@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

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

No Coverage information No Coverage information
No Duplication information No Duplication information

@sonarqubecloud
Copy link

sonarqubecloud bot commented Sep 4, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

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

No Coverage information No Coverage information
No Duplication information No Duplication information

@derberg
Copy link
Member

derberg commented Sep 4, 2023

@char0n we are not able to merge without your approval as in the past you requested changes

Copy link
Collaborator

@char0n char0n left a comment

Choose a reason for hiding this comment

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

LGTM

@char0n
Copy link
Collaborator

char0n commented Oct 26, 2023

@derberg approval provided

@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

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

No Coverage information No Coverage information
0.0% 0.0% Duplication

@smoya
Copy link
Member

smoya commented Oct 26, 2023

/rtm

@asyncapi-bot asyncapi-bot merged commit 0e1d020 into asyncapi:master Oct 26, 2023
8 checks passed
@asyncapi-bot
Copy link
Contributor

🎉 This PR is included in version 3.0.0-next-major-spec.18 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@asyncapi-bot
Copy link
Contributor

🎉 This PR is included in version 3.0.0 🎉

The release is available on GitHub release

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.

What do we define as a breaking change?
8 participants