41 lines
1.6 KiB
Markdown
41 lines
1.6 KiB
Markdown
# Publishing the runtime packages
|
|
|
|
The runtime is published as three public npm packages:
|
|
|
|
- `@bible-strong/avatar-core` contains the validation, playback and renderer-neutral scene APIs;
|
|
- `@bible-strong/avatar-react` depends on core and provides the React 19 integration;
|
|
- `@bible-strong/avatar-web` depends on core and provides the direct DOM/ESM integration.
|
|
|
|
All three packages keep the same version during the `0.x` stabilization period. Semantic Versioning
|
|
is applied as follows:
|
|
|
|
- a compatible fix increments the patch version (`0.1.0` to `0.1.1`);
|
|
- a compatible feature increments the minor version (`0.1.0` to `0.2.0`);
|
|
- a breaking change also increments the minor version while below `1.0.0`;
|
|
- after `1.0.0`, a breaking change increments the major version.
|
|
|
|
## Normal release flow
|
|
|
|
1. Add a changeset to every pull request that changes a published API with `pnpm changeset`.
|
|
2. Merge changes into `main`.
|
|
3. The release workflow updates or creates a release pull request containing version and changelog
|
|
changes.
|
|
4. Review and merge that release pull request.
|
|
5. The workflow validates, builds and publishes every unpublished version to npm.
|
|
|
|
Publication uses npm trusted publishing through GitHub Actions OIDC. It does not require a stored
|
|
`NPM_TOKEN`. Each npm package must trust the `release.yml` workflow in the
|
|
`smontlouis/bible-strong-avatar-lab` repository.
|
|
|
|
## Local verification
|
|
|
|
Run the complete project checks and verify real consumer projects against packed tarballs:
|
|
|
|
```sh
|
|
pnpm check
|
|
pnpm packages:smoke
|
|
```
|
|
|
|
Do not run `npm publish` from an individual package for routine releases. The initial `0.1.0`
|
|
bootstrap publication is the only manual release.
|