Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please/main-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.10.0"
".": "0.11.0"
}
2 changes: 1 addition & 1 deletion .release-please/next-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.11.0-next"
".": "0.11.0"
}
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,19 @@ All notable changes to this project are documented here, generated by
[release-please](https://github.com/googleapis/release-please) from
[Conventional Commits](https://www.conventionalcommits.org).

## [0.11.0](https://github.com/taraxvoid/voidflow/compare/v0.10.0...v0.11.0) (2026-10-02)


### Features

* branch-based release channels (next prerelease, maintenance branches, floating v0) ([#105](https://github.com/taraxvoid/voidflow/issues/105)) ([978f1db](https://github.com/taraxvoid/voidflow/commit/978f1db11183a3c61b94faa4724f2585caefaccf))


### Bug Fixes

* **lefthook:** pre-commit unit step honors test:unit:precommit ([#110](https://github.com/taraxvoid/voidflow/issues/110)) ([0be17d7](https://github.com/taraxvoid/voidflow/commit/0be17d791d9345e4fcc413f46c86b49e348e24ce))
* scope minimumReleaseAgeExcludes under [install] ([#111](https://github.com/taraxvoid/voidflow/issues/111)) ([9869f82](https://github.com/taraxvoid/voidflow/commit/9869f82e6eb23352a1824a033ea24ab4f82e75df))

## [0.10.0](https://github.com/taraxvoid/voidflow/compare/v0.9.0...v0.10.0) (2026-10-02)


Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -204,14 +204,14 @@ remotes:
configs:
- lefthook/site.yml

# Site-specific differences override the remote by name, e.g. skip tests that
# need a built dist/ before commit:
pre-commit:
commands:
unit:
run: bun run test:unit -- --exclude 'test/build.test.ts'
```

Lefthook merges `lefthook.yml`, then remotes, then `lefthook-local.yml`, so a
site's own `lefthook.yml` can add commands (for example image compression) but
cannot override ones defined here. Differences go through `package.json`
scripts: define `test:unit:precommit` (for example excluding tests that need a
built `dist/`) and the pre-commit unit step runs it instead of `test:unit`.

Install the binary through mise (`lefthook = "<version>"` in `mise.toml`) and
set `"prepare": "lefthook install"` so `bun install` wires the hooks. `ref`
cannot be a commit SHA; pin a release tag.
Expand Down
5 changes: 2 additions & 3 deletions bunfig.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
[install]
minimumReleaseAge = 259200 # 3 days

[install.security]
scanner = "@socketsecurity/bun-security-scanner"

# Packages that bypass the gate
minimumReleaseAgeExcludes = ["@playwright/test", "playwright", "playwright-core"]

[install.security]
scanner = "@socketsecurity/bun-security-scanner"
2 changes: 1 addition & 1 deletion jsr.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@taraxvoid/voidflow",
"version": "0.11.0-next",
"version": "0.11.0",
"license": "MIT",
"exports": {
"./playwright": "./playwright/index.mjs"
Expand Down
15 changes: 12 additions & 3 deletions lefthook/site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@
# configs:
# - lefthook/site.yml
#
# Anything a site needs to do differently (extra steps, test:unit excludes)
# goes in its own lefthook.yml: local config overrides the remote by name.
# Lefthook merges lefthook.yml < remotes < lefthook-local.yml, so a site's own
# lefthook.yml can ADD commands (e.g. image compression) but cannot override
# one defined here. Differences go through package.json scripts instead, e.g.
# `test:unit:precommit` replaces `test:unit` for the pre-commit unit step.

pre-commit:
skip: [merge, rebase]
Expand All @@ -35,7 +37,14 @@ pre-commit:
run: bun run --if-present check
unit:
priority: 3
run: bun run --if-present test:unit
# A site that can't run its whole suite pre-commit (e.g. tests that need
# a built dist/) defines `test:unit:precommit`; otherwise test:unit runs.
run: |
if grep -q '"test:unit:precommit"' package.json; then
bun run test:unit:precommit
else
bun run --if-present test:unit
fi
licenses:
priority: 3
glob: "{package.json,bun.lock,pnpm-lock.yaml}"
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@taraxvoid/voidflow",
"version": "0.11.0-next",
"version": "0.11.0",
"description": "Shared workflows, actions and tooling for @taraxvoid sites",
"license": "MIT",
"keywords": [
Expand Down
6 changes: 6 additions & 0 deletions test/lefthook-site.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,10 @@ describe('lefthook/site.yml', () => {
expect(text).toContain(`\n${hook}`)
}
})
test('pre-commit unit step prefers test:unit:precommit when a site defines it', async () => {
const text = await Bun.file(config).text()
expect(text).toContain('grep -q \'"test:unit:precommit"\' package.json')
expect(text).toContain('bun run test:unit:precommit')
expect(text).toContain('bun run --if-present test:unit')
})
})
Loading