Move the Sqlite3Shell driver to SQLiteKit; keep only the CLI port (#56) - #57
Merged
Conversation
…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>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #56.
What
The sqlite3 shell driver (the argv
Parser+ the dot-command / REPLSqlite3Executable) moves to the externalCocoanetics/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 thinSqlite3: AsyncParsableCommandwrapper,now over SQLiteKit's
Sqlite3Shellproduct.sqlite3— the@mainentry (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_initin any dependency graph that pullsboth this package and standalone SQLiteKit — which unblocks building a
qmdbuiltin (
SwiftSemanticIndex) on top of SwiftPorts.Changes
Sources/SQLiteKit/Sqlite3Shell(Parser + Sqlite3Executable) andTests/Sqlite3Tests— both moved to SQLiteKit, whose CI now runs thedriver's tests on the full matrix (Android emulator included).
Sqlite3Shellproduct + target; repointSqlite3Commandonto.product("Sqlite3Shell", package: "SQLiteKit").sqlite3executable unchanged (still the macOS/Linux artifact; a stub onApple-mobile). Android still drops
Sqlite3Command/sqlite3; theArgumentParser-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-testsgreen; the builtsqlite3runs SQL and dot-commands (.mode box,.tables) with outputmatching the system
sqlite3. Linux / Windows / Android via CI.Merge order
Requires Cocoanetics/SQLiteKit#1 (the new
Sqlite3Shellproduct) to mergefirst — this package pins SQLiteKit to
main. SwiftBash's repoint followsboth.
🤖 Generated with Claude Code