Files
zooqueenandHanzo Dev 70b41673a3 frames: rebrand the fork to Hanzo Frames
Forked from HyperFrames (Apache-2.0), full history preserved.

Hosts are mapped explicitly and BEFORE the identifier rename, because
hyperframes.heygen.com is not decoration: 175 of its occurrences are $schema
identifiers that a validator dereferences. A blind rename would have left them
naming a host that never serves them. The schema files are in this repo under
docs/schema, so the mapped host is one we can actually serve -- that is the
condition that makes the rewrite safe, and serving them is a deploy task, not
an edit. docs/schema/hyperframes.json is renamed to frames.json to match the
identifier it is now published under.

api.heygen.com and the CLI auth against heygen.com are left UNRENAMED on
purpose. They are a dependency on HeyGen's SaaS, not a name of ours to take,
and the right move is to remove that integration rather than rebrand it.

LICENSE and CREDITS.md are untouched; NOTICE records the lineage.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-28 23:42:24 -07:00

72 lines
2.7 KiB
Plaintext

---
title: Release channels
description: How Frames keeps alpha-only work out of stable releases.
---
Frames publishes two release channels:
- Stable releases use versions like `0.4.24` and publish to the npm `latest` dist-tag.
- Prereleases use versions like `0.4.24-alpha.1` and publish to the npm dist-tag named by the prerelease suffix, such as `alpha`.
## Branch policy
Use branch separation to decide what code is eligible for each release channel.
Dist-tags only control npm install defaults; they do not remove code from a package.
- `main` is stable/releasable. Anything merged to `main` is eligible for `latest`.
- `release/v*` branches are for stable patch releases and hotfixes.
- `next`, `alpha`, `beta`, `rc`, `canary`, and `prerelease/*` branches are for prerelease integration.
If a feature should ship in alpha only, merge or retarget that PR to a prerelease branch instead of `main`.
## Stable release
Stable releases must be reachable from `origin/main` or `origin/release/v*`.
Prepare and review release notes before creating the release commit:
```bash
bun run release:prepare <version>
```
On the first run, `release:prepare` drafts missing changelog artifacts and exits non-zero for review so chained release commands stop before tagging. After the generated TODO summary is rewritten, rerun the same command to create the release commit and tag.
See [Changelog process](/contributing/changelog-process) for the full workflow. For stable releases, `bun run set-version <version>` still enforces this checkpoint when maintainers run the lower-level release command directly.
```bash
bun run release:prepare <version>
git push origin main --tags
```
For hotfixes, branch from the last stable tag, cherry-pick only the fix, publish the patch release, then merge or cherry-pick the same fix back into the prerelease branch.
## Alpha release
Alpha releases must be reachable from a prerelease branch such as `origin/next` or `origin/alpha`.
Use the same changelog draft workflow when the prerelease contains changes that users should know about.
```bash
git checkout next
bun run set-version 0.4.25-alpha.1
git push origin next
git push origin v0.4.25-alpha.1
```
Consumers can install alpha builds explicitly:
```bash
npm install frames@alpha
npm install @frames/core@alpha
```
## CI guardrails
The publish workflow validates release channel boundaries before publishing:
- Stable versions must publish with `latest`.
- Prerelease versions must publish with the prerelease dist-tag, such as `alpha`.
- Stable tags must be reachable from `main` or `release/v*`.
- Prerelease tags must be reachable from a prerelease branch.
- Merged `release/vX.Y.Z` PRs publish stable releases only.
This prevents an alpha-only feature from being included in a stable hotfix by accident.