github GitoxideLabs/gitoxide gix-testtools-v0.19.0
gix-testtools v0.19.0

7 hours ago

New Features

  • greatly improve the index File debug output.
    This allows tests to rely on it more with insta, and not miss a thing.
  • allow fixtures to require checked-in archivesAddscripted_fixture_read_only_needs_archive()` for fixtures whose generated
    output can vary in byte order across platforms or filesystems. The helper
    still validates archive identity, but bypasses GIX_TEST_IGNORE_ARCHIVES and
    re-extracts the checked-in archive so tests can opt into frozen fixture bytes
    when rerunning the producer is non-deterministic,
    for instance due to filesystem order.
  • add git utility to call git easily like git(cwd, "log --oneline")
  • add invoke_bash test helper()
  • Add hash_kind_from_env() to obtain the value of GIX_TEST_FIXTURE_HASH
    This is useful when tests want to inspect the hash under test.
  • use GIX_TEST_FIXTURE_HASH environment variable.
    For now, there is no direct way to set it, but that may change
    once we have tests that need it.
  • Add variants of scripted_fixture_read_only that allow for Rust post modification.
    That way, we can have the benefit of scripts and Rust for final tweaks.
  • add rust_fixture_read_only and rust_fixture_writable functions to gix-testtools

Bug Fixes

  • disable automatic Git maintenance in gix-testtools, add apply_git_config_by_environment utility
    Disable maintenance.auto and gc.auto through command-scope Git config for
    gix-testtools process execution, including fixture scripts, helper-launched Git,
    cargo example builds, git-daemon wrappers, and shell helpers.
  • also override XDG_CONFIG_HOME for test-scripts and commands runs.

New Features (BREAKING)

  • Make gix-testtools independent of gix crates
    This means that a trait implementation has to always be passed
    for what boils down to ignore handling.

    The standalone portion of the API is also removed.

  • add object_hash() function and rename hash_kind_from_env() to object_hash_from_env()
    For consistency and convenience.

Bug Fixes (BREAKING)

  • remove winnow and replace it with hand-implemented parsers everywhere.
    This will allow for simplified maintenance and editing (both human and machine)
    down the road, and enable additional performance optimisations.

    Parser compbinators to me ultimately were a failed experiment as I couldn't maintain
    them anyway, with it being too difficult for me to grasp and express everything
    in its very own kind of language, with a lot of different things to consider.

    Note that this also removes detailed errors from all parsers that previously
    used winnow, with the option to re-add those if there is demand.

  • rename Creation::ExecuteScipt to Creation::Execute
    This is more fitting since the arrival of Rust-based fixtures.

Commit Statistics

  • 70 commits contributed to the release.
  • 14 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Release gix-error v0.2.4, gix-date v0.15.4, gix-actor v0.41.1, gix-trace v0.1.20, gix-validate v0.11.2, gix-path v0.12.1, gix-utils v0.3.3, gix-features v0.48.1, gix-hash v0.25.1, gix-hashtable v0.15.1, gix-object v0.61.0, gix-glob v0.26.1, gix-quote v0.7.2, gix-attributes v0.33.1, gix-command v0.9.1, gix-packetline v0.21.4, gix-filter v0.31.0, gix-fs v0.21.2, gix-chunk v0.7.2, gix-commitgraph v0.37.1, gix-revwalk v0.32.0, gix-traverse v0.58.0, gix-worktree-stream v0.33.0, gix-archive v0.33.0, gix-bitmap v0.3.2, gix-tempfile v23.0.1, gix-lock v23.0.1, gix-index v0.52.0, gix-config-value v0.18.1, gix-pathspec v0.18.1, gix-ignore v0.21.1, gix-worktree v0.53.0, gix-imara-diff v0.2.2, gix-diff v0.64.0, gix-blame v0.14.0, gix-ref v0.64.0, gix-sec v0.14.1, gix-config v0.57.0, gix-prompt v0.15.1, gix-url v0.36.1, gix-credentials v0.38.1, gix-discover v0.52.0, gix-dir v0.26.0, gix-mailmap v0.33.1, gix-revision v0.46.0, gix-merge v0.17.0, gix-negotiate v0.32.0, gix-pack v0.71.0, gix-odb v0.81.0, gix-refspec v0.42.0, gix-shallow v0.12.1, gix-transport v0.57.1, gix-protocol v0.62.0, gix-status v0.31.0, gix-submodule v0.31.0, gix-worktree-state v0.31.0, gix v0.84.0, gix-fsck v0.22.0, gitoxide-core v0.58.0, gitoxide v0.54.0, safety bump 27 crates (10c58bb)
    • Merge pull request #2612 from GitoxideLabs/improvements (4377485)
    • spawn_git_daemon now spawns the git daemon on a free port automatically (123cdaf)
    • Disable automatic Git maintenance in gix-testtools, add apply_git_config_by_environment utility (cad26e9)
    • Merge pull request #2591 from AaronMoat/untracked-extension-reading (85c6087)
    • Greatly improve the index File debug output. (e4bdd1f)
    • Also override XDG_CONFIG_HOME for test-scripts and commands runs. (83ab103)
    • Allow fixtures to require checked-in archives` (36d8498)
    • Merge pull request #2578 from cruessler/run-gix-tests-with-sha-256 (2d4a6f2)
    • Add git utility to call git easily like git(cwd, "log --oneline") (fa02742)
    • Merge pull request #2590 from GitoxideLabs/independent-testtools (575113d)
    • Adapt to changes in gix-testtools (ce9e6bd)
    • Make gix-testtools independent of gix crates (c825352)
    • Merge pull request #2589 from GitoxideLabs/fix-status-in-unborn-repo (ba7d9a4)
    • Stabilize filter-driver example use in parallel tests to remove flake (db16a05)
    • Merge pull request #2573 from cruessler/run-gix-traverse-tests-with-sha-256 (278d7ec)
    • Review (1cd36be)
    • Merge pull request #2568 from GitoxideLabs/dependabot/cargo/cargo-56d6b174d8 (ab2fee1)
    • Update crates to Rust 2024 edition (2cb17b2)
    • Raise MSRV for hash dependency updates (3675a8d)
    • Merge pull request #2559 from GitoxideLabs/fix/symlink-prefix-reuse-worktree-escape-GHSA-f89h-2fjh-2r9q (3af9b4a)
    • Release gix-fs v0.21.1 (d3e4c17)
    • Merge pull request #2543 from cruessler/run-gix-worktree-stream-tests-with-sha-256 (23af41a)
    • Adapt to changes in gix-testtoolsand rename hash_kind -> object_hash (d9648e8)
    • Add object_hash() function and rename hash_kind_from_env() to object_hash_from_env() (85961b5)
    • Merge pull request #2546 from GitoxideLabs/fix-2545 (adb8328)
    • Cargo fmt to fix CI (d1237b7)
    • Release gix-error v0.2.3, gix-date v0.15.3, gix-actor v0.41.0, gix-path v0.12.0, gix-features v0.48.0, gix-hash v0.25.0, gix-hashtable v0.15.0, gix-object v0.60.0, gix-glob v0.26.0, gix-attributes v0.33.0, gix-command v0.9.0, gix-filter v0.30.0, gix-fs v0.21.0, gix-commitgraph v0.37.0, gix-revwalk v0.31.0, gix-traverse v0.57.0, gix-worktree-stream v0.32.0, gix-archive v0.32.0, gix-tempfile v23.0.0, gix-lock v23.0.0, gix-index v0.51.0, gix-config-value v0.18.0, gix-pathspec v0.18.0, gix-ignore v0.21.0, gix-worktree v0.52.0, gix-imara-diff v0.2.1, gix-diff v0.63.0, gix-blame v0.13.0, gix-ref v0.63.0, gix-sec v0.14.0, gix-config v0.56.0, gix-prompt v0.15.0, gix-url v0.36.0, gix-credentials v0.38.0, gix-discover v0.51.0, gix-dir v0.25.0, gix-mailmap v0.33.0, gix-revision v0.45.0, gix-merge v0.16.0, gix-negotiate v0.31.0, gix-pack v0.70.0, gix-odb v0.80.0, gix-refspec v0.41.0, gix-shallow v0.12.0, gix-transport v0.57.0, gix-protocol v0.61.0, gix-status v0.30.0, gix-submodule v0.30.0, gix-worktree-state v0.30.0, gix v0.83.0, gix-fsck v0.21.0, gitoxide-core v0.57.0, gitoxide v0.53.0, safety bump 48 crates (53f880c)
    • Fix CI - and probably prevent can't connect to localhost in journey tests (09687eb)
    • Remove winnow and replace it with hand-implemented parsers everywhere. (91c854e)
    • Merge pull request #2540 from GitoxideLabs/reporting (4d5ba23)
    • Update changelogs prior to release (f9fbcba)
    • Merge pull request #2511 from GitoxideLabs/improvements (1fc129d)
    • Add invoke_bash test helper() (33c0a8b)
    • Merge pull request #2499 from GitoxideLabs/dependabot/cargo/cargo-17cc682121 (44020e0)
    • Bump the cargo group with 26 updates (9d04035)
    • Merge pull request #2496 from GitoxideLabs/improvements (2aedd14)
    • Remove unnecessary message when using fixtures (e68a42a)
    • Merge pull request #2448 from cruessler/add-sha-256-to-gix-refspec (9a78ae2)
    • Add hash_kind_from_env() to obtain the value of GIX_TEST_FIXTURE_HASH (2a5e787)
    • Make hash_kind_from_env public (726e1b9)
    • Merge pull request #2480 from GitoxideLabs/report (98bae84)
    • Release gix-error v0.2.1, gix-date v0.15.1, gix-path v0.11.2, gix-features v0.46.2, gix-hash v0.23.0, gix-hashtable v0.13.0, gix-object v0.58.0, gix-packetline v0.21.2, gix-filter v0.28.0, gix-fs v0.19.2, gix-commitgraph v0.35.0, gix-revwalk v0.29.0, gix-traverse v0.55.0, gix-worktree-stream v0.30.0, gix-archive v0.30.0, gix-tempfile v21.0.2, gix-lock v21.0.2, gix-index v0.49.0, gix-pathspec v0.16.1, gix-ignore v0.19.1, gix-worktree v0.50.0, gix-diff v0.61.0, gix-blame v0.11.0, gix-ref v0.61.0, gix-sec v0.13.2, gix-config v0.54.0, gix-prompt v0.14.1, gix-credentials v0.37.1, gix-discover v0.49.0, gix-dir v0.23.0, gix-revision v0.43.0, gix-merge v0.14.0, gix-negotiate v0.29.0, gix-pack v0.68.0, gix-odb v0.78.0, gix-refspec v0.39.0, gix-shallow v0.10.0, gix-transport v0.55.1, gix-protocol v0.59.0, gix-status v0.28.0, gix-submodule v0.28.0, gix-worktree-state v0.28.0, gix v0.81.0, gix-fsck v0.19.0, gitoxide-core v0.55.0, gitoxide v0.52.0, safety bump 31 crates (c389a2c)
    • Merge pull request #2454 from GitoxideLabs/dependabot/cargo/cargo-da044b9bb0 (6183fd0)
    • Bump the cargo group with 68 updates (6bdb331)
    • Merge pull request #2441 from cruessler/remove-sha-1-from-default-features (e8bf096)
    • Adapt to sha1 not being default feature of gix-hash (e71c703)
    • Merge pull request #2442 from GitoxideLabs/report (f7277f3)
    • Release gix-error v0.2.0, gix-date v0.15.0, gix-actor v0.40.0, gix-object v0.57.0, gix-quote v0.7.0, gix-attributes v0.31.0, gix-command v0.8.0, gix-filter v0.27.0, gix-chunk v0.7.0, gix-commitgraph v0.34.0, gix-revwalk v0.28.0, gix-traverse v0.54.0, gix-worktree-stream v0.29.0, gix-archive v0.29.0, gix-bitmap v0.3.0, gix-index v0.48.0, gix-pathspec v0.16.0, gix-worktree v0.49.0, gix-diff v0.60.0, gix-blame v0.10.0, gix-ref v0.60.0, gix-config v0.53.0, gix-prompt v0.14.0, gix-url v0.35.2, gix-credentials v0.37.0, gix-discover v0.48.0, gix-dir v0.22.0, gix-mailmap v0.32.0, gix-revision v0.42.0, gix-merge v0.13.0, gix-negotiate v0.28.0, gix-pack v0.67.0, gix-odb v0.77.0, gix-refspec v0.38.0, gix-shallow v0.9.0, gix-transport v0.55.0, gix-protocol v0.58.0, gix-status v0.27.0, gix-submodule v0.27.0, gix-worktree-state v0.27.0, gix v0.80.0, gix-fsck v0.18.0, gitoxide-core v0.54.0, gitoxide v0.51.0, safety bump 42 crates (ecf90fc)
    • Merge pull request #2377 from cruessler/add-sha-256-to-gix-commitgraph (228caf7)
    • Refactor (8ccd760)
    • Use GIX_TEST_FIXTURE_HASH environment variable. (7f50c30)
    • Merge branch 'release' (9327b73)
    • Release gix-error v0.1.0, gix-date v0.14.0, gix-actor v0.39.0, gix-trace v0.1.18, gix-path v0.11.1, gix-features v0.46.1, gix-hash v0.22.1, gix-object v0.56.0, gix-quote v0.6.2, gix-attributes v0.30.1, gix-command v0.7.1, gix-packetline v0.21.1, gix-filter v0.26.0, gix-fs v0.19.1, gix-chunk v0.6.0, gix-commitgraph v0.33.0, gix-revwalk v0.27.0, gix-traverse v0.53.0, gix-worktree-stream v0.28.0, gix-archive v0.28.0, gix-bitmap v0.2.16, gix-tempfile v21.0.1, gix-lock v21.0.1, gix-index v0.47.0, gix-config-value v0.17.1, gix-pathspec v0.15.1, gix-worktree v0.48.0, gix-diff v0.59.0, gix-blame v0.9.0, gix-ref v0.59.0, gix-sec v0.13.1, gix-config v0.52.0, gix-prompt v0.13.1, gix-url v0.35.1, gix-credentials v0.36.0, gix-discover v0.47.0, gix-dir v0.21.0, gix-mailmap v0.31.0, gix-revision v0.41.0, gix-merge v0.12.0, gix-negotiate v0.27.0, gix-pack v0.66.0, gix-odb v0.76.0, gix-refspec v0.37.0, gix-shallow v0.8.1, gix-transport v0.54.0, gix-protocol v0.57.0, gix-status v0.26.0, gix-submodule v0.26.0, gix-worktree-state v0.26.0, gix v0.79.0, safety bump 35 crates (d66ac10)
    • Merge pull request #2415 from GitoxideLabs/improvements (5c9e6ae)
    • Rename Creation::ExecuteScipt to Creation::Execute (f4bb106)
    • Merge pull request #2414 from GitoxideLabs/improvements (a3e7b6e)
    • Make sure rust-scripts are always executed in the final destination. (8c97151)
    • Merge pull request #2413 from GitoxideLabs/improvements (70a250c)
    • Change the signature of post Rust closures to allow returning values. (594fe4c)
    • Add variants of scripted_fixture_read_only that allow for Rust post modification. (61c504d)
    • Better docs for Rust fixture method in test tools (fd0328f)
    • Merge pull request #2412 from GitoxideLabs/copilot/add-execute-rust-closures-again (675ce68)
    • Address Copilot review (b63bf6f)
    • Deduplicate testtools marker implementation (fff844b)
    • Refactor (ab33ceb)
    • Add rust_fixture_read_only and rust_fixture_writable functions to gix-testtools (501da55)
    • Merge pull request #2407 from GitoxideLabs/dependabot/cargo/cargo-fb4135702f (8bceefb)
    • Bump the cargo group with 59 updates (7ce3c55)
    • Merge pull request #2398 from GitoxideLabs/release (3b6650a)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.