From dbb056f451d7ae9de1dfe4597a997d7846f34615 Mon Sep 17 00:00:00 2001 From: "glm-5.3-flash" Date: Mon, 21 Sep 2026 16:27:09 +0000 Subject: [PATCH] build: split gix/registry-file features, drop gix facade dependency MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per ADR-012 §4: the gix feature now gates only the engine component crates (odb/pack/ref/object/fsck); the gix facade crate (client entry point) is removed — the impls drive components directly (POC-2's shape). registry-file added as an independent default-on seam (file-backed registry + record ops, no gitoxide). Both default-on preserves the batteries-included story; --no-default- features remains the wire-only embed. Verification: cargo test (default + --no-default-features), clippy --all-targets -D warnings, fmt --check. --- Cargo.toml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 9395d85..6e24f6f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,17 +14,22 @@ name = "alkgit" path = "src/lib.rs" [features] -default = ["gix"] -# gitoxide-backed backend implementations (registry, refs, pack gen/ingest). -# Disable for a wire/protocol-only embed with your own backends. +default = ["gix", "registry-file"] +# gitoxide-backed engine implementations (refs, pack gen/ingest). The +# `gix` facade crate is NOT a dependency (ADR-012 §4) — the impls drive +# the component crates directly (POC-2's shape). Disable for a +# wire/protocol-only embed or with your own object-storage backend. gix = [ - "dep:gix", "dep:gix-odb", "dep:gix-pack", "dep:gix-ref", "dep:gix-object", "dep:gix-fsck", ] +# File-backed GitRegistry/GitRegistryStore default (per-repo record +# files + in-memory index) + the `git/repo/*` op set (ADR-012 §2–3). +# No gitoxide. Disable to bring your own registry backend. +registry-file = [] # sha256 passthrough (untested end-to-end; sha1 is pinned by default — OQ-05). # gix-hash stays always-on with sha1: the wire layer needs it, and gix-hash # fails to compile with neither hash feature selected (compile-time-rejected @@ -33,7 +38,6 @@ sha256 = ["gix-hash/sha256"] [dependencies] alkcall = "0.8" -gix = { version = "0.87", optional = true, default-features = false, features = ["sha1"] } gix-odb = { version = "0.84", optional = true, default-features = false, features = ["sha1"] } gix-pack = { version = "0.74", optional = true, features = ["sha1"] } gix-ref = { version = "0.67", optional = true }