Skip to content

fix(deps): update rust crate gix-diff to 0.68 - #1203

Open
ferrlabs-renovate[bot] wants to merge 1 commit into
mainfrom
renovate/gix-diff-0.x
Open

ferrlabs-renovate[bot] wants to merge 1 commit into
mainfrom
renovate/gix-diff-0.x

Conversation

@ferrlabs-renovate

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
gix-diff dependencies minor 0.67 → 0.68

Release Notes

GitoxideLabs/gitoxide (gix-diff)

v0.68.0: gix-diff v0.68.0

Compare Source

Bug Fixes
  • skip null-ID lookups in worktree filters

    core.autocrlf=input or text=auto can make worktree diff filtering look
    up a null resource ID to inspect indexed line endings. These guaranteed
    misses can trigger repeated pack-directory refreshes until
    #​2853 is merged.

    Treat null IDs as a missing index object before consulting the database.
    Clarify the worktree resource contract and add a regression test covering
    both Git conversion modes and preservation of indexed CRLF content for
    real IDs.

Changed (BREAKING)
  • migrate errors to gix-error

    rubberstamp

  • 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.

Commit Statistics
  • 13 commits contributed to the release over the course of 31 calendar days.
  • 32 days passed between releases.
  • 3 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
  • Uncategorized
    • Merge pull request #​2847 from GitoxideLabs/gix-error-completion (6356013)
    • Migrate errors to gix-error (61ec953)
    • Merge pull request #​2972 from cruessler/inspect-single-slider-mismatch-case (e731790)
    • Review (8d26af7)
    • Add single case inspection to slider report (5596b16)
    • Merge pull request #​2971 from GitoxideLabs/diff-nullid-fix (d7551f1)
    • Skip null-ID lookups in worktree filters (f37685e)
    • Merge pull request #​2949 from GitoxideLabs/error-conversion-review (a095334)
    • Raise MSRV to Rust 1.88 (4b42e0c)
    • Merge pull request #​2955 from GitoxideLabs/transport-url-encoding (7e35849)
    • Release gix-path v0.12.6, gix-error v0.3.2, gix-command v0.10.1, gix-transport v0.59.2 (888677a)
    • Merge pull request #​2944 from GitoxideLabs/error-conversion-review (e3a6fa1)
    • Merge pull request #​2940 from GitoxideLabs/vendor-bisync (dda600d)

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

@ferrfleet ferrfleet Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One blocking finding on the version skew this bump introduces between gix and gix-diff. Details inline on Cargo.toml.

Comment thread Cargo.toml
gix-traverse = { version = "0.61", optional = true }
gix-diff = { version = "0.67", default-features = false, features = ["sha1"], optional = true }
gix-diff = { version = "0.68", default-features = false, features = ["sha1"], optional = true }
ureq = { version = "3", features = ["json"], optional = true }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking: this bump splits the gix graph in two. gix 0.87 pins gix-diff ^0.67.1, gix-object 0.64.1 and gix-hash 0.26.2; gix-diff 0.68 pulls gix-object 0.65.0 and gix-hash 0.27.0. The lockfile in this PR now carries both trees side by side (gix-diff 0.67.1 + gix-diff 0.68.0, gix-object 0.64.1 + 0.65.0, gix-hash 0.26.2 + 0.27.0).

src/git/diff.rs crosses that boundary in a single call:

  • TreeRefIter::from_bytes(...) is gix::objs::TreeRefIter, i.e. gix-object 0.64, but gix_diff::tree() now wants gix-object 0.65's type.
  • &repo.objects satisfies gix-object 0.64's Find, not 0.65's.
  • hash_kind from repo.object_hash() is gix-hash 0.26's Kind.

Those are distinct types to rustc, so I do not expect this to compile. Test and Build Release Binary were still in progress when I looked, so CI has not confirmed it yet, and automerge is enabled here: the required checks are the only thing holding it.

The fix is not confined to this line, which is why there is no suggestion block. I would drop the direct gix-diff dependency and go through gix's own re-export: gix::diff is ungated in 0.87 and exposes everything src/git/diff.rs uses (gix::diff::tree, gix::diff::tree::Recorder, gix::diff::tree::recorder::Change). That makes this kind of skew structurally impossible and leaves one crate for Renovate to bump instead of two that have to move in lockstep. The alternative is to keep the direct dependency pinned at 0.67 until gix 0.88 moves to gix-object 0.65, and add a Renovate group so the two are always bumped together, but that only defers the same failure to the next release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants