cbh_git 0.3.4

Implementation crate for cargo-bench-history - do not reference directly
Documentation
[package]
# Cargo has its own logic for naming and expects dashes for the `cargo-bench-history`
# binary, but its internal implementation crates use the short `cbh_` underscore prefix.
name = "cbh_git"
description = "Implementation crate for cargo-bench-history - do not reference directly"
publish = true
version = "0.3.4"

authors.workspace = true
edition.workspace = true
include.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true

# Baseline of external types intentionally exposed in the public API. Any new
# external type must be reviewed and added explicitly.
# Ref: docs/external-types.md.
[package.metadata.cargo_check_external_types]
allowed_external_types = ["cbh_model::context::GitInfo", "jiff::timestamp::Timestamp"]

[package.metadata.release-plan]
# Implementation partition of `cargo-bench-history`; consumers reach this surface
# through that package, which is where its compatibility is assessed.
private-api = true

[lib]
# This is an implementation crate whose surface is documented on `cargo-bench-history`.
doc = false

[features]
# Internal-only API surface for in-workspace tests: the in-memory `FakeGitHistory` that
# other crates' tests (and this crate's own tests) inject in place of the real `git`
# adapter, so the query logic is testable without a repository. Never forwarded by the
# shell crate, so end-user builds never see it. See docs/impl-crate-split.md for the
# `test-util` vs `private-test-util` distinction.
private-test-util = []

[dependencies]
cbh_model = { workspace = true }
jiff = { workspace = true }
tokio = { workspace = true, features = ["process"] }

[dev-dependencies]
futures = { workspace = true, features = ["executor"] }
mutants = { workspace = true }
testing = { path = "../testing" }

[lints]
workspace = true