Skip to content

Move the Sqlite3Shell driver to SQLiteKit; keep only the CLI port (#56) - #57

Merged
odrobnik merged 1 commit into
mainfrom
claude/strange-perlman-b0e7ee
Jun 9, 2026
Merged

Move the Sqlite3Shell driver to SQLiteKit; keep only the CLI port (#56)#57
odrobnik merged 1 commit into
mainfrom
claude/strange-perlman-b0e7ee

Conversation

@odrobnik

@odrobnik odrobnik commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Closes #56.

What

The sqlite3 shell driver (the argv Parser + the dot-command / REPL
Sqlite3Executable) moves to the external
Cocoanetics/SQLiteKit package,
alongside the SDK it was already built on. This repo no longer carries any
sqlite implementation code — only the CLI packaging:

  • Sqlite3Command — the thin Sqlite3: AsyncParsableCommand wrapper,
    now over SQLiteKit's Sqlite3Shell product.
  • sqlite3 — the @main entry (unchanged).

Why

#56 flagged the duplicated SQLiteKit SDK. PR #54 already moved the SDK
upstream and deleted the in-repo copy; this finishes the job by moving the
remaining shell layer too. Result: one source of truth, no drift, and no
second CSQLiteVec / sqlite3_vec_init in any dependency graph that pulls
both this package and standalone SQLiteKit — which unblocks building a qmd
builtin (SwiftSemanticIndex) on top of SwiftPorts.

Changes

  • Delete Sources/SQLiteKit/Sqlite3Shell (Parser + Sqlite3Executable) and
    Tests/Sqlite3Tests — both moved to SQLiteKit, whose CI now runs the
    driver's tests on the full matrix (Android emulator included).
  • Drop the Sqlite3Shell product + target; repoint Sqlite3Command onto
    .product("Sqlite3Shell", package: "SQLiteKit").
  • sqlite3 executable unchanged (still the macOS/Linux artifact; a stub on
    Apple-mobile). Android still drops Sqlite3Command / sqlite3; the
    ArgumentParser-free driver stays reachable from SQLiteKit for hosts there.

Verification

Verified on macOS against the SQLiteKit branch (local path override):
full package swift build + swift build --build-tests green; the built
sqlite3 runs SQL and dot-commands (.mode box, .tables) with output
matching the system sqlite3. Linux / Windows / Android via CI.

Merge order

Requires Cocoanetics/SQLiteKit#1 (the new Sqlite3Shell product) to merge
first — this package pins SQLiteKit to main. SwiftBash's repoint follows
both.

🤖 Generated with Claude Code

…ort (#56)

The sqlite3 shell driver (the argv Parser + the dot-command / REPL
Sqlite3Executable) now lives in the external Cocoanetics/SQLiteKit
package alongside the SDK. This repo no longer carries any sqlite
implementation code — only the CLI packaging: the thin ArgumentParser
wrapper (Sqlite3Command) and the @main entry (sqlite3), built on top of
SQLiteKit's new `Sqlite3Shell` product.

Resolves the duplicated-SDK / drift concern in #56: the SDK landed
upstream in #54, and this moves the remaining shell layer there too, so
there is a single source of truth and no second CSQLiteVec /
sqlite3_vec_init in any composed dependency graph.

- Delete Sources/SQLiteKit/Sqlite3Shell (Parser + Sqlite3Executable) and
  Tests/Sqlite3Tests — both moved to Cocoanetics/SQLiteKit, whose CI
  runs the driver's tests on the full matrix (Android emulator included).
- Drop the Sqlite3Shell product + target; repoint Sqlite3Command onto
  .product("Sqlite3Shell", package: "SQLiteKit").
- sqlite3 executable unchanged (still the macOS/Linux artifact; a stub on
  Apple-mobile). Android still drops Sqlite3Command/sqlite3; the
  ArgumentParser-free driver stays reachable from SQLiteKit for hosts.

Requires the companion SQLiteKit change (the new Sqlite3Shell product) to
merge first, since this package pins SQLiteKit to `main`.

Verified on macOS against the SQLiteKit branch: full package build +
build-tests green; the built `sqlite3` runs SQL and dot-commands
(.mode box / .tables) with output matching the system sqlite3.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@odrobnik
odrobnik merged commit 631609b into main Jun 9, 2026
6 of 10 checks passed
odrobnik added a commit that referenced this pull request Jun 9, 2026
main's #56/#57 (631609b) moved the sqlite3 shell port out to SQLiteKit;
this branch deliberately brings it back (toolchain layering: ShellKit =
command base, SQLiteKit = SDK only, SwiftPorts owns the port's two faces).
Keep our tree; main's externalization is superseded.
odrobnik added a commit that referenced this pull request Jun 9, 2026
…Commands (#58)

Two external-dependency / structure changes:

1. libgit2 → Cocoanetics/GitKit (libgit2 packaged for SwiftPM). SwiftGit /
   GitCommand / CLibgit2Shim consume the CGitKit product.
2. Toolchain layering: bring the sqlite3 shell port back in-package as
   `Sqlite3Shell` (SQLiteKit is now SDK-only), add the ArgumentParser-free
   `Sqlite3Builtin` (Android-safe), and add `SwiftPortsCommands` — vends every
   ArgumentParser-backed port as a ready-to-install ShellKit Command via
   ShellKit's `Shell.parsableCommand(_:)`. Supersedes #56/#57 (which had moved
   the shell port out to SQLiteKit).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@odrobnik
odrobnik deleted the claude/strange-perlman-b0e7ee branch June 10, 2026 18:35
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.

Resolve duplicated SQLiteKit SDK (internal copy vs standalone Cocoanetics/SQLiteKit)

1 participant