Versioning and release
Packages
| Package | npm | Description |
|---|---|---|
@kyma-ai/react | npm install @kyma-ai/react | Embeddable React components and hooks |
@kyma-ai/client | npm install @kyma-ai/client | Framework-agnostic TypeScript client (peer dep of react) |
Both packages are MIT-compatible (Apache-2.0) and published with "access": "public" on the @kyma-ai npm org.
Changesets release flow
The monorepo uses Changesets to track unreleased changes and automate version bumps.
Adding a changeset for a PR:
bash
pnpm changeset add
# Follow the interactive prompts to select packages and bump type.This creates a file in .changeset/ that describes the change. Commit it with your PR. Multiple changesets can accumulate before a release.
The release CI pipeline (release.yml) runs on every push to main:
pnpm install --frozen-lockfilepnpm build:packages— builds@kyma-ai/clientand@kyma-ai/reactpnpm test:packages— runs both test suiteschangesets/action@v1— either:- Opens / updates a "Release @kyma-ai packages" version-bump PR if changesets are present (bumps
package.jsonversions, updatesCHANGELOG.mdfiles), or - Publishes to npm (
pnpm changeset publish) if that PR is merged.
- Opens / updates a "Release @kyma-ai packages" version-bump PR if changesets are present (bumps
No manual npm publish is needed. Merging the version-bump PR triggers the publish step automatically on the next push.
Semver policy
| Change type | Bump | Examples |
|---|---|---|
| New optional prop (backward-compatible) | minor | Adding onSearchChange to KymaDiscover |
| New hook | minor | Adding useKymaCapabilities |
| Bug fix, internal refactor | patch | Fixing proactive JWT refresh, fixing store isolation |
| Required prop added, prop removed, prop renamed | major | Removing toolbar from KymaGraph |
| Peer dependency major bump | major | Requiring React 19 |
As a general rule: if existing call sites continue to compile and behave correctly without any changes, it is a minor or patch. If existing call sites break or need updates, it is a major.
Building packages locally
bash
# From the repo root
pnpm build:packages
# equivalent to:
pnpm --filter @kyma-ai/client build
pnpm --filter @kyma-ai/react buildRunning package tests
bash
pnpm test:packages
# equivalent to:
pnpm --filter @kyma-ai/client test
pnpm --filter @kyma-ai/react testStorybook
bash
pnpm --filter @kyma-ai/react storybook # dev server at :6006
pnpm --filter @kyma-ai/react build-storybook # static output to packages/react/storybook-static