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

Add API versioning and deprecation policy #14975

Merged
merged 9 commits into from Nov 4, 2022
Merged

Conversation

varbanv
Copy link
Contributor

@varbanv varbanv commented Jul 29, 2022

Description

Changes proposed in this pull request:

  • Document API versioning and deprecation information

Related issue(s)
#14737

@CLAassistant
Copy link

CLAassistant commented Jul 29, 2022

CLA assistant check
All committers have signed the CLA.

@varbanv varbanv added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 29, 2022
@kyma-bot kyma-bot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Jul 29, 2022
@netlify
Copy link

netlify bot commented Jul 29, 2022

🥰 Documentation preview ready! 🥰

Name Link
🔨 Latest commit f33ef90
🔍 Latest deploy log https://app.netlify.com/sites/kyma-project-docs-preview/deploys/6364ef569fddac0009d5f5a3
😎 Deploy Preview https://deploy-preview-14975--kyma-project-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

@varbanv varbanv changed the title Add API Overview and deprecation policies Add API versioning and deprecation policy Jul 29, 2022
@kyma-bot kyma-bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 29, 2022
@varbanv varbanv added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 29, 2022
@a-thaler
Copy link
Contributor

/retest

Co-authored-by: Piotr Bochyński <p.bochynski@gmail.com>
Copy link
Contributor

@pbochynski pbochynski left a comment

Choose a reason for hiding this comment

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

Majority of the content is copied from https://kubernetes.io/docs/reference/using-api/deprecation-policy
Please make it a quote, provide the source (or maybe just link it instead).

Added links to the official Kubernetes documentation that provided the source for the policy.
pbochynski
pbochynski previously approved these changes Oct 25, 2022
@kyma-bot kyma-bot added the lgtm Looks good to me! label Oct 25, 2022
@pbochynski pbochynski removed their assignment Oct 25, 2022
@kyma-bot kyma-bot removed the lgtm Looks good to me! label Oct 27, 2022
@varbanv varbanv removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Nov 2, 2022
@varbanv
Copy link
Contributor Author

varbanv commented Nov 2, 2022

/retest

docs/05-technical-reference/00-api-overview/README.md Outdated Show resolved Hide resolved
docs/05-technical-reference/00-api-overview/README.md Outdated Show resolved Hide resolved
docs/05-technical-reference/00-api-overview/README.md Outdated Show resolved Hide resolved
docs/05-technical-reference/00-api-overview/README.md Outdated Show resolved Hide resolved
docs/05-technical-reference/00-api-overview/README.md Outdated Show resolved Hide resolved
docs/05-technical-reference/00-api-overview/README.md Outdated Show resolved Hide resolved
docs/05-technical-reference/00-api-overview/README.md Outdated Show resolved Hide resolved
docs/05-technical-reference/00-api-overview/README.md Outdated Show resolved Hide resolved

### REST resources (aka API objects)

Consider a hypothetical REST resource named Widget, which was present in API v1 in the above timeline, and which needs to be deprecated. We document and announce the deprecation in sync with release X+1. The Widget resource still exists in API version v1 (deprecated) but not in v2alpha1. The Widget resource continues to exist and function in releases up to and including X+8. Only in release X+9, when API v1 has aged out, does the Widget resource cease to exist, and the behavior get removed.
Copy link
Contributor

Choose a reason for hiding this comment

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

Correct me if I'm wrong, but I think the numbers in the following sentences need to be changed as the period of supporting beta API versions has been changed from 9 to 6 months.
"The Widget resource continues to exist and function in releases up to and including X+8. The Widget resource ceases to exist, and the behavior gets removed in release X+9,..."


### Fields of REST resources

As with whole REST resources, an individual field which was present in API v1 must exist and function until API v1 is removed. Unlike whole resources, the v2 APIs may choose a different representation for the field, as long as it can be round-tripped. For example a v1 field named "magnitude" which was deprecated might be named "deprecatedMagnitude" in API v2. When v1 is eventually removed, the deprecated field can be removed from v2.
Copy link
Contributor

Choose a reason for hiding this comment

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

The phrase "whole REST resources" is used a few times and I'd like to clarify if the meaning is all of REST resources meaning each of them, or each of them as a whole - shall we say - unit.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It should be the second - so you can deprecate the whole REST resource, or just one or more fields.

Co-authored-by: Iwona Langer <iwona.langer@sap.com>
@kyma-bot kyma-bot added the lgtm Looks good to me! label Nov 4, 2022
@kyma-bot
Copy link
Contributor

kyma-bot commented Nov 4, 2022

@varbanv: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
pull-telemetry-operator-unit-test 6a2c6ee link true /test pull-telemetry-operator-unit-test
pull-compass-runtime-agent-unit-test 6a2c6ee link true /test pull-compass-runtime-agent-unit-test
pull-function-controller-unit-test 6a2c6ee link true /test pull-function-controller-unit-test
pull-event-publisher-proxy-unit-test 27e60a3 link true /test pull-event-publisher-proxy-unit-test
pull-eventing-controller-unit-test 27e60a3 link true /test pull-eventing-controller-unit-test
pre-main-check-users-map f33ef90 link false /test pre-main-check-users-map

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@kyma-bot kyma-bot merged commit e9287c6 into kyma-project:main Nov 4, 2022
@IwonaLanger IwonaLanger added the area/documentation Issues or PRs related to documentation label Nov 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/documentation Issues or PRs related to documentation lgtm Looks good to me! size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants