@taraxvoid/voidflow 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -17
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -204,14 +204,14 @@ remotes:
|
|
|
204
204
|
configs:
|
|
205
205
|
- lefthook/site.yml
|
|
206
206
|
|
|
207
|
-
# Site-specific differences override the remote by name, e.g. skip tests that
|
|
208
|
-
# need a built dist/ before commit:
|
|
209
|
-
pre-commit:
|
|
210
|
-
commands:
|
|
211
|
-
unit:
|
|
212
|
-
run: bun run test:unit -- --exclude 'test/build.test.ts'
|
|
213
207
|
```
|
|
214
208
|
|
|
209
|
+
Lefthook merges `lefthook.yml`, then remotes, then `lefthook-local.yml`, so a
|
|
210
|
+
site's own `lefthook.yml` can add commands (for example image compression) but
|
|
211
|
+
cannot override ones defined here. Differences go through `package.json`
|
|
212
|
+
scripts: define `test:unit:precommit` (for example excluding tests that need a
|
|
213
|
+
built `dist/`) and the pre-commit unit step runs it instead of `test:unit`.
|
|
214
|
+
|
|
215
215
|
Install the binary through mise (`lefthook = "<version>"` in `mise.toml`) and
|
|
216
216
|
set `"prepare": "lefthook install"` so `bun install` wires the hooks. `ref`
|
|
217
217
|
cannot be a commit SHA; pin a release tag.
|
|
@@ -219,7 +219,8 @@ cannot be a commit SHA; pin a release tag.
|
|
|
219
219
|
## Branch rulesets as code
|
|
220
220
|
|
|
221
221
|
Branch protection for the fleet lives in [`rulesets/index.ts`](rulesets/index.ts):
|
|
222
|
-
one canonical `main` / `next` / `live` definition plus
|
|
222
|
+
one canonical `main` / `next` / `live` definition (plus `prerelease` and `maintenance`
|
|
223
|
+
tiers for repos with release channels) and a small per-repo table
|
|
223
224
|
(Netlify or not, check names, CODEOWNERS, extra bypass actors). Hand-edited
|
|
224
225
|
rulesets drift, and drift is how a `next` ruleset ends up requiring a check
|
|
225
226
|
name that no workflow reports any more.
|
|
@@ -233,7 +234,9 @@ just rulesets-apply --prune # also delete rulesets a repo lists under `r
|
|
|
233
234
|
```
|
|
234
235
|
|
|
235
236
|
Single-environment sites (a stable `main` that deploys to prod) manage only the
|
|
236
|
-
`main` tier; their old `next`/`live` rulesets are listed under `retire`.
|
|
237
|
+
`main` tier; their old `next`/`live` rulesets are listed under `retire`. voidflow itself
|
|
238
|
+
manages `main`, `prerelease` (`next`) and `maintenance` (`release/*`) and sets
|
|
239
|
+
`linearHistory: false` so `next` can be promoted into `main` with a merge commit.
|
|
237
240
|
Uses the `gh` CLI for auth (needs admin on the repos). Rulesets that are not in
|
|
238
241
|
the config are reported and left alone; only `retire` entries are ever deleted,
|
|
239
242
|
and only with `--prune`. It is repo tooling, not part of the published package.
|
|
@@ -273,21 +276,38 @@ Sites with a single production environment and per-PR previews (no `next` or
|
|
|
273
276
|
|
|
274
277
|
### Versioning
|
|
275
278
|
|
|
276
|
-
|
|
277
|
-
([`release-please.yml`](.github/workflows/release-please.yml))
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
279
|
+
Semver, released with [release-please](https://github.com/googleapis/release-please)
|
|
280
|
+
([`release-please.yml`](.github/workflows/release-please.yml)) on three branch-based channels
|
|
281
|
+
(full flow in [`RELEASING.md`](RELEASING.md)):
|
|
282
|
+
|
|
283
|
+
| Channel | Branch | Example | npm dist-tag |
|
|
284
|
+
|---|---|---|---|
|
|
285
|
+
| stable | `main` | `0.10.0` | `latest` |
|
|
286
|
+
| prerelease | `next` | `0.10.0-next`, `0.10.0-next.1` | `next` |
|
|
287
|
+
| maintenance | `release/N.x` | `0.9.4` | `release-N.x` |
|
|
288
|
+
|
|
289
|
+
release-please keeps a standing release PR open on each channel's branch, updated as commits land.
|
|
290
|
+
Merging it bumps `package.json` (and [`CHANGELOG.md`](CHANGELOG.md) on stable), tags `vX.Y.Z`,
|
|
291
|
+
creates the GitHub release and publishes to npm and JSR under the channel's dist-tag. The PR is
|
|
292
|
+
opened with the org's release-bot GitHub App token (`RELEASE_BOT_CLIENT_ID` /
|
|
293
|
+
`RELEASE_BOT_APP_PRIVATE_KEY`) so CI runs on it.
|
|
294
|
+
|
|
295
|
+
Feature PRs target `next`; promotion to `main` is a merge-commit PR (`just promote`).
|
|
282
296
|
|
|
283
297
|
Commit messages should follow [Conventional Commits](https://www.conventionalcommits.org),
|
|
284
298
|
enforced loosely, as an advisory `commit-msg` hint (see
|
|
285
299
|
[`scripts/check-commit-msg.sh`](scripts/check-commit-msg.sh)), not a blocking check. They
|
|
286
300
|
drive the version bump and generated changelog.
|
|
287
301
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
302
|
+
Ways to consume a release:
|
|
303
|
+
|
|
304
|
+
- **Floating major tag**: `@v0` follows the newest stable 0.x release. Easiest to track, and
|
|
305
|
+
mutable like any floating tag.
|
|
306
|
+
- **SHA pin with a version comment**, e.g. `@15caea2... # v0.8.1`: what I use. Same hardening
|
|
307
|
+
as any third-party action, and Renovate or Dependabot can bump it.
|
|
308
|
+
- **Try unreleased changes**: pin the commit SHA of a `vX.Y.Z-next` / `vX.Y.Z-next.N` prerelease tag.
|
|
309
|
+
|
|
310
|
+
Treat `@main` and `@next` as unstable.
|
|
291
311
|
|
|
292
312
|
## Self-validation
|
|
293
313
|
|