> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/feature-flags/use-feature-flags/use-ff/ff-sdks/sdk-overview/sdk-version-policy.md).

# SDK Versioning

The Harness Feature Flags versioning policy is based on the semantic versioning standard (also referred to as [SemVer](https://semver.org/)). This topic describes the versioning policy for SDKs.

### What is Semantic Versioning? <a href="#what-is-semantic-versioning" id="what-is-semantic-versioning"></a>

Semantic Versioning is a mechanism to uniquely label each version of the released software product by an identifier. According to the semantic version policy, the identifier should have the following three components:

* `Major` version number
* `Minor` version number
* `Patch` version number

These components are separated by periods, for example, **X.Y.Z**, where:

* **X** is the Major Version
* **Y** is the Minor Version
* **Z** is the Patch Version

When a new version is released, one of the major, minor, or patch components is incremented. Differentiating between new versions is based on the kinds of changes introduced in the new version.

#### When versions are incremented <a href="#when-versions-are-incremented" id="when-versions-are-incremented"></a>

* **Major version:** incremented when the version contains breaking changes.
* **Minor version:** incremented when the version contains new functionality that is backward compatible.
* **Patch version:** incremented when the version contains bug fixes that are backward compatible.

For more information, see [Semantic Versioning 2.0.0](http://semver.org/).
