@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.
Files changed (2) hide show
  1. package/README.md +37 -17
  2. 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 a small per-repo table
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
- This project uses semver, released with [release-please](https://github.com/googleapis/release-please)
277
- ([`release-please.yml`](.github/workflows/release-please.yml)). It keeps a standing
278
- `chore(main): release X.Y.Z` PR open against `main`, updated as commits land. Merging it bumps
279
- `package.json` and [`CHANGELOG.md`](CHANGELOG.md), tags `vX.Y.Z`, creates the GitHub release,
280
- and publishes to npm. The PR is opened with the org's release-bot GitHub App token
281
- (`RELEASE_BOT_CLIENT_ID` / `RELEASE_BOT_APP_PRIVATE_KEY`) so CI runs on it.
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
- Treat `@main` as unstable. Consumers should pin to the commit SHA of a release tag and
289
- keep the version in a trailing comment, e.g. `@15caea2... # v0.8.1`, so a Renovate or
290
- Dependabot config can bump it. There is no floating major-version tag (`@v1`) to track yet.
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taraxvoid/voidflow",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Shared workflows, actions and tooling for @taraxvoid sites",
5
5
  "license": "MIT",
6
6
  "keywords": [