> ## Documentation Index
> Fetch the complete documentation index at: https://docs.graphy.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Version management

Graphy SDK follows [Semantic Versioning](https://semver.org/) (SemVer). This page describes our release lifecycle and what you can expect as a consumer of the SDK.

## Packages

The Graphy SDK is composed of three packages:

* `@graphysdk/core`
* `@graphysdk/i18n`
* `@graphysdk/editor`

All three packages are versioned together — every release bumps them to the same version number. You must ensure that all Graphy packages in your project use matching versions.

<Warning>
  Mixing different versions of Graphy packages (e.g. `@graphysdk/core@1.3.0` with `@graphysdk/editor@1.2.0`) is not
  supported and may cause unexpected behaviour.
</Warning>

## Version format

Every release follows the `MAJOR.MINOR.PATCH` convention:

* **Major** — contains breaking changes (aligned with Graphy customers beforehand)
* **Minor** — new features, fully backwards-compatible
* **Patch** — bug fixes and performance improvements

## Release lifecycle

Each change merged to the main branch goes through the following stages before reaching a stable release:

<Steps>
  <Step title="Beta">
    New features and fixes are first published as beta releases (e.g. `1.2.0-beta.20260219191134`) which are appropriate
    for testing in staging environments.
  </Step>

  <Step title="Stable">
    Once a beta version has been tested and validated it is promoted to a stable release (e.g. `1.2.0`), which is the
    version recommended for production use.
  </Step>
</Steps>

### Installing a specific release channel

<CodeGroup>
  ```bash Beta theme={null}
  npm install @graphysdk/core@beta @graphysdk/i18n@beta @graphysdk/editor@beta
  ```

  ```bash Stable (default) theme={null}
  npm install @graphysdk/core@latest @graphysdk/i18n@latest @graphysdk/editor@latest
  ```
</CodeGroup>

## Deprecation policy

We follow a deliberate deprecation cycle so that you always have time to migrate:

1. A feature is marked as **deprecated** using TypeScript's `@deprecated` tag, and noted in the release notes and documentation.
2. The deprecated feature continues to work for the remainder of the current major version.
3. The deprecated feature is **removed** in the next major release.

<Warning>
  Deprecated features are never removed in minor or patch releases. You can safely upgrade within a major version
  without worrying about removed functionality.
</Warning>
