55 lines
1.3 KiB
Markdown
55 lines
1.3 KiB
Markdown
|
|
# Release policy
|
||
|
|
|
||
|
|
This monorepo is released through Git tags. We do not use Changesets or npm publish.
|
||
|
|
|
||
|
|
## Principles
|
||
|
|
|
||
|
|
- Every release points to a commit where the package `dist/` is already built and committed.
|
||
|
|
- Tags are package-specific, so each package can be released independently.
|
||
|
|
- Consumers install by tag using Git SSH URLs.
|
||
|
|
|
||
|
|
## Tag format
|
||
|
|
|
||
|
|
- `tach-typography-vX.Y.Z`
|
||
|
|
- `video-player-vX.Y.Z`
|
||
|
|
- `content-suggestions-vX.Y.Z`
|
||
|
|
|
||
|
|
`X.Y.Z` must match the version in the package's `package.json`.
|
||
|
|
|
||
|
|
## Release checklist (single package)
|
||
|
|
|
||
|
|
1. Update package version in `packages/<package>/package.json`.
|
||
|
|
2. Build package:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
yarn workspace @hublib-web/<package> build
|
||
|
|
```
|
||
|
|
|
||
|
|
3. Verify that `dist/` and `package.json` contain the release changes.
|
||
|
|
4. Commit release files:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
git add packages/<package>/package.json packages/<package>/dist
|
||
|
|
git commit -m "release(<package>): vX.Y.Z"
|
||
|
|
```
|
||
|
|
|
||
|
|
5. Create annotated tag:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
git tag -a <package>-vX.Y.Z -m "@hublib-web/<package> vX.Y.Z"
|
||
|
|
```
|
||
|
|
|
||
|
|
6. Push commit and tags:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
git push origin main --follow-tags
|
||
|
|
```
|
||
|
|
|
||
|
|
## Multi-package release
|
||
|
|
|
||
|
|
If one commit releases several packages, create one tag per package on the same commit.
|
||
|
|
|
||
|
|
## Consumer installation
|
||
|
|
|
||
|
|
Use the package-specific tag in dependency spec. See [git-installation.md](./git-installation.md).
|