# Release Flow

This package is prepared for registry publishing. Publishing is still a manual
step and should only happen after the release checks pass.

## Before Release

Install root and Vue example dependencies:

```bash
npm install
npm --prefix examples/vue install
```

Run the release gate:

```bash
npm run release:check
```

This runs:

- Vue adapter build and example build;
- full package build;
- `npm pack` into a temporary directory;
- a temporary Vue/Vite consumer app that imports `gnexus-ui-kit/vue` from the
  packed tarball.

Expected Vite warnings:

```text
/assets/fonts/... didn't resolve at build time
```

These warnings are acceptable while `kit.css` keeps the `/assets` runtime asset
contract.

## Version

Use SemVer for adapter and CSS changes:

- patch: bug fixes, accessibility fixes, docs, and compatible component fixes;
- minor: new Vue components, new props, new slots, or new CSS components;
- major: renamed/removed exports, props, emits, slots, classes, or asset paths.

Update `package.json` and `package-lock.json` together.

## Publish

Build and inspect the tarball before publish:

```bash
npm run release:check
npm pack --pack-destination /tmp
```

The tarball must include:

- `dist/css/kit.css`;
- `dist/js/gnexus-ui-kit.js`;
- `dist/vue/index.js`;
- `dist/assets/`;
- `docs/`;
- `README.md`.

Publish only after the tarball contents match the expected runtime contract:

```bash
npm publish
```

The package is marked `UNLICENSED`; change `license` and add a `LICENSE` file
before publishing as an open-source package.

