ReviewOS

also looking at this

stacks/bun-query-builder

fix(deps): main is red — kysely bumped past its adapter's peer range

#1078
Merged glennmichael123 wants to merge fix/kysely-peer-range into main
3 files +11 -8
10 days ago

main is red and cannot be released. #999 merged with a failing typecheck. Two breakages, both from that PR, neither reaching published users.

1. kysely bumped past its adapter's peer range

kysely went ^0.28.14 → ^0.29.5. For a 0.x package a minor is a breaking change, so "update all non-major" was a misnomer — and kysely-bun-sqlite declares peer kysely: ^0.28.2.

It therefore resolved its own nested copy, leaving the benchmark with two Kysely installs at once: BunSqliteDialect typed against one, new Kysely() against the other. Structurally identical, nominally incompatible:

packages/benchmark/src/lib/db-clients.ts(221,5): error TS2769
  Type 'BunSqliteDialect' is not assignable to type 'Dialect'.
    The types returned by 'createAdapter().acquireMigrationLock' are incompatible…

Pinned back inside the adapter's range. Nothing in the benchmark uses a 0.29 API, so there's nothing to gain by chasing it until kysely-bun-sqlite supports it.

2. pickier stopped honouring the suppression form

pickier went ^0.1.32 → ^0.1.56, and 0.1.56 no longer accepts the trailing // eslint-disable-line form — only // eslint-disable-next-line. So the suppression on DeepPartial's type-level args parameter silently stopped applying and lint went red too.

Verified against 0.1.56 directly rather than guessing:

formresult
// eslint-disable-line pickier/no-unused-vars -- reasonstill errors
// eslint-disable-line pickier/no-unused-varsstill errors
// eslint-disable-next-line pickier/no-unused-varspasses

Moved to the next-line form. It was trailing originally to keep the JSDoc attached to the type, so I confirmed the doc block still lands on DeepPartial in the emitted dist/types.d.ts — it does.

Scope

Both are benchmark/tooling only. No published consumer is affected, and v0.2.26 on npm is fine. What this blocks is CI, and therefore the next release.

Verification

Typecheck 0, lint 0, suite 1719 pass / 4 skip / 0 fail.

Worth considering separately: "all non-major" grouping treats 0.x minors as non-breaking, which is what let this through. Constraining that group to >=1.0.0, or excluding packages with declared peer ranges, would stop the same shape recurring.

🤖 Generated with Claude Code

3 changed files on the files tab, with 0 review threads.

Sign in to comment on this pull request.