Releases: libra-tools/git-internal
Release list
v0.8.7
v0.8.6
What's Changed
- build(deps): bump bytes from 1.12.0 to 1.12.1 by @dependabot[bot] in #160
- build(deps): bump memchr from 2.8.2 to 2.8.3 by @dependabot[bot] in #161
- fix(delta): return errors for malformed streams by @pollychen-lab in #169
New Contributors
- @pollychen-lab made their first contribution in #169
Full Changelog: v0.8.3...v0.8.6
v0.8.5
[0.8.5] - 2026-07-29
Fixed
- Delta decoder now returns
GitErrorfor malformed streams instead of
panicking. Previously, crafted delta input could trigger a shift overflow
on overlong size varints, attempt to allocate an impractically large output
buffer, or silently produce wrong-length output when the instruction stream
produced more bytes than the declared result size. The decoder now:- Rejects varints that would overflow a
usizewith
GitError::InvalidData. - Reserves the output buffer incrementally and caps output at the declared
result size, returningInvalidDataon overrun. - Rejects negative-copy instructions that read before the base buffer.
- Rejects varints that would overflow a
- Pack delta-rebuild path propagates decoder errors.
Packpreviously
called a fallible delta helper directly in the thread pool and could lose
failures.rebuild_delta_with_hashnow reuses the hardened
delta_decodefunction and returnsGitError, and failures are surfaced
throughSharedParamsto the pack decoder's main loop so decode stops
cleanly instead of hanging on a waitlist.
Changed
- Dependency upgrades:
bstr1.12 → 1.13futures0.3.32 → 0.3.33path-absolutize3.1 → 4.0uuid1.23 → 1.24tokio1.52 → 1.53
New Contributors
- @pollychen-lab made their first contribution in #169
Full Changelog: v0.8.4...v0.8,5
v0.8.4
Patch release fixing a flaky SHA-256 pack-encoding panic that could crash downstream tools (e.g. libra bundle create) under async runtimes.
Fixed
• Pack trailer no longer panics with Invalid byte length: got 32, expected 20 on SHA-256 repositories. PackEncoder finalizes its running checksum on whichever async
worker thread happens to run the task, but ObjectHash::from_bytes re-read the thread-local HashKind at finalize time. On threads where set_hash_kind was never
called (default SHA-1), finalizing a SHA-256 pack aborted with a panic — surfacing as intermittent, scheduling-dependent failures such as pack encoder task failed
in async runtimes that migrate tasks across worker threads. Both the delta path (encode/mod.rs) and the non-delta parallel path (encode/parallel.rs) now infer
the hash kind from the checksum byte length, and propagate a GitError instead of unwrapping.
Added
• ObjectHash::from_bytes_infer_kind — constructs an ObjectHash from raw bytes by inferring the hash kind from the byte length (20 → SHA-1, 32 → SHA-256) instead of
consulting the thread-local HashKind. Safe to call from any thread regardless of whether set_hash_kind has been invoked there.
• Regression test internal::pack::encode::tests::test_parallel_encode_trailer_ignores_thread_local_kind, which drives a SHA-256 encoder on a fresh thread holding
the default SHA-1 thread-local kind — the exact condition that previously panicked.
Changed
• Package repository metadata now points to https://github.com/libra-tools/git-internal.
• Resolved pre-existing clippy -D warnings debt so the lint gate passes again: match → ? in delta::decode, and iter() → values() map iteration in internal::index
(no behavior change).
• Added CHANGELOG.md to the repository; future releases will be recorded there.
Compatibility
• No breaking API changes. ObjectHash::from_bytes keeps its existing thread-local validation semantics; the new constructor is additive.
• Semver-compatible with 0.8.3 — downstream crates can upgrade by bumping the requirement to git-internal = "0.8.4".
v0.8.3
What's Changed
- build(deps): bump rkyv from 0.8.16 to 0.8.17 by @dependabot[bot] in #158
- build(deps): bump rand from 0.10.1 to 0.10.2 by @dependabot[bot] in #157
Full Changelog: v0.8.2...v0.8.3
v0.8.2
What's Changed
- Reduce duplicate copies in pack encoding by @cheng20050714 in #137
- perf(pack): port final50 decode fast path by @schwerli in #149
- feat(pack): Rabin fingerprint delta encoder with multi-threaded search, achieving git-level compression by @NJUWallSpider in #150
- feat(pack): add pack stats analyzer by @Maoxinyi237 in #146
- feat(pack): add PackStats utility for pack object type distribution by @jiatianbo666 in #139
- feat(pack): add PackStats and stats_pack for pack file object statistics by @sunruizhesrz in #138
- build(deps): bump ureq from 3.2.0 to 3.3.0 by @dependabot[bot] in #156
- fix: use git index ctime on v9fs by @Ivanbeethoven in #159
New Contributors
- @cheng20050714 made their first contribution in #137
- @schwerli made their first contribution in #149
- @NJUWallSpider made their first contribution in #150
- @Maoxinyi237 made their first contribution in #146
- @jiatianbo666 made their first contribution in #139
- @sunruizhesrz made their first contribution in #138
- @Ivanbeethoven made their first contribution in #159
Full Changelog: v0.7.6...v0.8.2
v0.7.6
Fix annotated tag OID to canonical hash of serialized form
Tag::new previously hashed a Display-based string instead of to_data(),
so id != hash(to_data()), breaking packfile round-trips of annotated
tags. Hash to_data() to keep the id canonical, add regression test, and
bump version to 0.7.6.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Signed-off-by: Eli Ma eli@patch.sh
v0.7.5
What's Changed
- build(deps): bump rustls-webpki from 0.103.9 to 0.103.10 in the cargo group across 1 directory by @dependabot[bot] in #122
- build(deps): bump ureq from 3.2.0 to 3.3.0 by @dependabot[bot] in #123
Full Changelog: https://github.com/web3infra-foundation/git-internal/commits/v0.7.5