The publish bump (core/w5-publish) over the green wave-5 gate:
- manifest: version 0.0.1 -> 0.1.0; the substrate's inter-crate pin
follows (alkgit = { path = "..", version = "0.1.0" })
- the family LICENSE-MIT / LICENSE-APACHE files added (every sibling
crate ships them; the package listing gained the two files)
- CHANGELOG: the 0.1.0 entry dated and the stale 0.0.1-note dropped
- tests: the two agent-string pins moved from the hardcoded version
to env!(CARGO_PKG_VERSION) — the src side builds the agent string
from the manifest version, so the pins now hold across bumps
Verification: cargo test (workspace), cargo test --all-features,
cargo test -p alkgit, both clippies (-D warnings), cargo fmt --check,
cargo doc --no-deps (0 warnings), the fuzz corpus gate (13/13),
cargo publish --dry-run --allow-dirty (77-file package) — all green.
89 lines
4.2 KiB
TOML
89 lines
4.2 KiB
TOML
# Two-member workspace (ADR-025): this root package is the protocol-core
|
|
# `alkgit` crate; the shipped composition lives in `substrate/`
|
|
# (`alkgit-substrate`). The root package is implicitly a workspace member.
|
|
[workspace]
|
|
members = ["substrate"]
|
|
exclude = ["fuzz"]
|
|
resolver = "2"
|
|
|
|
[package]
|
|
name = "alkgit"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
rust-version = "1.88"
|
|
license = "MIT OR Apache-2.0"
|
|
repository = "https://git.alk.dev/alkdev/alkgit"
|
|
description = "Git smart protocol for the alk family: pkt-line substrates, protocol V2 serving (upload-pack/receive-pack), producer/consumer halves on alkcall channels, and the backend seam traits — the shipped alkstore+alkblobs composition is the alkgit-substrate crate (ADR-010/025)"
|
|
keywords = ["git", "protocol", "alkcall", "vcs", "network"]
|
|
categories = ["network-programming", "asynchronous"]
|
|
# The package policy (the sibling crates' convention): the published
|
|
# crate ships the architecture docs (the authoritative contract) but
|
|
# not the process surface — reviews, research, plans, task files, the
|
|
# working agents' config, the fuzz sidecar, AGENTS.md.
|
|
exclude = [".opencode/", "AGENTS.md", "docs/reviews/", "docs/research/", "docs/plans/", "docs/sdd_process.md", "tasks/", "fuzz/"]
|
|
|
|
[lib]
|
|
name = "alkgit"
|
|
path = "src/lib.rs"
|
|
|
|
[features]
|
|
default = []
|
|
# sha256 passthrough (off by default; sha1 is the pinned 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
|
|
# invariant, see docs/research/gitoxide.md).
|
|
sha256 = ["gix-hash/sha256"]
|
|
|
|
[dependencies]
|
|
alkcall = "0.10"
|
|
# Trait-family dyn-compatibility: all backend traits are #[async_trait]
|
|
# (ADR-012 §1, review 001 A-2 — bare `async fn` in a trait is not
|
|
# dyn-compatible).
|
|
async-trait = "0.1"
|
|
gix-hash = { version = "0.28", features = ["sha1"] }
|
|
# The async codec (futures-io based, bridged to tokio streams via
|
|
# tokio-util compat) — the substrate layer's framing engine (ADR-005).
|
|
gix-packetline = { version = "0.24", features = ["async-io"] }
|
|
# Consumer half (ADR-017 §2 as amended by ADR-023 §2): gix-protocol with
|
|
# its async client (handshake + ls-refs + fetch machinery) driven over
|
|
# gix-transport's git-daemon client `Connection` — a construction, not a
|
|
# new Transport impl: `GitSession` wraps it built on the alkcall
|
|
# BiStream compat halves (the ADR-016 §2/§4 preamble modes map onto
|
|
# ConnectMode::Daemon/Process); the push client is hand-rolled to
|
|
# ADR-013's shapes (gitoxide has no send-pack client). Pins confirmed
|
|
# against docs/research/gitoxide.md (the 0.89 family, async-client on
|
|
# both) at core/w4-session-construction — review 004 R-1's disposition.
|
|
gix-protocol = { version = "0.67", features = ["async-client"] }
|
|
gix-transport = { version = "0.61", features = ["async-client"] }
|
|
# Ref-name validation (ADR-013 §9) — `reference::name` is the transport-side
|
|
# check; the deny-list and the pinned reason live next to it in `refname`.
|
|
gix-validate = "0.13"
|
|
bstr = "1"
|
|
# The `git/repo/*` op-record schemas (ADR-012 §3).
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
tokio = { version = "1", default-features = false, features = ["rt", "sync", "io-util", "macros", "time"] }
|
|
tokio-util = { version = "0.7", features = ["compat"] }
|
|
futures = "0.3"
|
|
bytes = "1"
|
|
thiserror = "2"
|
|
parking_lot = "0.12"
|
|
|
|
[dev-dependencies]
|
|
serde_json = "1"
|
|
tokio = { version = "1", features = ["full", "test-util", "macros"] }
|
|
# The pack-generation pipeline's gix components (ADR-004's composition over
|
|
# the test doubles — the wave-2 task's test-side-only pin; the crate's regular
|
|
# dependencies stay unchanged, the real impl is `alkgit-substrate`'s). Version-
|
|
# pinned and lean per gitoxide.md's pinning rules, `sha1` throughout.
|
|
gix-object = { version = "0.66", features = ["sha1"] }
|
|
gix-actor = "0.44"
|
|
gix-traverse = { version = "0.63", features = ["sha1"] }
|
|
gix-pack = { version = "0.76", default-features = false, features = ["generate", "parallel", "sha1", "streaming-input"] }
|
|
gix-error = "0.5"
|
|
gix-parallel = { version = "0.50", default-features = false, features = ["parallel"] }
|
|
gix-utils = { version = "0.5", features = ["progress"] }
|
|
gix-zlib = { version = "0.3" }
|
|
|
|
[profile.release]
|
|
lto = "thin" |