Skip to content

Update @probitas/client-sql-sqlite to 0.5.1 - #110

Merged
lambdalisue merged 2 commits into
mainfrom
deps/sqlite-0.5.1
Sep 7, 2026
Merged

lambdalisue merged 2 commits into
mainfrom
deps/sqlite-0.5.1

Conversation

@lambdalisue

Copy link
Copy Markdown
Member

Summary

  • Exempt the @probitas scope from Deno's minimum dependency age gate, so first-party releases can be adopted the day they are published.
  • Update @probitas/client-sql-sqlite to 0.5.1, which loads @db/sqlite on first use instead of at import.

Why

The dependency. Until 0.5.1, importing @probitas/probitas at all paid for the SQLite FFI: the root module re-exports the SQLite client (mod.ts → client.ts → sql.ts → sql/sqlite.ts) and @db/sqlite dlopens as it evaluates. A library that failed to load therefore killed scenarios that never touch SQLite, which is exactly what took down every scenario subprocess in #108 when the nixpkgs pin moved. probitas-test/probitas-packages#23 fixed that upstream; this picks it up.

DENO_SQLITE_PATH stays. It is what keeps SQLite working for scenarios that actually use it under nix. 0.5.1 is what stops everyone else from paying for it, including outside nix. The two are complementary, not alternatives.

The age gate. Deno refuses to resolve any version published in the last 24 hours — a supply-chain guard aimed at third-party code. It applied to our own packages too, so a release cut here could not be adopted until the next day, even when the fix was the reason for the release. The object form of minimumDependencyAge is documented for exactly this, so the guard now covers every third-party dependency and nothing of ours. age is spelled out as P1D rather than left implicit, so changing the policy later is a visible edit rather than a silent shift in Deno's default.

About the lockfile diff

deno.lock moves far more than one dependency: 25 packages change version and the npm tree goes from 130 packages to 77 (@aws-sdk/client-sqs 3.965.0 → 3.1118.0 is the largest jump; the shrink is mostly @smithy/* consolidation in the newer AWS SDK).

That is not this change being careless. Changing any constraint in deno.json makes Deno re-resolve the entire graph to the newest satisfying versions, rather than updating the entry that changed. It is unrelated to the age policy, and there is no route around it:

Operation deno.lock diff
No change at all 3 lines
Add the minimumDependencyAge config only 3 lines
Bump @std/cli ^1.0.25 → ^1.0.32 (nothing to do with the age gate) 792 deletions
Bump client-sql-sqlite ^0.5.0 → ^0.5.1 795 deletions
deno outdated --update on that one package 796 deletions

Waiting for the age gate to open on its own would not have produced a smaller diff, and deno outdated --update on a single package — the purpose-built command — behaves the same.

The two commits are split so this is reviewable: the policy commit carries a 3-line lock diff, and all of the churn sits in the dependency commit.

Test Plan

  • deno task verify on Deno 2.9.5 — 45 passed, 0 failed
  • SQLite scenario end to end against the frozen lock — passed
  • npm-backed clients (sqs, mysql, postgres, redis, mongodb) all load against the frozen lock, confirming the regenerated lock is complete
  • CI green

🤖 Generated with Claude Code

https://claude.ai/code/session_01E6iErRVYiy7LzNGLT5Vzh1

…dency age gate

Deno refuses to resolve any version published within the last 24 hours, which
is a supply-chain guard aimed at third-party code. It also applies to our own
@probitas/* packages, so a release cut here cannot be adopted until the next
day even when the fix is the reason the release was cut.

Excluding the @probitas scope keeps the guard where it earns its keep — every
third-party dependency — while letting first-party releases be picked up as
soon as they are published. This is the use the object form is documented for.

The age is spelled out as P1D rather than left implicit so that changing the
policy later is a visible edit rather than a silent shift in Deno's default.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E6iErRVYiy7LzNGLT5Vzh1
Copilot AI lite review requested due to automatic review settings September 7, 2026 14:57

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The config change is correctly scoped to jsr:@probitas/*, and the dependency/lockfile updates are consistent with the stated intent and appear internally coherent.

Pull request overview

This PR updates the Deno dependency resolution policy to allow same-day adoption of first-party @probitas JSR releases, and bumps @probitas/client-sql-sqlite to 0.5.1 to avoid loading SQLite’s FFI at import time.

Changes:

  • Configure minimumDependencyAge to keep the 24h age gate for third-party deps while excluding jsr:@probitas/*.
  • Update @probitas/client-sql-sqlite from ^0.5.0 to ^0.5.1.
  • Regenerate deno.lock to reflect the new resolution (including updated JSR and npm transitive versions).
File summaries
File Description
deno.json Adds minimumDependencyAge exclusion for first-party @probitas packages and bumps the SQLite client import version.
deno.lock Updates resolved versions/integrities across the graph, including @probitas/client-sql-sqlite@0.5.1 and transitive dependency consolidation.
Review details
  • Files reviewed: 1/2 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

0.5.1 loads @db/sqlite on first use instead of at import. Until now, importing
@probitas/probitas at all paid for the SQLite FFI, because the root module
re-exports the SQLite client and @db/sqlite dlopens as it evaluates. A library
that failed to load therefore killed scenarios that never touch SQLite, which
is what took down every scenario subprocess when the nixpkgs pin moved.

DENO_SQLITE_PATH still points at the nixpkgs library and should stay: it is
what keeps SQLite working for scenarios that do use it. This commit is what
stops everyone else from paying for it, including outside nix.

The lockfile diff is far wider than one dependency. Changing any constraint in
deno.json makes Deno re-resolve the whole graph to the newest satisfying
versions rather than updating the entry that changed, so 25 unrelated packages
move with it — @aws-sdk/client-sqs 3.965.0 to 3.1118.0 among them, which is
also why the npm tree shrinks from 130 packages to 77. There is no route that
avoids this: `deno outdated --update` on a single package behaves the same, and
it is unrelated to the age policy — bumping @std/cli alone reproduces it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E6iErRVYiy7LzNGLT5Vzh1
@lambdalisue
lambdalisue merged commit fecc6f6 into main Sep 7, 2026
4 checks passed
@lambdalisue
lambdalisue deleted the deps/sqlite-0.5.1 branch September 7, 2026 15:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants