Skip to content

Releases: GitoxideLabs/gitoxide

gix-ref v0.30.0

06 Jun 15:50
9a9fa96
Compare
Choose a tag to compare

A maintenance release without user-facing changes.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Prepare changelogs prior to release (8f15cec)
    • Merge pull request #878 from blinxen/main (67da689)
    • Include missing changelog file in some crates (0269eed)
    • Merge branch 'fix-docs' (420553a)
    • Minor fixes (89a8cfe)
    • Cleaning up documentation (2578e57)
    • Merge branch 'auto-clippy' (dbf8aa1)
    • Autofix map-or-unwrap clippy lint (and manual fix what was left) (2087032)
    • Merge branch 'main' into auto-clippy (3ef5c90)
    • Auto-fix clippy to remove explicit iter looping (3eff567)
    • Merge branch 'blinxen/main' (9375cd7)
    • Include custom clippy settings (b057500)
    • Include license files in all crates (facaaf6)
    • Release gix-object v0.29.2 (4f879bf)

gix-quote v0.4.4

06 Jun 15:50
9a9fa96
Compare
Choose a tag to compare

A maintenance release without user-facing changes.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Prepare changelogs prior to release (8f15cec)
    • Merge branch 'fix-docs' (420553a)
    • Cleaning up documentation (2578e57)
    • Merge branch 'main' into auto-clippy (3ef5c90)
    • Merge branch 'blinxen/main' (9375cd7)
    • Include license files in all crates (facaaf6)

gix-protocol v0.33.0

06 Jun 15:51
9a9fa96
Compare
Choose a tag to compare

New Features

  • Add fetch::Arguments::is_stateless() to aid proper use of arguments.
    When arguments are used, haves are reset every round in stateless protocols, while
    everything else is repeated. However, this also means that previously confirmed common
    commits aren't repeated unless this is specifically implemented by the user of Arguments.

    That caller can now easily determine if negotiations have to be compensated for.

    Please note that Arguments explicitly doesn't implement repeating of all prior arguments, which
    would also repeat a lot of in-vain haves.

Bug Fixes

  • include-tag is now properly handled in V1 fetch arguments
    Previously it would be added like it's V2 arguments, which makes using it
    in V1 impossible.

Bug Fixes (BREAKING)

  • make V1 stateless negotations work.
    This is done by working around another V1 negotiation oddity
    by exploiting client-side knowledge. For very old servers, we probably
    wouldn't be able to do multi-rounds without dead-locking, but with
    recent-enough (probably 10 years or so) old git servers all should
    work fine.

    All this to not actually have to implement the V1 strangeness, allowing
    our code to work smoothly with all permutations of stateless/stateful connections
    and V1/V2 interactions, with a single high-level implementation essentially.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Prepare changelogs prior to release (8f15cec)
    • Merge branch 'integrate-gix-negotiate' (ae845de)
    • Make V1 stateless negotations work. (6a3c021)
    • include-tag is now properly handled in V1 fetch arguments (c5dc7b4)
    • Add fetch::Arguments::is_stateless() to aid proper use of arguments. (877aa29)
    • Adapt to changes in gix-transport (60eaceb)
    • Merge branch 'fix-docs' (420553a)
    • Cleaning up documentation (2578e57)
    • Apply -W clippy::cloned-instead-of-copied (150463c)
    • Merge branch 'main' into auto-clippy (3ef5c90)
    • Merge branch 'blinxen/main' (9375cd7)
    • Include license files in all crates (facaaf6)

gix-prompt v0.5.1

06 Jun 15:50
9a9fa96
Compare
Choose a tag to compare

A maintenance release without user-facing changes.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Prepare changelogs prior to release (8f15cec)
    • Merge branch 'fix-docs' (420553a)
    • Cleaning up documentation (2578e57)
    • Merge branch 'main' into auto-clippy (3ef5c90)
    • Merge branch 'blinxen/main' (9375cd7)
    • Include license files in all crates (facaaf6)

gix-path v0.8.1

06 Jun 15:50
9a9fa96
Compare
Choose a tag to compare

A maintenance release without user-facing changes.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Prepare changelogs prior to release (8f15cec)
    • Merge branch 'auto-clippy' (dbf8aa1)
    • Merge branch 'main' into auto-clippy (3ef5c90)
    • Merge branch 'blinxen/main' (9375cd7)
    • Include custom clippy settings (b057500)
    • Include license files in all crates (facaaf6)

gix-packetline v0.16.2

06 Jun 15:51
9a9fa96
Compare
Choose a tag to compare

A maintenance release without user-facing changes.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Prepare changelogs prior to release (8f15cec)
    • Merge branch 'fix-docs' (420553a)
    • Cleaning up documentation (2578e57)
    • Apply -W clippy::cloned-instead-of-copied (150463c)
    • Merge branch 'auto-clippy' (dbf8aa1)
    • Autofix map-or-unwrap clippy lint (and manual fix what was left) (2087032)

gix-pack v0.36.0

06 Jun 15:51
9a9fa96
Compare
Choose a tag to compare

New Features

  • improve performance by reducing the trashing of zlib::Inflate.
    Previously, for every zlib inflate operation, we would allocate memory
    due to the creation of a decompressor.

    This is now avoided by reusing thread-local copies of such a decompressor,
    which is reused and reset instead.

  • improve performance by avoiding zeroying buffers.
    Previously we would use resize(new_len, 0) to resize buffers, even though
    these values would then be overwritten (or the buffer isn't available).

    Now we use set_len(new_len) after calling reserve to do the same, but safe
    a memset.

Bug Fixes

  • static linked list delta cache with memory cap
    Previously, the 64 slot big LRU cache for pack deltas didn't
    use any memory limit which could lead to memory exhaustion in the
    face of untypical, large objects.

    Now we add a generous default limit to do better in such situations.
    It's worth noting though that that even without any cache, the working
    set of buffers to do delta resolution takes considerable memory, despite
    trying to keep it minimal.

    Note that for bigger objects, the cache is now not used at all, which probably
    leads to terrible performance as not even the base object can be cached.

  • check for interrupt more often
    Previously when traversing a pack it could appear to hang as checks
    were only performed on chunk or base (of a delta-tree) level.

    Now interrupt checks are performed more often to stop all work much quicker.

  • memory capped hashmap as pack delta cache won't trash memory as much.
    Previously it would take a buffer from the free-list, copy data into it, and
    when exceeding the capacity loose it entirely.
    Now the freelist is handled correctly.

New Features (BREAKING)

  • index-backed tree traversal with a form of work-stealing.
    When delta-trees are unbalanced, in pathological cases it's possible that that one thread
    ends up with more than half of the work. In this case it's required that it manages to
    spawn its own threads to parallelize the work it has.

  • make current thread-count accessible in slice-workers.
    Threads started for working on an entry in a slice can now see the amount
    of threads left for use (and manipulate that variable) which effectively
    allows them to implement their own parallelization on top of the current one.

    This is useful if there is there is very imbalanced work within the slice itself.

    While at it, we also make consumer functions mutable as they exsit per thread.

Commit Statistics

  • 28 commits contributed to the release over the course of 25 calendar days.
  • 40 days passed between releases.
  • 7 commits were understood as conventional.
  • 1 unique issue was worked on: #851

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

view details
  • #851
    • Fix performance regression in pack traversal (de1f6c2)
    • Index-backed tree traversal with a form of work-stealing. (d22dd8f)
    • Improve performance by avoiding zeroying buffers. (14e7ea0)
    • Make current thread-count accessible in slice-workers. (0fa04bc)
    • Try to get improved hitrate for delta-cache by using it more, and fail (969cc77)
    • Static linked list delta cache with memory cap (977e135)
    • Check for interrupt more often (f89cbc6)
    • Memory capped hashmap as pack delta cache won't trash memory as much. (923692b)
  • Uncategorized
    • just fmt (ffc1276)
    • Prepare changelogs prior to release (8f15cec)
    • Merge branch 'integrate-gix-negotiate' (ae845de)
    • Thanks clippy (9525ac8)
    • Merge branch 'fix-alloc' (d9d9bc0)
    • Improve performance by reducing the trashing of zlib::Inflate. (3a2d528)
    • Merge branch 'fix-docs' (420553a)
    • Minor fixes (89a8cfe)
    • Cleaning up documentation (2578e57)
    • Merge branch 'auto-clippy' (dbf8aa1)
    • Autofix map-or-unwrap clippy lint (and manual fix what was left) (2087032)
    • Merge branch 'main' into auto-clippy (3ef5c90)
    • Auto-fix clippy to remove explicit iter looping (3eff567)
    • Merge branch 'blinxen/main' (9375cd7)
    • Include license files in all crates (facaaf6)
    • Further optimize buffer usage when traversing packs (78d28a7)
    • Fix incorrect naming of progress of traversal threads (996ba6b)
    • Merge branch 'fix-851' (2f275d5)
    • Adjust to changes in gix-features (c48bbe3)
    • Release gix-object v0.29.2 (4f879bf)

gix-odb v0.46.0

06 Jun 15:51
9a9fa96
Compare
Choose a tag to compare

New Features

  • add Store::alternate_db_paths().
    Provides a way to learn about loose database paths that are provided by
    git alternates.
  • implement Clone for Sink.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • Prepare changelogs prior to release (8f15cec)
    • Merge branch 'integrate-gix-negotiate' (ae845de)
    • Add Store::alternate_db_paths(). (8c72a23)
    • Merge branch 'fix-docs' (420553a)
    • Cleaning up documentation (2578e57)
    • Apply -W clippy::cloned-instead-of-copied (150463c)
    • Merge branch 'auto-clippy' (dbf8aa1)
    • Autofix map-or-unwrap clippy lint (and manual fix what was left) (2087032)
    • Merge branch 'main' into auto-clippy (3ef5c90)
    • Auto-fix clippy to remove explicit iter looping (3eff567)
    • Merge branch 'blinxen/main' (9375cd7)
    • Include custom clippy settings (b057500)
    • Include license files in all crates (facaaf6)
    • Merge branch 'fix-851' (2f275d5)
    • Implement Clone for Sink. (3db18c4)
    • Release gix-object v0.29.2 (4f879bf)

gix-object v0.30.0

06 Jun 15:50
9a9fa96
Compare
Choose a tag to compare

A maintenance release without user-facing changes.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • just fmt (ffc1276)
    • Prepare changelogs prior to release (8f15cec)
    • Merge pull request #878 from blinxen/main (67da689)
    • Include missing changelog file in some crates (0269eed)
    • Merge branch 'fix-docs' (420553a)
    • Minor fixes (89a8cfe)
    • Cleaning up documentation (2578e57)
    • Merge branch 'auto-clippy' (dbf8aa1)
    • Auto-fix as many 'range-plus-one' lints as possible (4795fcf)
    • Autofix map-or-unwrap clippy lint (and manual fix what was left) (2087032)
    • Merge branch 'main' into auto-clippy (3ef5c90)
    • Merge branch 'blinxen/main' (9375cd7)
    • Include custom clippy settings (b057500)
    • Include license files in all crates (facaaf6)

gix-negotiate v0.2.0

06 Jun 15:51
9a9fa96
Compare
Choose a tag to compare

New Features

  • allow graph sharing by unifying Flags type.
    This makes the graph used in gix-negotiate shareable by callers, which can
    do their own traversal and store their own flags. The knowlege of this traversal
    can be kept using such shared flags, like the PARSED bit which should be set whenever
    parents are traversed.

    That way we are able to emulate the algorithms git uses perfectly, as we keep exactly the
    same state.

  • implement skipping negotiation algorithm

  • implement consecutive algorithm.
    This is the default negotiation algorithm.

  • introduce the noop negotiator to establish a basic trait for negotiators.

Other

  • try to change test-suite from --negotiate-only to the more realistic fetch with --dry-run.
    This means we will have to reproduce what git does naturally, to fill in common refs
    and also provide tips.

    Unfortunately this doesn't work as it's apparently not really dry-running, but modifying
    the repository underneath. This means it's not idempotent when running it multiple times.

Commit Statistics

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

Commit Details

view details
  • Uncategorized
    • just fmt (ffc1276)
    • Prepare changelogs prior to release (8f15cec)
    • Merge branch 'integrate-gix-negotiate' (ae845de)
    • Allow graph sharing by unifying Flags type. (1bd93be)
    • Merge branch 'main' into auto-clippy (3ef5c90)
    • Merge branch 'blinxen/main' (9375cd7)
    • Include license files in all crates (facaaf6)
    • Merge branch 'consecutive-negotiation' (97b3f7e)
    • Try to change test-suite from --negotiate-only to the more realistic fetch with --dry-run. (1571528)
    • Add a test to also validate interaction with known_common/remote refs (5bdd071)
    • Figure out what's wrong with 'skipping' and fix it (1b19ab1)
    • Attempt to figure out what 'consecutive' needs to pass the tests (1809a99)
    • Implement skipping negotiation algorithm (4aad40d)
    • Implement consecutive algorithm. (01aba9e)
    • A baseline test for the noop negotiator (5cd7748)
    • Introduce the noop negotiator to establish a basic trait for negotiators. (1f6e6d8)