This release includes 3 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
Summary
AI summaryBroad release touches Commit Details, New Features, Bug Fixes, and Commit Statistics.
Full changelog
New Features
- greatly improve the index
Filedebug output.
This allows tests to rely on it more with insta, and not miss a thing. - allow fixtures to require checked-in archives
Addscripted_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
gitutility to callgiteasily likegit(cwd, "log --oneline") - add
invoke_bashtest helper() - Add
hash_kind_from_env()to obtain the value ofGIX_TEST_FIXTURE_HASH
This is useful when tests want to inspect the hash under test. - use
GIX_TEST_FIXTURE_HASHenvironment 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_onlythat 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_environmentutility
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-testtoolsindependent ofgixcrates
This means that a trait implementation has to always be passed
for what boils down to ignore handling.The
standaloneportion of the API is also removed. -
add
object_hash()function and renamehash_kind_from_env()toobject_hash_from_env()
For consistency and convenience.
Bug Fixes (BREAKING)
-
remove
winnowand 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
usedwinnow, with the option to re-add those if there is demand. -
rename
Creation::ExecuteScipttoCreation::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_daemonnow spawns the git daemon on a free port automatically (123cdaf)- Disable automatic Git maintenance in gix-testtools, add
apply_git_config_by_environmentutility (cad26e9) - Merge pull request #2591 from AaronMoat/untracked-extension-reading (85c6087)
- Greatly improve the index
Filedebug 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
gitutility to callgiteasily likegit(cwd, "log --oneline")(fa02742) - Merge pull request #2590 from GitoxideLabs/independent-testtools (575113d)
- Adapt to changes in
gix-testtools(ce9e6bd) - Make
gix-testtoolsindependent ofgixcrates (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 renamehash_kind->object_hash(d9648e8) - Add
object_hash()function and renamehash_kind_from_env()toobject_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 localhostin journey tests (09687eb) - Remove
winnowand 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_bashtest 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 ofGIX_TEST_FIXTURE_HASH(2a5e787) - Make
hash_kind_from_envpublic (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_HASHenvironment 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::ExecuteScipttoCreation::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
postRust closures to allow returning values. (594fe4c) - Add variants of
scripted_fixture_read_onlythat 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)
Breaking Changes
- Make `gix-testtools` independent of `gix` crates, requiring trait implementations for ignore handling and removing the `standalone` API portion.
- Remove `winnow` crate and replace all parsers with hand‑implemented equivalents, eliminating detailed error messages from former winnow parsers.
- Rename `Creation::ExecuteScipt` to `Creation::Execute`.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Related tools
Earlier breaking changes
- vgix-v0.84.0 Allow checkouts of empty repositories; `destination_must_be_empty` becomes `Option<bool>`
- vgix-worktree-stream-v0.33.0 Changes API of `Stream::add_entry_from_path` to require `hash_kind` argument.
- vgix-object-v0.61.0 Renames `Data::hash_kind` to `Data::object_hash` for consistency.
Beta — feedback welcome: [email protected]