diff --git a/project.yml b/project.yml index 47cf574..b0096d1 100644 --- a/project.yml +++ b/project.yml @@ -23,35 +23,9 @@ packages: IndieAbout: url: https://git.rzen.dev/rzen/indie-about.git minorVersion: 0.2.2 - # **The bundled git client** (06-history-undo.md ▸ Rules: "Bundled libgit2 — no git install - # required"): SwiftGitX vendors libgit2 as an in-process library, so every git operation the app - # performs runs inside the sandbox with no `Process`, no `/usr/bin/git`, and no sandbox extension. - # A board's history therefore works identically in a Release build on a machine that has never had - # Xcode or the command-line tools installed. - # - # `exactVersion` rather than a range, and pinned to the pathfinder's own 0.4.0: the package is - # pre-1.0 with an API that moves between minors (the commit and diff surfaces this depends on both - # changed shape in 0.3→0.4), so a floating pin would be a resolver deciding when the git provider - # stops compiling. - SwiftGitX: - url: https://github.com/ibrahimcetin/SwiftGitX - exactVersion: 0.4.0 - # **The C library underneath SwiftGitX, named directly** (06-history-undo.md ▸ Interaction with - # external writers: "foreign changes are committed under the pinned synthetic author"). SwiftGitX - # 0.4.0's `commit(message:)` takes no signature — its `CommitOptions` leaves `author`/`committer` - # null and libgit2 falls back to `git_signature_default`, which reads a config the sandbox cannot - # see — so the auto-committer's per-commit authorship is unreachable through the wrapper. It - # reaches `git_commit_create` itself (`GitCommitOperation`), which needs the same vendored module - # SwiftGitX imports. - # - # **The same package SwiftGitX already resolves**, pinned to the version SwiftGitX pins exactly - # (`.package(url: …/libgit2.git, exact: "1.9.2")`): this adds no second copy of libgit2 to the - # binary and no second resolution to argue with — it makes a module the app already links - # *importable*. A drift between these two pins is a resolver error at build time, which is the - # loudest place for it to be. - libgit2: - url: https://github.com/ibrahimcetin/libgit2.git - exactVersion: 1.9.2 + # SwiftGitX 0.4.0 / libgit2 1.9.2 (both `github.com/ibrahimcetin/…`) left with the git excision + # (strategy/01-git-excision.md, 2026-08-08) — the exact pins for resurrection are recorded there + # and at the `pre-git-excision` tag. settings: base: @@ -69,12 +43,6 @@ settings: # What that buys this file: no anchors, no per-target exclusion lists, no second copy of the # resources. There is one product, one Info.plist, one entitlements file, one Swift module, and one # `.kanban` UTI **exported** (never imported) by the app that owns it. -# -# libgit2 arrived here with pro-m1, as SwiftGitX above — a dependency of the one target, dormant -# behind the subscription gate rather than the contents of a second download. It links into the free -# app and never runs there: detection itself is tier-gated (`HistoryStore.compose`), so a free-tier -# session opens without so much as a `fileExists` under `.git` (12-editions.md ▸ The free tier and -# `.git`, and `InertGitTests`). targets: # MARK: - Lanework @@ -116,8 +84,6 @@ targets: - package: swift-markdown product: Markdown - package: IndieAbout - - package: SwiftGitX - - package: libgit2 postBuildScripts: - script: '"${SRCROOT}/../indie-skills/skills/app-versioning/scripts/update_build_info.sh"' name: Update Build Info