From 84a3dfd75a8c9e866a2c48ca4f86ef811cb57324 Mon Sep 17 00:00:00 2001 From: David Julian Albers Date: Sun, 28 Jun 2026 21:17:02 +0200 Subject: [PATCH 1/5] chore: remove unused tasks --- mise.toml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/mise.toml b/mise.toml index 8a6f6d8..ec8bcaf 100644 --- a/mise.toml +++ b/mise.toml @@ -16,15 +16,3 @@ run = "biome format --write ." [tasks.lint] description = "Lint the repository with Biome" run = "biome check ." - -[tasks.changeset] -description = "Record a changeset describing pending changes (interactive)" -run = "changeset" - -[tasks.version] -description = "Apply pending changesets: bump versions + write changelogs" -run = "changeset version" - -[tasks.publish] -description = "Build (via prepack) and publish changed packages to the registry" -run = "changeset publish" From 88dd16996e81e9a48f109f191a6b1da314c4f5ac Mon Sep 17 00:00:00 2001 From: David Julian Albers Date: Mon, 29 Jun 2026 11:43:15 +0200 Subject: [PATCH 2/5] build: unify surface into check and verify tasks --- .github/workflows/ci.yml | 13 ++++++------- mise.toml | 20 ++++++++++++++------ 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b605405..4e0a8b8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,20 +16,19 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - - uses: jdx/mise-action@v4 # installs node/pnpm/biome from mise.toml + - uses: jdx/mise-action@v4 - run: pnpm install --frozen-lockfile - - run: mise run lint # biome check (whole repo) - - run: mise run //...:typecheck # tsc --noEmit in every package - - run: mise run //...:test # node --test in every package - - run: mise run //...:build # tsc -> dist in every package + - run: mise //:check + - run: mise //:verify + - run: mise //...:build changeset: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 with: - fetch-depth: 0 # `changeset status` diffs the PR against origin/main - - uses: jdx/mise-action@v4 # provides the `changeset` binary (a mise tool) + fetch-depth: 0 + - uses: jdx/mise-action@v4 # Fails if a *publishable* package changed without a changeset. # If the change needs no release (tests, docs, refactor), record that with: # changeset add --empty diff --git a/mise.toml b/mise.toml index ec8bcaf..d8a10b2 100644 --- a/mise.toml +++ b/mise.toml @@ -5,14 +5,22 @@ config_roots = ["packages/*"] [tools] biome = "2" +hk = "1" node = "24" "npm:@changesets/cli" = "2" pnpm = "11" -[tasks.format] -description = "Format the repository with Biome" -run = "biome format --write ." +[hooks] +postinstall = "hk install" -[tasks.lint] -description = "Lint the repository with Biome" -run = "biome check ." +[tasks.check] +description = "Lint and format with Biome" +usage = ''' +flag "--write" help="Apply safe fixes and formatting in place" +arg "" var=#true default="." help="Files or directories to check (defaults to the whole repo)" +''' +run = "biome check ${usage_write:+--write} --no-errors-on-unmatched $usage_paths" + +[tasks.verify] +description = "Typecheck and test every package" +depends = ["//...:typecheck", "//...:test"] From 93c44eee4b038e975877d4e50a7c08e5281ad38a Mon Sep 17 00:00:00 2001 From: David Julian Albers Date: Mon, 29 Jun 2026 11:43:52 +0200 Subject: [PATCH 3/5] build: add git hooks --- hk.pkl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 hk.pkl diff --git a/hk.pkl b/hk.pkl new file mode 100644 index 0000000..c037025 --- /dev/null +++ b/hk.pkl @@ -0,0 +1,22 @@ +amends "package://github.com/jdx/hk/releases/download/v1.48.0/hk@1.48.0#/Config.pkl" + +hooks { + ["pre-commit"] { + fix = true + stash = true + steps { + ["check"] { + glob = List("**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx", "**/*.css", "**/*.json") + check = "mise //:check {{ files }}" + fix = "mise //:check --write {{ files }}" + } + } + } + ["pre-push"] { + steps { + ["verify"] { + check = "mise //:verify" + } + } + } +} From cd2a6f36590f319e2e17aaf19a822aa187650fbd Mon Sep 17 00:00:00 2001 From: David Julian Albers Date: Mon, 29 Jun 2026 11:54:09 +0200 Subject: [PATCH 4/5] style: run biome --- packages/std/src/cn.test.ts | 18 +++++++++--------- packages/std/src/cn.ts | 4 ++-- packages/std/src/index.ts | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/std/src/cn.test.ts b/packages/std/src/cn.test.ts index 1303ea1..8238471 100644 --- a/packages/std/src/cn.test.ts +++ b/packages/std/src/cn.test.ts @@ -1,15 +1,15 @@ -import assert from "node:assert/strict"; -import { test } from "node:test"; -import { cn } from "./cn.ts"; +import assert from 'node:assert/strict'; +import { test } from 'node:test'; +import { cn } from './cn.ts'; -test("joins class names", () => { - assert.equal(cn("a", "b"), "a b"); +test('joins class names', () => { + assert.equal(cn('a', 'b'), 'a b'); }); -test("resolves conflicting tailwind utilities, last wins", () => { - assert.equal(cn("px-2", "px-4"), "px-4"); +test('resolves conflicting tailwind utilities, last wins', () => { + assert.equal(cn('px-2', 'px-4'), 'px-4'); }); -test("drops falsy values and supports conditionals", () => { - assert.equal(cn("a", false, null, undefined, "c"), "a c"); +test('drops falsy values and supports conditionals', () => { + assert.equal(cn('a', false, null, undefined, 'c'), 'a c'); }); diff --git a/packages/std/src/cn.ts b/packages/std/src/cn.ts index 19ce371..7bae4df 100644 --- a/packages/std/src/cn.ts +++ b/packages/std/src/cn.ts @@ -1,5 +1,5 @@ -import { type ClassValue, clsx } from "clsx"; -import { twMerge } from "tailwind-merge"; +import { type ClassValue, clsx } from 'clsx'; +import { twMerge } from 'tailwind-merge'; /** * Combine class names with clsx semantics, then resolve conflicting Tailwind diff --git a/packages/std/src/index.ts b/packages/std/src/index.ts index ebf8f90..a22f01c 100644 --- a/packages/std/src/index.ts +++ b/packages/std/src/index.ts @@ -1,2 +1,2 @@ -export type { ClassValue } from "clsx"; -export { cn } from "./cn.js"; +export type { ClassValue } from 'clsx'; +export { cn } from './cn.js'; From 9c8816584cb7225df084364a0d03a1b4d29618ef Mon Sep 17 00:00:00 2001 From: David Julian Albers Date: Mon, 29 Jun 2026 11:57:19 +0200 Subject: [PATCH 5/5] chore: add empty changeset --- .changeset/wet-days-pay.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .changeset/wet-days-pay.md diff --git a/.changeset/wet-days-pay.md b/.changeset/wet-days-pay.md new file mode 100644 index 0000000..a845151 --- /dev/null +++ b/.changeset/wet-days-pay.md @@ -0,0 +1,2 @@ +--- +---