Skip to content

Release history

gitoxide releases

An idiomatic, lean, fast & safe pure Rust implementation of Git

All releases

199 shown

No immediate action
v0.56.0 Breaking risk

Terminal modes + config tools + tix + status flag

No immediate action
gix-tix-v0.1.0 New feature

Configurable modes + mailmap + perf

Review required
gitoxide-core-v0.60.0 Breaking risk
Auth Breaking upgrade

Config fmt, status untracked, remote refs list, replace maybe-async

No immediate action
gix-fsck-v0.24.0 Maintenance

Routine maintenance and dependency updates.

Review required
gix-v0.86.0 Breaking risk
Auth RBAC Breaking upgrade

Windows status cache, bisync replace, config lifetime-free, new features

Upgrade now
gix-worktree-state-v0.33.0 Breaking risk
Auth RCE / SSRF

Symlink handling + encodings + exec bits

gix-submodule-v0.33.0 Breaking risk
Breaking changes
  • Parsed configuration files no longer carry input lifetimes; `File` and `Events` become lifetime‑free.
  • `from_bytes_owned()` removed, unifying parsing under `Events::from_bytes()`.
  • Submodule API now consumes owned `BString` values instead of `Cow` for paths.
Notable features
  • Lifetime‑free configuration handling via self‑contained backing buffer and lightweight refs (`EventRef`, `SectionRef`, etc.).
  • Unified parsing entry point `Events::from_bytes()` with new traversal methods `iter()`, `frontmatter()`, and `sections()`.
  • Simplified typed lookups returning `Result` instead of `Option<Cow>` and broader input support via `AsBStr`/`IntoBStringOpt`.
Full changelog

Changed (BREAKING)

  • validate config value names internally and use AsBStrOpt for value pushes.
    This makes using the APIs much more convenient.

New Features (BREAKING)

  • make parsed configuration files lifetime-free
    Store parsed configuration data in a self-contained backing buffer, with
    event payloads represented as compact spans into it. This removes the
    input lifetime from File and Events, making parsed configurations
    easier to return, store, move, and combine.

    Expose data through lightweight EventRef, SectionRef, HeaderRef,
    and BodyRef views. This retains efficient borrowed access while keeping
    ownership details out of the primary API.

    • Unify parsing under Events::from_bytes() and remove
      from_bytes_owned().
    • Add Events::iter(), frontmatter(), and sections() for
      non-consuming traversal.
    • Return owned BString values from lookups, avoiding Cow handling.
    • Simplify optional typed lookups from Option<Result<T, E>> to
      Result<Option<T>, E>.
    • Accept common string and byte-string inputs through AsBStr and
      IntoBStringOpt.
    • Allow concise calls such as new_section("remote", "origin") without
      constructing Option<Cow<...>>.
    • Reduce mutable value and section handles to the lifetime of their
      active file borrow.

    Introduce explicit section ownership: Section is self-contained and
    can be removed, edited, and inserted into another file, while
    SectionRef and SectionMut provide borrowed access.

    Preserve original subsection spelling for serialization while retaining
    decoded names for lookup. Configuration equality now also compares
    section and value names case-insensitively, matching Git semantics.

    Add benchmarks covering section, value, subsection, and multi-value
    lookups across configurations of varying sizes.

Bug Fixes (BREAKING)

  • Adapt gix-submodule to lifetime-free configuration files
    Remove gix_config::File lifetime arguments throughout the public and internal
    submodule APIs. Consume the newly owned configuration values directly when
    validating paths, URLs, branches, and update modes.

    Additinoally, let Submodule::path() return BString instead of
    a Cow.

Commit Statistics

  • 12 commits contributed to the release.
  • 31 days passed between releases.
  • 3 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Update changelogs prior to release (cb6ec7d)
    • Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates (f0ec710)
    • Merge pull request #2725 from GitoxideLabs/gix-config-improvements (5982dfe)
    • Validate config value names internally and use AsBStrOpt for value pushes. (0887485)
    • Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
    • Replace lint allowances with expectations (43ff87a)
    • Merge pull request #2667 from GitoxideLabs/lifetime-free-config-parser (55b5158)
    • Adapt gix-submodule to lifetime-free configuration files (f138664)
    • Make parsed configuration files lifetime-free (0e3b35b)
    • Merge pull request #2714 from GitoxideLabs/fix-credentials-parsing (cf3053a)
    • Release gix-path v0.12.2, gix-error v0.2.5, gix-utils v0.3.4, gix-date v0.15.6, gix-url v0.36.2, gix-credentials v0.38.2 (27aec47)
    • Merge pull request #2646 from GitoxideLabs/report (1b1541e)
No immediate action
gix-status-v0.33.0 Mixed

Windows fscache + status perf + deps update

gix-protocol-v0.64.0 Breaking risk
⚠ Upgrade required
  • Adapt code consuming configuration APIs to handle new owned return types and `Result<T, E>` error propagation.
  • Update any usage of deprecated lifetime‑bound configuration file handling to the new `gix_config::File` representation.
Breaking changes
  • Replaced globally feature‑selected `maybe-async` dependency with `bisync` 0.3 and re‑exported the locally selected macro mode from gix-protocol.
  • Updated repository configuration storage, snapshots, overrides, and caches in `gix-config` to use lifetime‑free `gix_config::File` representation, removing artificial input lifetimes or conversions to `'static`.
  • Changed configuration‑derived lookups to return owned values: `BString`, `PathBuf`, `OsString`, and `FullName`; simplified optional access from `Option<T>` to `Result<T, E>`; accepted common string inputs via `AsBStr`; removed widespread `Cow` construction, `into_owned()`, and redundant cloning.
Full changelog

Changed (BREAKING)

  • replace maybe-async with bisync.
    Replace the globally feature-selected maybe-async dependency with bisync 0.3 and
    re-export the locally selected macro mode from gix-protocol.

    Also use it to deduplicate portions which previously couldn't be handled.

  • adapt to lifetime-free configuration files in gix-config
    Update repository configuration storage, snapshots, overrides, and caches
    to use the self-contained gix_config::File representation. Configuration
    can now move through repository initialization, cloning, and remote setup
    without artificial input lifetimes or conversions to 'static.

    • Return owned BString, PathBuf, OsString, and FullName values
      from configuration-derived lookups.
    • Simplify fallible optional access from Option<Result<T, E>> to
      Result<Option<T>, E>, allowing errors to propagate naturally with
      ?.
    • Accept common string and byte-string inputs through AsBStr in
      configuration setters, converters, remote lookup, and remote saving.
    • Remove widespread Cow construction, into_owned(), and redundant
      cloning from configuration consumers.
    • Preserve configuration-key context when converting owned values and
      enriching validation errors.

    Adapt config-tree conversions for the new owned values and optional-result
    shape, including booleans, integers, paths, URLs, refspecs, timeouts,
    compression levels, and reference names.

    Return owned remote names, default remote names, branch tracking
    references, and submodule paths so these results are independent of the
    repository configuration borrow. Protocol feature values likewise use
    owned strings.

    Update repository opening, initialization, cloning, remotes, filters,
    status, submodules, and related tests to use the lifetime-free APIs.

Commit Statistics

  • 15 commits contributed to the release.
  • 31 days passed between releases.
  • 2 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • Uncategorized
    • Update changelogs prior to release (cb6ec7d)
    • Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates (f0ec710)
    • Merge pull request #2728 from GitoxideLabs/try-bisync (adf4b7a)
    • Deduplicate fetch I/O across async and blocking modes (2619919)
    • Replace maybe-async with bisync. (c3f2244)
    • Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
    • Replace lint allowances with expectations (43ff87a)
    • Merge pull request #2667 from GitoxideLabs/lifetime-free-config-parser (55b5158)
    • Adapt to changes in gix-config (376e946)
    • Adapt to lifetime-free configuration files in gix-config (582d7b5)
    • Merge pull request #2714 from GitoxideLabs/fix-credentials-parsing (cf3053a)
    • Release gix-path v0.12.2, gix-error v0.2.5, gix-utils v0.3.4, gix-date v0.15.6, gix-url v0.36.2, gix-credentials v0.38.2 (27aec47)
    • Merge pull request #2702 from ameyypawar/fix/2694-exn-source-chain (e9c973d)
    • Thanks clippy (d533f0c)
    • Merge pull request #2646 from GitoxideLabs/report (1b1541e)
Review required
gix-transport-v0.58.0 Breaking risk
Auth

git-upload-pack path, reqwest error preservation, maybe‑async → bisync

No immediate action
gix-shallow-v0.13.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-refspec-v0.44.0 Maintenance

Minor fixes

No immediate action
gix-odb-v0.83.0 Breaking risk

Bug fixes + compression breakage

Review required
gix-pack-v0.73.0 Breaking risk
Breaking upgrade

Compression config + header safety

Config change
gix-zlib-v0.1.0 Breaking risk
Breaking upgrade

gix-zlib crate + config + stats

No immediate action
gix-negotiate-v0.34.0 Maintenance

Changelog update + credential fix

No immediate action
gix-merge-v0.19.0 Bug fix

Rename determinism + hash‑agnostic merges

No immediate action
gix-revision-v0.48.0 Maintenance

Minor fixes

No immediate action
gix-mailmap-v0.33.2 Maintenance

gitoxide component releases

No immediate action
gix-dir-v0.28.0 Bug fix

Empty dir bugfix + stats + crate bumps

No immediate action
gix-discover-v0.54.0 New feature

Fixtures bypass Git gates; stats & crate releases

Review required
gix-config-v0.59.0 Breaking risk
Breaking upgrade Auth

Config parsing overhaul + BREAKING

Review required
gix-ref-v0.66.0 Bug fix
Auth RBAC

Ref transaction bug fixes + stats

No immediate action
gix-blame-v0.16.0 Maintenance

Changelog updates + component releases

No immediate action
gix-diff-v0.66.0 Bug fix

Rename fix + order independence + benchmark

No immediate action
gix-imara-diff-v0.2.4 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-worktree-v0.55.0 Breaking risk

Dependency removal + symlink validation + crate updates

No immediate action
gix-ignore-v0.22.0 Maintenance

Changelog updates + crate releases

No immediate action
gix-pathspec-v0.19.0 Maintenance

Subcrate updates + lint changes

No immediate action
gix-index-v0.54.0 New feature

entry::Mode API addition + crate updates

No immediate action
gix-lock-v24.0.0 Maintenance

Changelog updates + crate releases

No immediate action
gix-tempfile-v24.0.0 Maintenance

Minor fixes

No immediate action
gix-bitmap-v0.3.3 Maintenance

Changelog updates + PR merges

No immediate action
gix-archive-v0.35.0 Maintenance

Changelog updates + crate releases

No immediate action
gix-worktree-stream-v0.35.0 Maintenance

Crates updates + credentials fix

No immediate action
gix-traverse-v0.60.0 Maintenance

Changelog updates + module releases

No immediate action
gix-revwalk-v0.34.0 Maintenance

Changelog update + module releases

No immediate action
gix-commitgraph-v0.38.0 Maintenance

Changelog updates + library releases

No immediate action
gix-chunk-v0.7.3 Maintenance

Routine maintenance and dependency updates.

Monitor
gix-fs-v0.22.0 Bug fix

Bug fixes, stats, Clippy, module bumps

No immediate action
gix-filter-v0.33.0 Breaking risk

Bug fixes + breaking API change

gix-packetline-v0.22.0 Breaking risk
Breaking changes
  • Removed `maybe-async` dependency and replaced it with `bisync` 0.3; re-exported locally selected macro mode from gix-protocol.
Full changelog

Changed (BREAKING)

  • replace maybe-async with bisync.
    Replace the globally feature-selected maybe-async dependency with bisync 0.3 and
    re-export the locally selected macro mode from gix-protocol.

    Also use it to deduplicate portions which previously couldn't be handled.

Commit Statistics

  • 7 commits contributed to the release.
  • 37 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Update changelogs prior to release (cb6ec7d)
    • Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates (f0ec710)
    • Merge pull request #2728 from GitoxideLabs/try-bisync (adf4b7a)
    • Replace maybe-async with bisync. (c3f2244)
    • Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
    • Replace lint allowances with expectations (43ff87a)
    • Merge pull request #2638 from GitoxideLabs/fix-packetline-panic (9edeec9)
gix-attributes-v0.34.0 Breaking risk
⚠ Upgrade required
  • Enable the `parallel` feature if using `Arc` for `gix-attributes` to maintain performance.
  • Migrate code that relied on borrowed configuration values (`&str`, `&Path`) to handle owned types (`BString`, `PathBuf`) returned by new APIs.
Breaking changes
  • Adapted to lifetime‑free `gix-config` file representation, moving storage, snapshots, overrides, and caches to use owned `File` values without artificial input lifetimes.
  • Return owned types (`BString`, `PathBuf`, `OsString`, `FullName`) from configuration lookups instead of borrowed references.
  • Simplify fallible optional access from `Option<T>` to `Result<T, E>`, allowing errors to propagate with `?`.
Full changelog

Changed (BREAKING)

  • adapt to lifetime-free configuration files in gix-config
    Update repository configuration storage, snapshots, overrides, and caches
    to use the self-contained gix_config::File representation. Configuration
    can now move through repository initialization, cloning, and remote setup
    without artificial input lifetimes or conversions to 'static.

    • Return owned BString, PathBuf, OsString, and FullName values
      from configuration-derived lookups.
    • Simplify fallible optional access from Option<Result<T, E>> to
      Result<Option<T>, E>, allowing errors to propagate naturally with
      ?.
    • Accept common string and byte-string inputs through AsBStr in
      configuration setters, converters, remote lookup, and remote saving.
    • Remove widespread Cow construction, into_owned(), and redundant
      cloning from configuration consumers.
    • Preserve configuration-key context when converting owned values and
      enriching validation errors.

    Adapt config-tree conversions for the new owned values and optional-result
    shape, including booleans, integers, paths, URLs, refspecs, timeouts,
    compression levels, and reference names.

    Return owned remote names, default remote names, branch tracking
    references, and submodule paths so these results are independent of the
    repository configuration borrow. Protocol feature values likewise use
    owned strings.

    Update repository opening, initialization, cloning, remotes, filters,
    status, submodules, and related tests to use the lifetime-free APIs.

Chore (BREAKING)

  • Remove kstring from gix-attributes in favor of Rc/Arc
    As RC is about 4% faster, Arc must be turned on with the parallel feature.

Commit Statistics

  • 13 commits contributed to the release.
  • 31 days passed between releases.
  • 2 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Update changelogs prior to release (cb6ec7d)
    • Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates (f0ec710)
    • Merge pull request #2721 from GitoxideLabs/remove-kstring (e70732a)
    • Remove kstring from gix-attributes in favor of Rc/Arc (de1eae5)
    • Add gix-attributes lookup benchmark. (5d497a0)
    • Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
    • Replace lint allowances with expectations (43ff87a)
    • Merge pull request #2667 from GitoxideLabs/lifetime-free-config-parser (55b5158)
    • Adapt to changes in gix-config (376e946)
    • Adapt to lifetime-free configuration files in gix-config (582d7b5)
    • Merge pull request #2714 from GitoxideLabs/fix-credentials-parsing (cf3053a)
    • Release gix-path v0.12.2, gix-error v0.2.5, gix-utils v0.3.4, gix-date v0.15.6, gix-url v0.36.2, gix-credentials v0.38.2 (27aec47)
    • Merge pull request #2646 from GitoxideLabs/report (1b1541e)
No immediate action
gix-glob-v0.27.0 Maintenance

Changelog updates + crate releases

No immediate action
gix-object-v0.63.0 New feature

Write impl, crate updates, Clippy fixes

No immediate action
gix-hashtable-v0.16.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-hash-v0.26.0 Maintenance

Minor fixes

Review required
gix-features-v0.49.0 Breaking risk
Breaking upgrade Dependencies

Bug fixes, zlib removal, stats, commits

No immediate action
gix-actor-v0.41.2 Maintenance

Commit stats + details

gix-credentials-v0.39.0 Breaking risk
Breaking changes
  • Configuration storage, snapshots, overrides, and caches now use self‑contained `gix_config::File` representation without artificial input lifetimes or `'static` conversions.
  • Return owned values (`BString`, `PathBuf`, `OsString`, `FullName`) from configuration lookups instead of borrowed types.
  • Simplify optional access: change `Option<Result<_, _>>` to `Result<Option<_>, _>` for natural error propagation with `?`.
Notable features
  • Configuration paths can be stored and parsed from strings without lifetimes.
  • Protocol protection can now be configured via new API.
Full changelog

Changed (BREAKING)

  • adapt to lifetime-free configuration files in gix-config
    Update repository configuration storage, snapshots, overrides, and caches
    to use the self-contained gix_config::File representation. Configuration
    can now move through repository initialization, cloning, and remote setup
    without artificial input lifetimes or conversions to 'static.

    • Return owned BString, PathBuf, OsString, and FullName values
      from configuration-derived lookups.
    • Simplify fallible optional access from Option<Result<T, E>> to
      Result<Option<T>, E>, allowing errors to propagate naturally with
      ?.
    • Accept common string and byte-string inputs through AsBStr in
      configuration setters, converters, remote lookup, and remote saving.
    • Remove widespread Cow construction, into_owned(), and redundant
      cloning from configuration consumers.
    • Preserve configuration-key context when converting owned values and
      enriching validation errors.

    Adapt config-tree conversions for the new owned values and optional-result
    shape, including booleans, integers, paths, URLs, refspecs, timeouts,
    compression levels, and reference names.

    Return owned remote names, default remote names, branch tracking
    references, and submodule paths so these results are independent of the
    repository configuration borrow. Protocol feature values likewise use
    owned strings.

    Update repository opening, initialization, cloning, remotes, filters,
    status, submodules, and related tests to use the lifetime-free APIs.

New Features (BREAKING)

  • store configuration paths and parse values from strings
    Remove the lifetime from gix_config_value::Path and store its bytes in a
    BString. Path interpolation now returns an owned PathBuf, including for paths
    that do not require expansion.

    Allow Boolean, Color, and Integer to parse UTF-8 string slices as well as
    byte strings. Keep BStr as the canonical parser input and disambiguate BString
    callers explicitly.

  • allow protocol protection to be configured

Bug Fixes (BREAKING)

  • make protect_protocol part of Context so it's self-contained.
    This returns many methods back to their original version, but it's still
    a breaking change, but now once again less so.

Commit Statistics

  • 11 commits contributed to the release over the course of 8 calendar days.
  • 8 days passed between releases.
  • 4 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Merge pull request #2734 from GitoxideLabs/url-parse-convenience (e7af50e)
    • Adapt to changes in gix-url (271454b)
    • Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
    • Replace lint allowances with expectations (43ff87a)
    • Merge pull request #2667 from GitoxideLabs/lifetime-free-config-parser (55b5158)
    • Adapt to lifetime-free configuration files in gix-config (582d7b5)
    • Store configuration paths and parse values from strings (020bbb6)
    • Merge pull request #2715 from GitoxideLabs/fixup-credentials (299d16b)
    • Make protect_protocol part of Context so it's self-contained. (7d66c9f)
    • Merge pull request #2714 from GitoxideLabs/fix-credentials-parsing (cf3053a)
    • Allow protocol protection to be configured (ffa862d)
gix-url-v0.37.0 Breaking risk
Breaking changes
  • Calling `parse()` may become ambiguous due to added convenience overloads
Notable features
  • More convenient calling of `parse()`
  • Updated commit statistics reporting
Full changelog

New Features (BREAKING)

  • more convenient calling of parse().
    Possibly breaking, as calling code might now be ambiguous until fixed.

Commit Statistics

  • 5 commits contributed to the release over the course of 8 calendar days.
  • 8 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Merge pull request #2734 from GitoxideLabs/url-parse-convenience (e7af50e)
    • More convenient calling of parse(). (8bc7005)
    • Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
    • Replace lint allowances with expectations (43ff87a)
    • Merge pull request #2714 from GitoxideLabs/fix-credentials-parsing (cf3053a)
No immediate action
gix-sec-v0.14.2 Maintenance

Maintenance updates

gix-prompt-v0.16.0 Breaking risk
⚠ Upgrade required
  • Update code that previously relied on borrowed configuration values (e.g., `&str`, `&Path`) to handle the new owned types (`BString`, `PathBuf`, etc.).
  • Adjust error handling paths to work with `Result`‑based optional access introduced in the API changes.
  • Replace any usage of `Cow<'_, BStr>` or explicit `.into_owned()` calls when interacting with configuration APIs.
Breaking changes
  • Configuration storage, snapshots, overrides, and caches now use self‑contained `gix_config::File` representation without artificial input lifetimes or conversions to `'static`.
  • Return owned `BString`, `PathBuf`, `OsString`, and `FullName` values from configuration‑derived lookups instead of borrowed types.
  • Simplify fallible optional access from `Option<Result<…, E>>` to `Result<Option<…>, E>` (or similar) allowing errors to propagate naturally with `?`.
Full changelog

Changed (BREAKING)

  • adapt to lifetime-free configuration files in gix-config
    Update repository configuration storage, snapshots, overrides, and caches
    to use the self-contained gix_config::File representation. Configuration
    can now move through repository initialization, cloning, and remote setup
    without artificial input lifetimes or conversions to 'static.

    • Return owned BString, PathBuf, OsString, and FullName values
      from configuration-derived lookups.
    • Simplify fallible optional access from Option<Result<T, E>> to
      Result<Option<T>, E>, allowing errors to propagate naturally with
      ?.
    • Accept common string and byte-string inputs through AsBStr in
      configuration setters, converters, remote lookup, and remote saving.
    • Remove widespread Cow construction, into_owned(), and redundant
      cloning from configuration consumers.
    • Preserve configuration-key context when converting owned values and
      enriching validation errors.

    Adapt config-tree conversions for the new owned values and optional-result
    shape, including booleans, integers, paths, URLs, refspecs, timeouts,
    compression levels, and reference names.

    Return owned remote names, default remote names, branch tracking
    references, and submodule paths so these results are independent of the
    repository configuration borrow. Protocol feature values likewise use
    owned strings.

    Update repository opening, initialization, cloning, remotes, filters,
    status, submodules, and related tests to use the lifetime-free APIs.

Commit Statistics

  • 6 commits contributed to the release.
  • 58 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
    • Replace lint allowances with expectations (43ff87a)
    • Merge pull request #2667 from GitoxideLabs/lifetime-free-config-parser (55b5158)
    • Adapt to changes in gix-config (376e946)
    • Adapt to lifetime-free configuration files in gix-config (582d7b5)
    • Merge pull request #2618 from GitoxideLabs/report (f7d4f33)
gix-config-value-v0.19.0 Breaking risk
Breaking changes
  • Removed lifetime parameter from `gix_config_value::Path`; now stores bytes in `BString`.
  • Changed `Path` interpolation to return an owned `PathBuf` instead of a borrowed path.
  • Added UTF-8 string slice parsing support for `Boolean`, `Color`, and `Integer` types alongside existing `BStr`/`BString` parsers.
Full changelog

New Features (BREAKING)

  • store configuration paths and parse values from strings
    Remove the lifetime from gix_config_value::Path and store its bytes in a
    BString. Path interpolation now returns an owned PathBuf, including for paths
    that do not require expansion.

    Allow Boolean, Color, and Integer to parse UTF-8 string slices as well as
    byte strings. Keep BStr as the canonical parser input and disambiguate BString
    callers explicitly.

Commit Statistics

  • 5 commits contributed to the release.
  • 58 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
    • Replace lint allowances with expectations (43ff87a)
    • Merge pull request #2667 from GitoxideLabs/lifetime-free-config-parser (55b5158)
    • Store configuration paths and parse values from strings (020bbb6)
    • Merge pull request #2618 from GitoxideLabs/report (f7d4f33)
No immediate action
gix-utils-v0.3.5 New feature

AsBStr traits + stats updates

No immediate action
gix-path-v0.12.3 New feature

normalize_and_clean + stats + merges

No immediate action
gix-validate-v0.11.3 Maintenance

Maintenance updates

No immediate action
gix-trace-v0.1.21 Maintenance

Routine maintenance and dependency updates.

Review required
gix-credentials-v0.38.2 Bug fix
Auth

Reject carriage return in credentials

No immediate action
gix-url-v0.36.2 Maintenance

SCP-like URL docs + commit stats

No immediate action
gix-date-v0.15.6 Maintenance

Maintenance updates

Monitor
gix-utils-v0.3.4 Mixed
Crypto / TLS

rng module + seed fix

No immediate action
gix-error-v0.2.5 Bug fix

Restores erased error visibility

No immediate action
gix-path-v0.12.2 Bug fix

Local clone fallback + stats

No immediate action
gitoxide-core-v0.59.0 Bug fix

Bug fixes + stats + Clippy + deps

No immediate action
gix-fsck-v0.23.0 Maintenance

Routine maintenance and dependency updates.

Review required
gix-v0.85.0 Breaking risk
Breaking upgrade Auth

Connections, Clone Hash, Tree Editor, Ref Handling, Trust, Shallow Tags

No immediate action
gix-worktree-state-v0.32.0 Maintenance

Executable‑bit docs + stats

No immediate action
gix-submodule-v0.32.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-status-v0.32.0 Performance

Interrupt responsiveness + is_dirty speedup

No immediate action
gix-protocol-v0.63.0 Bug fix

Object-format echo + SHA-256 support

No immediate action
gix-transport-v0.57.2 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-refspec-v0.43.0 Bug fix

Negative refspecs + stats + bugfixes

gix-odb-v0.82.0 Breaking risk
Breaking changes
  • Added `Write::*_with_known_id()` methods, altering the existing Write API signature.
Notable features
  • Commit statistics reporting (11 commits over 27 days, conventional commit detection).
  • SHA-256 store access concurrency improvements and hash-aware tests.
  • Dependency updates via Cargo group bump (40 updates).
Full changelog

New Features (BREAKING)

  • implement Write::*_with_known_id()

Commit Statistics

  • 11 commits contributed to the release over the course of 27 calendar days.
  • 27 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Merge pull request #2653 from 10ne1/dev/aratiu/sha256-odb (e68a251)
    • Review (9bb9736)
    • Cover concurrent store access under SHA-256 (c67345e)
    • Inline format args in the threaded regression test (a868fcd)
    • Make the memory-overlay and loose-store tests hash-aware (c0794db)
    • Make the dynamic-store tests hash-aware for SHA-256 fixtures (d1a055c)
    • Merge pull request #2635 from GitoxideLabs/dependabot/cargo/cargo-7b971a5e8c (155ff6d)
    • Bump the cargo group with 40 updates (9402adc)
    • Merge pull request #2549 from GitoxideLabs/no-dupl-compute (69caccd)
    • Implement Write::*_with_known_id() (a7f0645)
    • Merge pull request #2618 from GitoxideLabs/report (f7d4f33)
No immediate action
gix-pack-v0.72.0 Breaking risk

Bug fixes, breakage removal, stats, SHA‑256

No immediate action
gix-negotiate-v0.33.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-merge-v0.18.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-revision-v0.47.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-dir-v0.27.0 Maintenance

Routine maintenance and dependency updates.

Security behavior changed
gix-discover-v0.53.0 Breaking risk
RBAC

Worktree dirs, docs, trust assumption

No immediate action
gix-config-v0.58.0 Maintenance

Routine maintenance and dependency updates.

Review required
gix-ref-v0.65.0 Bug fix

Symbolic ref NUL, packed-refs perf, ref path collisions

No immediate action
gix-blame-v0.15.0 Maintenance

Pull request merge

No immediate action
gix-diff-v0.65.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-imara-diff-v0.2.3 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-worktree-v0.54.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-index-v0.53.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-tempfile-v23.0.2 Maintenance
Dependencies

Routine maintenance and dependency updates.

No immediate action
gix-archive-v0.34.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-worktree-stream-v0.34.0 Maintenance

Maintenance updates

No immediate action
gix-traverse-v0.59.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-revwalk-v0.33.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-filter-v0.32.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-attributes-v0.33.2 Bug fix

Attribute macro expansion bugfix

gix-object-v0.62.0 Breaking risk
⚠ Upgrade required
  • Code calling `Editor::remove()` on paths that may be trees should switch to `remove_leaf()` to avoid unexpected errors.
  • When using the Write trait, prefer `_with_known_id()` methods if the object ID is already known to skip hash recomputation.
Breaking changes
  • Removal of generic `remove()` behavior on leaf-only paths via new `Editor::remove_leaf()`; existing `remove()` remains but returns error when target is a tree.
Notable features
  • New `Editor::remove_leaf()` method for leaf-only tree entry removal.
  • `Write::*_with_known_id()` variants (`write_buf_with_known_id()`, `write_stream_with_known_id()`) allowing precomputed hash usage.
Full changelog

New Features (BREAKING)

  • add leaf-only tree-editor removal via Editor::remove_leaf()
    Motivation comes from https://github.com/gitbutlerapp/gitbutler/pull/14312,
    where callers had to split tree-entry deletions from additions to avoid
    accidentally deleting a newly-added subtree after adding A/one and then deleting
    A.

    Add Editor::remove_leaf() to gix-object and expose it through gix object tree
    editors and cursors. The new API keeps remove() behavior unchanged, remains
    tolerant of absent paths, but returns an error when the target entry exists and
    is a tree.

  • Add Write::*_with_known_id() variants.
    Add write_buf_with_known_id() and write_stream_with_known_id() to the
    Write trait without default bodies.
    That way it's possible to precompute the hash and avoid recomputing it here.

Commit Statistics

  • 5 commits contributed to the release over the course of 27 calendar days.
  • 27 days passed between releases.
  • 2 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Merge pull request #2654 from GitoxideLabs/tree-editor-improvement (f051396)
    • Add leaf-only tree-editor removal via Editor::remove_leaf() (cd610db)
    • Merge pull request #2549 from GitoxideLabs/no-dupl-compute (69caccd)
    • Add Write::*_with_known_id() variants. (879694a)
    • Merge pull request #2618 from GitoxideLabs/report (f7d4f33)
No immediate action
gix-hashtable-v0.15.2 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-date-v0.15.5 Maintenance
Dependencies

Routine maintenance and dependency updates.

No immediate action
gix-packetline-v0.21.5 Bug fix

Fix panic + stats updates

Review required
gix-testtools-v0.19.0 Breaking risk

Helpers, independence, winnow removal

No immediate action
v0.54.0 New feature

gix dirwalk + gix merge tree

No immediate action
gitoxide-core-v0.58.0 New feature

gix dirwalk + gix merge tree + Rust 2024 update

No immediate action
gix-fsck-v0.22.0 Maintenance

Rust 2024 edition + lint removal

Review required
gix-v0.84.0 Breaking risk
RCE / SSRF Dependencies

Empty checkout, SHA‑256 parsing, submodule fix, is_dirty change

No immediate action
gix-worktree-state-v0.31.0 Maintenance

Test tools, filter-driver, SHA‑256, sha1 cleanup, symlink fix

No immediate action
gix-submodule-v0.31.0 Maintenance

minor fixes

No immediate action
gix-status-v0.31.0 Mixed

Testtools, Status fixtures, Rust 2024, MSRV, Security

No immediate action
gix-protocol-v0.62.0 Breaking risk

Rust 2024 edition bump

No immediate action
gix-transport-v0.57.1 Breaking risk

Rust 2024 edition bump

No immediate action
gix-shallow-v0.12.1 Breaking risk

Rust 2024 edition + MSRV raise + SHA forwardings

No immediate action
gix-refspec-v0.42.0 Maintenance

Minor fixes

No immediate action
gix-odb-v0.81.0 Maintenance

Test tools, SHA‑256, Rust 2024, MSRV, object_hash

Review required
gix-pack-v0.71.0 Breaking risk
Breaking upgrade

SHA-256 + delta header fix + tool updates

No immediate action
gix-negotiate-v0.32.0 Maintenance

Maintenance

No immediate action
gix-merge-v0.17.0 Maintenance

MSRV raise + Rust 2024 + lints removal

No immediate action
gix-revision-v0.46.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-mailmap-v0.33.1 Breaking risk

Rust 2024 edition bump

No immediate action
gix-dir-v0.26.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-discover-v0.52.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-credentials-v0.38.1 Maintenance

Maintenance

No immediate action
gix-url-v0.36.1 Maintenance

Edition 2024 update + MSRV raise

No immediate action
gix-prompt-v0.15.1 Breaking risk

Rust 2024 edition bump

No immediate action
gix-config-v0.57.0 Maintenance

Minor fixes

No immediate action
gix-sec-v0.14.1 Maintenance

Maintenance

No immediate action
gix-ref-v0.64.0 Maintenance

gix-fs, test tools, object handling, MSRV

No immediate action
gix-blame-v0.14.0 Maintenance

gix modules updates & Rust edition

No immediate action
gix-diff-v0.64.0 Maintenance

gix-testtools, hash forwarding, Rust 2024, MSRV, symlink fix

No immediate action
gix-imara-diff-v0.2.2 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-worktree-v0.53.0 Maintenance

gix-testtools updates + SHA‑256 + Rust edition bump

No immediate action
gix-ignore-v0.21.1 Maintenance

gix-ignore updates + rust2024

No immediate action
gix-pathspec-v0.18.1 Breaking risk

Rust 2024 edition bump

No immediate action
gix-config-value-v0.18.1 Breaking risk

Rust 2024 edition bump

No immediate action
gix-index-v0.52.0 New feature

Docs, Index Debug, Untracked Decoding, Stat Fix

No immediate action
gix-lock-v23.0.1 Breaking risk

Rust 2024 edition bump

No immediate action
gix-tempfile-v23.0.1 Breaking risk

Rust 2024 edition + dependency updates

No immediate action
gix-bitmap-v0.3.2 Breaking risk

Rust 2024 edition bump

No immediate action
gix-archive-v0.33.0 Maintenance

sha1/sha256 forwarding, Rust 2024, MSRV raise, tooling updates

gix-worktree-stream-v0.33.0 Breaking risk
Breaking changes
  • `Stream::add_entry_from_path` now requires `hash_kind` argument; update call sites accordingly.
Notable features
  • Introduce `GIX_TEST_FIXTURE_HASH` for configuring hash kind in `gix-worktree-stream`
Full changelog

New Features (BREAKING)

  • use GIX_TEST_FIXTURE_HASH for gix-worktree-stream
    This is breaking because Stream::add_entry_from_path's API has
    changed. It now takes hash_kind as an argument.

Commit Statistics

  • 20 commits contributed to the release over the course of 28 calendar days.
  • 28 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Merge pull request #2589 from GitoxideLabs/fix-status-in-unborn-repo (ba7d9a4)
    • Stabilize filter-driver example use in parallel tests to remove flake (db16a05)
    • Merge pull request #2573 from cruessler/run-gix-traverse-tests-with-sha-256 (278d7ec)
    • Address auto-review (0ec3bb7)
    • Cleanup sha1 feature in gix to just set what's needed. (16a6fc4)
    • Merge pull request #2575 from SarthakB11/fix/issue-2316 (4743361)
    • Review (1980190)
    • Document why each fixture archive is .gitignored (e3d5a04)
    • Merge pull request #2568 from GitoxideLabs/dependabot/cargo/cargo-56d6b174d8 (ab2fee1)
    • Update crates to Rust 2024 edition (2cb17b2)
    • Remove rust_2018_idioms lint declarations (e10d5f6)
    • Raise MSRV for hash dependency updates (3675a8d)
    • Merge pull request #2559 from GitoxideLabs/fix/symlink-prefix-reuse-worktree-escape-ghsa-f89h-2fjh-2r9q (3af9b4a)
    • Release gix-fs v0.21.1 (d3e4c17)
    • Merge pull request #2543 from cruessler/run-gix-worktree-stream-tests-with-sha-256 (23af41a)
    • Adapt to changes in gix-testtoolsand rename hash_kind -> object_hash (d9648e8)
    • Review (71e1de9)
    • Add unwrap_or_default (183823e)
    • Use GIX_TEST_FIXTURE_HASH for gix-worktree-stream (f223e63)
    • Merge pull request #2546 from GitoxideLabs/fix-2545 (adb8328)
No immediate action
gix-traverse-v0.58.0 Maintenance

SHA‑256 forwarding + Rust 2024 + MSRV

No immediate action
gix-revwalk-v0.32.0 Maintenance

Rust 2024, MSRV raise, object‑hash rename

No immediate action
gix-commitgraph-v0.37.1 Breaking risk

Rust 2024 edition update + MSRV raise

No immediate action
gix-chunk-v0.7.2 Breaking risk

Rust 2024 edition bump

No immediate action
gix-fs-v0.21.2 Breaking risk

MSRV raise + symlink fix

No immediate action
gix-filter-v0.31.0 Maintenance

gix-traverse, SHA forwardings, Rust 2024, hash-kind rename

No immediate action
gix-packetline-v0.21.4 Breaking risk

Rust 2024 edition bump

No immediate action
gix-command-v0.9.1 Bug fix

Bug fixes + stats + integrations

No immediate action
gix-attributes-v0.33.1 Breaking risk

MSRV raise + Rust 2024 + fuzz resilience

No immediate action
gix-quote-v0.7.2 Breaking risk

Rust 2024 edition bump

No immediate action
gix-glob-v0.26.1 Bug fix

Abort signal preservation + stats + benchmarks

gix-object-v0.61.0 Breaking risk
⚠ Upgrade required
  • MSRV raised for hash dependency updates; ensure runtime meets new minimum version.
  • Remove `rust_2018_idioms` lint declarations in dependent code.
Breaking changes
  • Rename `Data::hash_kind` to `Data::object_hash`
Notable features
  • `sha1` and `sha256` forwardings added for all crates
  • Update crates to Rust 2024 edition
Full changelog

Bug Fixes (BREAKING)

  • rename Data::hash_kind to Data::object_hash for consistency
    The new name is now used everywhere and more descriptive and clear.

Commit Statistics

  • 12 commits contributed to the release over the course of 28 calendar days.
  • 28 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Merge pull request #2573 from cruessler/run-gix-traverse-tests-with-sha-256 (278d7ec)
    • sha1 and sha256 forwardings for all crates (09b982c)
    • Review (1cd36be)
    • Merge pull request #2568 from GitoxideLabs/dependabot/cargo/cargo-56d6b174d8 (ab2fee1)
    • Update crates to Rust 2024 edition (2cb17b2)
    • Remove rust_2018_idioms lint declarations (e10d5f6)
    • Raise MSRV for hash dependency updates (3675a8d)
    • Merge pull request #2543 from cruessler/run-gix-worktree-stream-tests-with-sha-256 (23af41a)
    • Address auto-review (b358d31)
    • Rename Data::hash_kind to Data::object_hash for consistency (7aff98b)
    • Adapt to changes in gix-testtoolsand rename hash_kind -> object_hash (d9648e8)
    • Merge pull request #2546 from GitoxideLabs/fix-2545 (adb8328)
No immediate action
gix-hashtable-v0.15.1 Breaking risk

MSRV raise + Rust 2024 + SHA forwardings

No immediate action
gix-hash-v0.25.1 Breaking risk

Rust 2024 edition bump

No immediate action
gix-features-v0.48.1 Breaking risk

MSRV raise, Rust 2024, lint removal

No immediate action
gix-utils-v0.3.3 Breaking risk

Rust 2024 edition bump

No immediate action
gix-path-v0.12.1 Maintenance

Rust 2024 edition update

No immediate action
gix-validate-v0.11.2 Breaking risk

MSRV raise + Rust 2024 edition

No immediate action
gix-trace-v0.1.20 Breaking risk

Rust 2024 edition bump

No immediate action
gix-actor-v0.41.1 Breaking risk

Rust 2024 edition bump

No immediate action
gix-date-v0.15.4 Mixed

Refactor + Rust 2024 + MSRV raise

No immediate action
gix-error-v0.2.4 Maintenance

Routine maintenance and dependency updates.

Upgrade now
gix-fs-v0.21.1 Security relevant
RCE / SSRF

Security fix + stats

Upgrade now
v0.53.0 Breaking
Breaking upgrade

Fixes broken gix v0.82

No immediate action
gix-fsck-v0.21.0 Maintenance

Routine maintenance and dependency updates.

gix-v0.83.0 Breaking risk
Breaking changes
  • Removed `winnow` crate and all related parser combinators, replacing them with hand‑implemented parsers; detailed error messages from previous winnow parsers are also removed.
Full changelog

Bug Fixes

  • Correctly use $COMMON_DIR/info/exclude to make excludes work in worktrees.
    It turns out there is no per-worktree excludes file either.

Chore (BREAKING)

  • Upgrade prodash and crosstermion to the latest version.
    This will fix the cargo deny issue as it brings in a newer lru crate.

Bug Fixes (BREAKING)

  • remove winnow and replace it with hand-implemented parsers everywhere.
    This will allow for simplified maintenance and editing (both human and machine)
    down the road, and enable additional performance optimisations.

    Parser compbinators to me ultimately were a failed experiment as I couldn't maintain
    them anyway, with it being too difficult for me to grasp and express everything
    in its very own kind of language, with a lot of different things to consider.

    Note that this also removes detailed errors from all parsers that previously
    used winnow, with the option to re-add those if there is demand.

Commit Statistics

  • 5 commits contributed to the release over the course of 2 calendar days.
  • 3 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Adapt to changes in gix-object (91bfab0)
    • Remove winnow and replace it with hand-implemented parsers everywhere. (91c854e)
    • Merge pull request #2540 from GitoxideLabs/reporting (4d5ba23)
    • Merge pull request #2529 from GitoxideLabs/reflog-newline-handling (2c3a08e)
    • Adapt to changes in gix-error (2e2a126)
No immediate action
gix-worktree-state-v0.30.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-submodule-v0.30.0 Maintenance

Merge PR #2540

No immediate action
gix-status-v0.30.0 Maintenance

Reporting update

gix-protocol-v0.61.0 Breaking risk
Breaking changes
  • Removed `winnow` parser combinator library and all its usages, replaced with hand‑implemented parsers; detailed error reporting from those parsers is no longer provided.
Full changelog

Bug Fixes (BREAKING)

  • remove winnow and replace it with hand-implemented parsers everywhere.
    This will allow for simplified maintenance and editing (both human and machine)
    down the road, and enable additional performance optimisations.

    Parser compbinators to me ultimately were a failed experiment as I couldn't maintain
    them anyway, with it being too difficult for me to grasp and express everything
    in its very own kind of language, with a lot of different things to consider.

    Note that this also removes detailed errors from all parsers that previously
    used winnow, with the option to re-add those if there is demand.

Commit Statistics

  • 2 commits contributed to the release over the course of 2 calendar days.
  • 3 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Remove winnow and replace it with hand-implemented parsers everywhere. (91c854e)
    • Merge pull request #2540 from GitoxideLabs/reporting (4d5ba23)
No immediate action
gix-transport-v0.57.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-shallow-v0.12.0 Maintenance

Reporting update

No immediate action
gix-refspec-v0.41.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-odb-v0.80.0 Bug fix

CI connectivity fix

No immediate action
gix-pack-v0.70.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-negotiate-v0.31.0 Maintenance

Reporting update

No immediate action
gix-merge-v0.16.0 Maintenance

Reporting update

No immediate action
gix-revision-v0.45.0 Maintenance

Routine maintenance and dependency updates.

gix-mailmap-v0.33.0 Breaking risk
⚠ Upgrade required
  • Detailed error messages previously provided by winnow parsers are no longer available; consider re‑adding them if needed.
  • Update build configurations and codebases to replace any `winnow` imports with the new hand‑implemented parser equivalents.
Breaking changes
  • Removed `winnow` parser library; all parsers now use hand‑implemented implementations, eliminating detailed error reporting from previous winnow parsers.
Full changelog

Bug Fixes (BREAKING)

  • remove winnow and replace it with hand-implemented parsers everywhere.
    This will allow for simplified maintenance and editing (both human and machine)
    down the road, and enable additional performance optimisations.

    Parser compbinators to me ultimately were a failed experiment as I couldn't maintain
    them anyway, with it being too difficult for me to grasp and express everything
    in its very own kind of language, with a lot of different things to consider.

    Note that this also removes detailed errors from all parsers that previously
    used winnow, with the option to re-add those if there is demand.

Commit Statistics

  • 2 commits contributed to the release over the course of 2 calendar days.
  • 3 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Remove winnow and replace it with hand-implemented parsers everywhere. (91c854e)
    • Merge pull request #2540 from GitoxideLabs/reporting (4d5ba23)
Review required
gix-url-v0.36.0 Bug fix
Auth

HTTP URL parsing fixes + stats

No immediate action
gix-prompt-v0.15.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-sec-v0.14.0 Maintenance

Routine maintenance and dependency updates.

Review required
gix-ref-v0.63.0 Breaking risk
Breaking upgrade Dependencies

Remote tracking, SHA-256 refs, hash kind limit, parser removal

No immediate action
gix-imara-diff-v0.2.1 Breaking risk

Myers bugfix + imara-diff-v2 breakage

No immediate action
gix-worktree-v0.52.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-ignore-v0.21.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-pathspec-v0.18.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-index-v0.51.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-lock-v23.0.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-tempfile-v23.0.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-worktree-stream-v0.32.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-traverse-v0.57.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-revwalk-v0.31.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-fs-v0.21.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-filter-v0.30.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-glob-v0.26.0 Maintenance

Routine maintenance and dependency updates.

gix-object-v0.60.0 Breaking risk
⚠ Upgrade required
  • If your code relied on detailed parsing errors from the former winnow-based parsers, you will need to implement alternative error handling or request re‑addition of those details.
  • Ensure any usage of Commit/Tag parsing supplies a `gix_hash::Kind` matching the expected hash length; otherwise parsing may fail.
Breaking changes
  • Limit Commit and Tag parsing to a given `gix_hash::Kind`, simplifying the parser but altering behavior for unsupported hash kinds.
  • Remove `winnow` crate entirely, replacing all parsers with hand-implemented versions; detailed error messages previously provided by winnow are no longer emitted.
Full changelog

Bug Fixes (BREAKING)

  • Limit Commit and Tag parsing to a given gix_hash::Kind
    Doing so adds conformity with Git, but also simplifies the parser
    which now only parse hex-hashes of a single valid length.

  • remove winnow and replace it with hand-implemented parsers everywhere.
    This will allow for simplified maintenance and editing (both human and machine)
    down the road, and enable additional performance optimisations.

    Parser compbinators to me ultimately were a failed experiment as I couldn't maintain
    them anyway, with it being too difficult for me to grasp and express everything
    in its very own kind of language, with a lot of different things to consider.

    Note that this also removes detailed errors from all parsers that previously
    used winnow, with the option to re-add those if there is demand.

Commit Statistics

  • 4 commits contributed to the release over the course of 2 calendar days.
  • 3 days passed between releases.
  • 2 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Adapt to changes in gix-object (91bfab0)
    • Limit Commit and Tag parsing to a given gix_hash::Kind (d4439cd)
    • Remove winnow and replace it with hand-implemented parsers everywhere. (91c854e)
    • Merge pull request #2540 from GitoxideLabs/reporting (4d5ba23)
No immediate action
gix-hashtable-v0.15.0 Maintenance

Routine maintenance and dependency updates.

No immediate action
gix-hash-v0.25.0 Maintenance

Routine maintenance and dependency updates.

gix-features-v0.48.0 Breaking risk
Breaking changes
  • Upgrade `prodash` and `crosstermion` to latest versions (breaks compatibility with previous crate versions).
Full changelog

Chore (BREAKING)

  • Upgrade prodash and crosstermion to the latest version.
    This will fix the cargo deny issue as it brings in a newer lru crate.

Commit Statistics

  • 1 commit contributed to the release over the course of 2 calendar days.
  • 3 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Merge pull request #2540 from GitoxideLabs/reporting (4d5ba23)
gix-path-v0.12.0 Breaking risk
⚠ Upgrade required
  • If detailed error messages from parsers are required, implement custom handling as the built‑in winnow errors were removed.
Breaking changes
  • Removed `winnow` parser combinator library and replaced all parsers with hand‑implemented equivalents; detailed error reporting from winnow parsers is no longer available.
Full changelog

Bug Fixes (BREAKING)

  • remove winnow and replace it with hand-implemented parsers everywhere.
    This will allow for simplified maintenance and editing (both human and machine)
    down the road, and enable additional performance optimisations.

    Parser compbinators to me ultimately were a failed experiment as I couldn't maintain
    them anyway, with it being too difficult for me to grasp and express everything
    in its very own kind of language, with a lot of different things to consider.

    Note that this also removes detailed errors from all parsers that previously
    used winnow, with the option to re-add those if there is demand.

Commit Statistics

  • 2 commits contributed to the release over the course of 2 calendar days.
  • 3 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Remove winnow and replace it with hand-implemented parsers everywhere. (91c854e)
    • Merge pull request #2540 from GitoxideLabs/reporting (4d5ba23)

Beta — feedback welcome: [email protected]