github GitoxideLabs/gitoxide gix-config-v0.38.0
gix-config v0.38.0

3 months ago

Bug Fixes

  • prevent newline amplification
    A fuzzer found input sized 780kb, but the output becomes
    180MB in size, ultimately taking 48s to parse on M1 Pro.

    Note that the parsing itself is fast, but we seem to modify
    the input in such a way that parsing takes way longer than it
    should. That might be another issue which it will probably find
    next, let's wait for it.

  • File::from_globals() now also provides options of the Git installation.
    That way, it's usable for learning everything about credentials for example.

New Features (BREAKING)

  • gix-config convenience initiative
    A new gix_config::AsKey trait allows all gix_config::File methods
    to receive an implementation of AsKey instead of the tuple of
    (section, subsection, value_name). This is the default, and all
    methods that take a tuple have been renamed to <name>_by(), note the _by suffix.

    The terminology was reworked so that key is now only used to identify a value.

    This change also affects the public API of gix, which provides
    ways to set values on configuration snapshots which now by default
    will only take a AsKey implementation.

    Note that gix::config::tree::* keys now also implement AsKey,
    which allows them to be used more conveniently when setting values,
    too.

Commit Statistics

  • 25 commits contributed to the release over the course of 57 calendar days.
  • 62 days passed between releases.
  • 3 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
    • Release gix-glob v0.16.4, gix-attributes v0.22.3, gix-command v0.3.8, gix-filter v0.11.3, gix-fs v0.11.2, gix-commitgraph v0.24.3, gix-revwalk v0.13.2, gix-traverse v0.39.2, gix-worktree-stream v0.13.1, gix-archive v0.13.2, gix-config-value v0.14.7, gix-tempfile v14.0.1, gix-ref v0.45.0, gix-sec v0.10.7, gix-config v0.38.0, gix-prompt v0.8.6, gix-url v0.27.4, gix-credentials v0.24.3, gix-ignore v0.11.3, gix-index v0.33.1, gix-worktree v0.34.1, gix-diff v0.44.1, gix-discover v0.33.0, gix-pathspec v0.7.6, gix-dir v0.6.0, gix-mailmap v0.23.5, gix-negotiate v0.13.2, gix-pack v0.51.1, gix-odb v0.61.1, gix-transport v0.42.2, gix-protocol v0.45.2, gix-revision v0.27.2, gix-refspec v0.23.1, gix-status v0.11.0, gix-submodule v0.12.0, gix-worktree-state v0.11.1, gix v0.64.0, gix-fsck v0.4.1, gitoxide-core v0.39.0, gitoxide v0.37.0 (a1b73a6)
    • Update manifests (by cargo-smart-release) (0470df3)
    • Prepare changelog prior to release (99c00cc)
    • Release gix-path v0.10.9 (15f1cf7)
    • Be more generous with mem::usage() expected peak (7dd58b8)
    • Merge branch 'config-fuzz' (ed66357)
    • Prevent newline amplification (0dc2a0c)
    • Reproduce a fuzz issue causing the config parsing to take too long (6c0364a)
    • Merge branch 'config-globals' (929744a)
    • File::from_globals() now also provides options of the Git installation. (a9a3545)
    • Release gix-path v0.10.8 (8d89b86)
    • Merge branch 'tar-only' (1dfa90d)
    • Remove binary files in favor of tar files (dcab79a)
    • Merge branch 'config-key' (5663a2c)
    • gix-config convenience initiative (0ec2389)
    • Addditional fixes on top of the merge commit (dbe1f22)
    • Merge branch 'main' into config-key-take-2 (9fa1054)
    • Merge branch 'status' (2f9f0ac)
    • Thanks clippy (acc1331)
    • Merge pull request #1361 from EliahKagan/freebsd (9c65d98)
    • Regenerate archives for changed scripts (ea12fc2)
    • Make bash script shebangs more portable (68cbea8)
    • Release gix-fs v0.11.1, gix-glob v0.16.3 (2cefe77)
    • Merge pull request #1385 from Byron/fix-gix-ref (8da55a3)
    • Release gix-ref v0.44.1 (2d0a352)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.