Skip to content
This repository was archived by the owner on Nov 19, 2024. It is now read-only.

Add 'GraphQl backward compatibility policy' section to backward compatibility guide #4493

Merged

Conversation

vpodorozh
Copy link
Contributor

@vpodorozh vpodorozh commented May 11, 2019

Purpose of this pull request

Add 'GraphQl backward compatibility policy' section to backward compatibility guide.
Wiki article with info: https://github.com/magento/graphql-ce/wiki/Approach-to-Implementation#backward-compatibility-policy

Affected DevDocs pages

whatsnew
Added the "GraphQl backward compatibility policy" section to Backward compatible development

@devops-devdocs
Copy link
Collaborator

An admin must run tests on this PR before it can be merged.

@ronak2ram ronak2ram self-requested a review May 12, 2019 03:59
@ronak2ram ronak2ram self-assigned this May 12, 2019
vpodorozh added 8 commits May 16, 2019 15:05
…tibility guide.

Move changes before the variables.
…rd compatibility guide. Move changes before the variables."

This reverts commit 5b4b659
…olicy' into graphql-backward-compatibility-policy

# Conflicts:
#	guides/v2.1/contributor-guide/backward-compatible-development/index.md
@vpodorozh
Copy link
Contributor Author

@ronak2ram - I've updated article for v2.3 with latest changes.

@ronak2ram
Copy link
Member

@vpodorozh thanks for the update. looks good.

@dshevtsov
Copy link
Collaborator

dshevtsov commented May 24, 2019

Any changes to policies must get an approval by architects before merge.

@dshevtsov dshevtsov requested a review from dobooth May 24, 2019 15:47
Copy link
Contributor

@keharper keharper left a comment

Choose a reason for hiding this comment

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

I can't make inline comments on GitHub. Make sure you run the git rm <filename> when you break a symlink.

Add a blank line after the new heading, and change the wording to be similar to the following:

In GraphQL, the schema is the only code that can be counted as a contract.

Only the schema should be taken into account for backward compatibility.

The GraphQL codebase should NOT follow the restrictions described in this topic. For example, skip all the backward compatibility restrictions for the GraphQL PHP codebase.

@vpodorozh
Copy link
Contributor Author

@keharper - done.
Thx!

@keharper
Copy link
Contributor

keharper commented Jun 4, 2019

@buskamuza @paliarush Please review the "GraphQl backward compatibility policy" section at the bottom of the document.

@keharper keharper added the Major Update Significant original updates to existing content label Jun 4, 2019
Copy link
Contributor

@buskamuza buskamuza left a comment

Choose a reason for hiding this comment

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

Should this be stated explicitly? As long as GraphQL classes/interfaces are not marked with @api, they go under the general rule of being private code.
Though it should be stated somewhere that GraphQL schema is part of public API. @paliarush should know better where this is (should be) described

@bdenham bdenham added the 2.3.x Magento 2.3 related changes label Jun 27, 2019
Copy link
Contributor

@paliarush paliarush left a comment

Choose a reason for hiding this comment

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

Added section makes sense, requires additional proofreading by the Magento DevDoc team.


* In GraphQL, the schema is the only code that can be counted as a contract.
* Only the schema should be taken into account for backward compatibility.
* The GraphQL codebase should NOT follow the restrictions described in this topic. For example, skip all the `backward compatibility` restrictions for the GraphQL PHP codebase.
Copy link
Contributor

Choose a reason for hiding this comment

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

The only exception we make for GraphQL is we allow MINOR code changes in PATCH Magento releases. Any MAJOR changes are not permitted in PATCH releases. This includes MAJOR changes in schema as well as in the codebase. In the codebase we do not have GraphQL-related classes marked with @api intentionally because the project is still in the development phase and we do not want limit refactoring capabilities.

GraphQL schema is considered @api.

@dobooth
Copy link
Contributor

dobooth commented Jul 15, 2019

running tests

1 similar comment
@dobooth
Copy link
Contributor

dobooth commented Jul 16, 2019

running tests

@dobooth
Copy link
Contributor

dobooth commented Jul 16, 2019

running tests

@dobooth dobooth merged commit 6d18abc into magento:master Jul 16, 2019
@ghost
Copy link

ghost commented Jul 16, 2019

Hi @vpodorozh, thank you for your contribution!
Please, complete Contribution Survey, it will take less than a minute.
Your feedback will help us to improve contribution process.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
2.3.x Magento 2.3 related changes Major Update Significant original updates to existing content Partner: ISM eCompany partners-contribution PR created by Magento partner
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants