Skip to content

Commit c2ef3c5

Browse files
Initial pass of versioning guidelines (#564)
* Initial pass of versioning guidelines * Apply suggestions from PR review Co-authored-by: Jeffrey Richter <[email protected]>
1 parent a60faaa commit c2ef3c5

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

azure/VersioningGuidelines.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Azure Versioning Guidelines
2+
3+
## History
4+
5+
<details>
6+
<summary>Expand change history</summary>
7+
8+
| Date | Notes |
9+
| ----------- | -------------------------------------------------------------- |
10+
| 2024-Nov-14 | Azure Service Versioning & Breaking Change Guidelines |
11+
12+
</details>
13+
14+
## Guidelines
15+
16+
This document provides a "Dos and Don'ts" list for complying with the Azure Versioning and Breaking Change Policy,
17+
as documented [internally](aka.ms/AzBreakingChangesPolicy) and [externally](https://learn.microsoft.com/azure/developer/intro/azure-service-sdk-tool-versioning).
18+
19+
:white_check_mark: **DO** thoroughly ensure/test the API contract is entirely correct before merging it into a production branch of the specs repo.
20+
21+
Testing helps avoid "BugFix" changes to the API definition. Testing should be done at the HTTP level as well as through generated SDKs.
22+
23+
:white_check_mark: **DO** retire all prior preview API versions 90 days after a new GA or preview API version is released.
24+
25+
:white_check_mark: **DO** contact the Azure Breaking Change Review board to coordinate communications to customers
26+
when releasing an API version requiring the retirement of a prior version.
27+
28+
:white_check_mark: **DO** create a new preview API version for any features that should remain in preview following a new GA release.
29+
30+
:white_check_mark: **DO** use a date strictly later than the most recent GA API version when releasing
31+
a new preview API version.
32+
33+
:white_check_mark: **DO** deprovision any API version that has been retired. Retired APIs versions should behave like
34+
an unknown API version (see [ref](https://aka.ms/azapi/guidelines#versioning-api-version-unsupported)).
35+
36+
:white_check_mark: **DO** remove retired API versions from the azure-rest-api-specs repo.
37+
38+
:white_check_mark: **DO** review any change to service behavior that could disrupt customers with the Azure Breaking Changes review board, even if the change is not part of the API definition.
39+
40+
Some examples of behavior changes that must be reviewed are:
41+
- Introducing or changing rate limits to be more restrictive than previously
42+
- Changing the permissions required to successfully execute an operation
43+
44+
:no_entry: **DO NOT** change the behavior of an API version that is available to customers either in public preview or GA.
45+
Changes in behavior should always be introduced in a new API version, with prior versions working as before.
46+
47+
:no_entry: **DO NOT** introduce breaking changes from a prior GA version just to satisfy ARM or Azure API guidelines.
48+
49+
Avoiding breaking changes in a GA API takes precedence over adherence to API guidelines and resolving linter errors.
50+
51+
:no_entry: **DO NOT** keep a preview feature in preview for more than 1 year; it must go GA (or be removed) within 1 year after introduction.

0 commit comments

Comments
 (0)