NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #2586 most downloaded on crates.io
A crate of the gitoxide project to provide common errors and error-handling utilities
Last release 13 days ago
25 Sep 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 12 of 12 stable releases
Nothing withdrawn
no release was ever pulled
8 months old
12 releases · first in 2026
One column per month.
add git_is_space() It's very niche but needed for correctness in globs and git-config parsing.
git_is_space()raise MSRV to Rust 1.88
The newly published dua-core 3.3 release used by linked-worktree removal
requires Rust 1.88, so raise every workspace crate and the advertised badge
together.
Keep the MSRV checks buildable by selecting the latest sysinfo and rusqlite
release lines that support Rust 1.88.
remote-ref-list and pack-receive subcommands to gixindex-from-pack to pack-index-from-data<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
fb1f048)445be27)46a3511)c06d819)487d06d)2fcb557)b38290e)35e26fc)f90b92f)161e7df)5ea49c8)40a6412)386673c)b4a6e16)
</details>add ergonomic test errors and string comparisons
add BoxedResultExt for boxed errors
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
Many small and possibly breaking changes are not mentioned here.
pack-explode and pack-index-from-data sub-commandspack-verifyMany small and possibly breaking changes are not mentioned here.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
34b2373)e71da0f)f59f66e)763d7ca)3a4faec)1931575)181d69c)e509373)d7591e2)c0352c2)91ba045)bca7ce2)584350a)395c7e7)8812e91)657aa2c)1e2ec7e)cc147bc)43c7fd1)9660bbf)44b8221)665696f)ee45c7f)0a33b24)29b9c23)adbc82c)0d31ad1)1805d64)0bcb790)f66b116)f932256)ec8c48a)d3c00c8)5e23137)93a9b30)aeb8778)bb45c3d)ec40e09)bcb275e)41f38c4)a7cfac8)afae684)fbb9f98)2888f1b)f98c5b1)7c5d8b8)
</details><csr-id-1af3e724c305862975bab35a6c9c263abb5d894b/> preserve and classify typed error sources <!-- agent --> Error classification and probable-cause selection need to inspect the complete error graph without turning native sources into strings or behaving differently across tree and auto-chain modes.
Add CorruptionError, NotFoundError, and RetryableError together with Error classification helpers and support for boxed standard errors. Classification follows native source chains and nested gix errors while retaining concrete types for downcasting.
Keep native sources owned by their original errors and traverse them lazily alongside explicit frames. Add breadth-first error iteration with optional captured locations, direct stored-error access, and downcasting across the complete graph.
Preserve probable-cause identity and logical parent relationships while flattening exception trees into ChainedError. This lets auto-chain mode reconstruct the same traversal order without duplicating nested compatibility source chains.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
keep erased errors visible to source-iteration and downcasting Since 499402c941, erasing an Exn wraps its error in the Untyped marker so that the type
<csr-id-ccd5bd412eeaf3fa9537a021d647f818d4a27833/> keep erased errors visible to source-iteration and downcasting Since 499402c941, erasing an Exn wraps its error in the Untyped marker so that the typed accessors of Exn<Untyped> keep working. However, the marker also hid the original error from everything that walks the error afterwards: frames now yielded the marker, which cannot be downcast to the original type, and whose empty Error implementation cut off the source chain below it.
This broke gix diff file, whose fallback for treating a revspec as a path on disk downcasts the sources() of a failed rev-parse to find the ref-not-found error - it would now fail with "couldn't parse revision" instead.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
5 commits contributed to the release over the course of 28 calendar days.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
10c58bb)ab2fee1)2cb17b2)3675a8d)adb8328)
</details>improve error message around "Signature name or email must not contain..." This might make it easier to understand where the error is coming from.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
76a03eb)53f880c)4d5ba23)2c3a08e)
</details>6 commits contributed to the release over the course of 32 calendar days.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
f9fbcba)444a92b)package.include patterns more specific so they don't match ignored files (c2c917f)5f5a836)just nextest work reliably (789b57f)98bae84)
</details>4 commits contributed to the release.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
c389a2c)6183fd0)6bdb331)f7277f3)
</details>The newly published dua-core 3.3 release used by linked-worktree removal requires Rust 1.88, so raise every workspace crate and the advertised badge t
migrate errors to gix-error
raise MSRV to Rust 1.88
The newly published dua-core 3.3 release used by linked-worktree removal
requires Rust 1.88, so raise every workspace crate and the advertised badge
together.
Keep the MSRV checks buildable by selecting the latest sysinfo and rusqlite
release lines that support Rust 1.88.
From<Message> for ValidationError guide.
This allows to more conveniently create validation errors.gix-error instead of thiserror in gix-quote
Replace the thiserror-derived ansi_c::undo::Error enum with
gix_error::Exn<gix_error::ValidationError>, converting the Error::new()
factory and variant constructors to message!() calls.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
ecf90fc)000d58a)gix-error instead of thiserror in gix-quote (502eaa0)From<Message> for ValidationError guide. (fdf321b)9327b73)
</details>Initial release with pack-verify
pack-verify<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
c68d9ab)48c4bbd)1f1b725)cce71aa)f276a05)4aa8022)e2a7bdd)41e01a5)e98e7c2)5fff552)0cc1bf2)aac0d34)af02b46)a4d978c)a1a0b13)5acecc5)1f9bc03)fce7035)b3780f8)13cd8ce)ac490c2)6794300)122d69f)6adf615)5b4979c)7add82c)3bf3321)c416152)60eaea0)caa883b)026a0dd)30925e6)67026e4)aaf4825)b820717)da3ae1c)b1e51d6)0fbba9f)ba6a8ef)f01c298)b09b4e1)0ac9c5a)8c0e0b5)7cec2b6)41f4bce)1179ac1)3ca2c59)aa8efdd)eb7388c)417c34b)87c8a2e)2aa0857)57737c2)c3d319f)
</details>ParseError into ValidationError
The latter is more general and makes sense both for parsing,
and for validation.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
d66ac10)e4f016b)f860c0b)0b0e9f8)9007e1b)8bceefb)7ce3c55)e8612b5)ParseError into ValidationError (b2c516a)f7d0975)
</details>Add an auto-chain-error feature to let gix-error::Error produce error chains suitable for anyhow.
auto-chain-error feature to let gix-error::Error produce error chains suitable for anyhow.anyhow source-chain display.gix-error::Exn
This is mainly useful for gitoxide-core, which may call plumbing.Exn::downcast_any_ref()gix-error in gix-date
This will make for easier introspection for users of these errors.exn.Exn::from_iter to raise_all<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
f8517be)829393a)fa302a1)9d39656)16327ef)auto-chain-error feature to let gix-error::Error produce error chains suitable for anyhow. (461c876)anyhow source-chain display. (28f4211)gix-error::Exn (053c3ee)6cff657)e112cac)ErrorExt::erased() to ErrorExt::raise_erased(). (373fced)Exn work properly after the type was erased. (499402c)Exn::downcast_any_ref() (3301eb8)25233ce)Exn::into_box() to Exn::into_inner(). (939b8fc)4c6a7a7)gix-chunk (e6e90ff)ParseError for less noisy invocations. (08f9ed4)gix-error (f46ca99)ae23762)3bac149)gix-error into gix-revision. (4819ea8)exn to most pressing needs of gitoxide (abedade)exn from https://github.com/fast/exn@bb4d8ea4e4df335c46d4fa3f4f260121f9f84305 (0eaab70)gix-error in gix-date (5ab19a7)gix-error crate to forward exn (35cf1ff)
</details>Your coding agent can read these notes before it upgrades. Set up the MCP server →