github GitoxideLabs/gitoxide gix-error-v0.5.2
gix-error v0.5.2

6 hours ago

Bug Fixes

  • distinguish aggregate causes from genuine error chains

    ein t organise could report seven independent Directory not empty
    failures exactly like a seven-step causal chain. All seven also pointed
    at the aggregation site in organize.rs, hiding where they originated.
    The errors and their original locations were still stored; the report
    lost their relationships while traversing nested Error boundaries.

    Show hierarchy guides at root forks as well as nested forks. Traverse
    nested boundaries through their logical children, reusing the graph
    already used for cause selection, rather than treating their entire
    breadth-first diagnostic list as a single chain. Pair each displayed
    root diagnostic with its original caller location. Genuine single-child
    paths retain their compact numbered layout.

    When auto-chain-error flattens an aggregate, label its report
    Caused by (flattened):. Genuine chains keep Caused by: even with that
    feature enabled. This keeps the source() representation and traversal
    semantics intact while making the loss of hierarchy visible.

    For example, the same three failures now differ visibly:

    Failed to handle 3 repositories
    
    Caused by:
        ├─0: Directory not empty, repository="a"
        ├─1: Directory not empty, repository="b"
        └─2: Directory not empty, repository="c"
    
    Failed to handle 3 repositories
    
    Caused by (flattened):
        0: Directory not empty, repository="a"
        1: Directory not empty, repository="b"
        2: Directory not empty, repository="c"
    

    A genuine chain describes successive causes instead:

    Organizing failed
    
    Caused by:
        0: Failed to handle repository, repository="a"
        1: Failed to rename repository
        2: Directory not empty
    

    organise now retains a per-repository context with repository path
    metadata, so the final aggregate identifies every failed repository even
    when progress output is unavailable. Keep classifications and original
    I/O causes beneath that context. A disposable three-repository fixture
    checks that occupied destinations preserve both source and destination
    contents while retaining all three failures.

    Document the three layouts, add regression checks for aggregate/chain
    distinctions and original locations, and update affected snapshots in
    gix-error, revision parsing, and organization tests.

    Reduce singleton noise below the root causes: print └─ Cause instead
    of └─0: Cause when that displayed level contains only one cause. Keep
    root causes, sibling groups, and multi-cause chains numbered. A mixed
    three-repository example checks a lone cause, a lone context leading to
    a nested fork, and a two-cause chain; the existing long-chain test keeps
    coverage of indices through 10.

Commit Statistics

  • 3 commits contributed to the release over the course of 11 calendar days.
  • 11 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 #3064 from GitoxideLabs/various-improvements (8c513c5)
    • Distinguish aggregate causes from genuine error chains (d051555)
    • Merge pull request #3053 from GitoxideLabs/various-improvements (2d8dcc4)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.