Files
coder/apiversion/doc.go
Cian Johnston 445392bdd8 chore(apiversion): add guidelines regarding bumping apiversion (#16009)
Adds some package-level documentation to reduce confusion on when it is
appropriate or warranted to bump apiversions.
2025-01-02 10:41:36 +00:00

27 lines
1.3 KiB
Go

// Package apiversion provides an API version type that can be used to validate
// compatibility between two API versions.
//
// NOTE: API VERSIONS ARE NOT SEMANTIC VERSIONS.
//
// API versions are represented as major.minor where major and minor are both
// positive integers.
//
// API versions are not directly tied to a specific release of the software.
// Instead, they are used to represent the capabilities of the server. For
// example, a server that supports API version 1.2 should be able to handle
// requests from clients that support API version 1.0, 1.1, or 1.2.
// However, a server that supports API version 2.0 is not required to handle
// requests from clients that support API version 1.x.
// Clients may need to negotiate with the server to determine the highest
// supported API version.
//
// When making a change to the API, use the following rules to determine the
// next API version:
// 1. If the change is backward-compatible, increment the minor version.
// Examples of backward-compatible changes include adding new fields to
// a response or adding new endpoints.
// 2. If the change is not backward-compatible, increment the major version.
// Examples of non-backward-compatible changes include removing or renaming
// fields.
package apiversion