github GitoxideLabs/gitoxide v0.60.0

3 hours ago

Headline benefits of this extra-curricular release are various security improvements,
and greatly improved error handling and consisstency. Plumbing crates for instance will now
use a standard std::error::Error compatible error type.

Besides that, the tracing of all commands was greatly improved.

Changed (BREAKING)

  • remove full-screen progress mode

    Full-screen progress required separate command and UI threads plus channel
    coordination, while line progress already covers long-running commands and works
    with independently buffered tracing.

    Remove --progress, --progress-keep-open, and the prodash-render-tui feature. Keep synchronous line progress as the only progress UI.

New Features

  • make trace output independently configurable

    Quick review only, as it's mostly about tracing and gix which both aren't super
    important, and are seemingly working well. An extra agent-review couldn't
    find anything either.

    Replace the old boolean trace switch with a bounded -t/--trace counter:
    forest INFO and DEBUG at one or two occurrences, then flat DEBUG and TRACE at
    three or four. Keep --threads long-only and route tracing independently of
    verbose and progress rendering, including commands with bespoke execution paths
    and corpus runs.

    Initialize display tracing once before repository discovery, buffer it outside
    prodash, and emit it after command and progress teardown. Format forest and
    flat output with ANSI, then adapt the final stderr write so terminals get color
    while pipes and NO_COLOR remain plain.

    Corpus worker subscribers share that sink while retaining their complete
    JSON trace storage, and flat modes include completed spans. gix tix remains
    delegated to Tix so it installs only one subscriber.

  • add and remove linked worktrees from the CLI

    rubber-stamp mostly for gitoxide-core changes, did look at it though
    just to be sure.

    Journey test was present but removed.

    The CLI previously exposed only worktree listing, despite gix supporting
    both checkout and safe removal. Add worktree add (alias create) and
    worktree remove using those APIs.

    Creation follows Git's local-branch and detached-revision selection, including
    destination-basename defaults and -b. It retains new branches after setup
    failures, uses the existing listing format on success, and reports incomplete
    checkouts. Removal maps repeated -f flags to dirty-worktree and lock overrides
    while retaining branches.

    Both commands use the existing repository, configuration, and progress options.
    Unsupported JSON output is rejected before mutation.

Commit Statistics

  • 12 commits contributed to the release over the course of 9 calendar days.
  • 13 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 #3032 from GitoxideLabs/sec-audit (1d7bac7)
    • Merge pull request #2938 from GitoxideLabs/tix-improvements (ac6e89f)
    • Address review feedback about gix tix dispatch (5295bfb)
    • Merge pull request #3033 from GitoxideLabs/gix-cli-progress-cleanup (80f4b03)
    • Remove full-screen progress mode (624ddcd)
    • Make trace output independently configurable (bc278ac)
    • Merge pull request #3022 from GitoxideLabs/release-testtools (f819565)
    • Merge pull request #3029 from cruessler/fix-minor-sha-256-issues-in-cli (6c12f2d)
    • Add SHA-256 to AsHashKind (106db87)
    • Don't hardcode hash in gix free index (a8e3143)
    • Merge pull request #3025 from GitoxideLabs/worktree-create (acf906f)
    • Add and remove linked worktrees from the CLI (ca0473a)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.