Releases: GitoxideLabs/gitoxide
gix-odb v0.68.0
Changed (BREAKING)
- adjust error return types to handle collision detection
This does mean a lot of churn across the tree, but the change is
usually just an adjustment to variants of an existing error type,
so I expect that most downstream users will require little to no
adaption for this change. - use separate error type for I/O hashing operations
Prepare for hashing becoming fallible. - adjust hash verification return types for the common interface
This mostly just affects return types – using
git_hash::verify::Error
instead of bespoke duplicated versions
thereof, and occasionally returning anObjectId
instead of()
for convenience.
Commit Statistics
- 15 commits contributed to the release.
- 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-sec v0.10.12, gix-config v0.44.0, gix-prompt v0.10.0, gix-url v0.30.0, gix-credentials v0.28.0, gix-discover v0.39.0, gix-dir v0.13.0, gix-mailmap v0.26.0, gix-revision v0.33.0, gix-merge v0.4.0, gix-negotiate v0.19.0, gix-pack v0.58.0, gix-odb v0.68.0, gix-refspec v0.29.0, gix-shallow v0.3.0, gix-packetline v0.18.4, gix-transport v0.46.0, gix-protocol v0.49.0, gix-status v0.18.0, gix-submodule v0.18.0, gix-worktree-state v0.18.0, gix v0.71.0, gix-fsck v0.10.0, gitoxide-core v0.46.0, gitoxide v0.42.0 (ada5a94)
- Release gix-date v0.9.4, gix-utils v0.2.0, gix-actor v0.34.0, gix-features v0.41.0, gix-hash v0.17.0, gix-hashtable v0.8.0, gix-path v0.10.15, gix-validate v0.9.4, gix-object v0.48.0, gix-glob v0.19.0, gix-quote v0.5.0, gix-attributes v0.25.0, gix-command v0.5.0, gix-packetline-blocking v0.18.3, gix-filter v0.18.0, gix-fs v0.14.0, gix-commitgraph v0.27.0, gix-revwalk v0.19.0, gix-traverse v0.45.0, gix-worktree-stream v0.20.0, gix-archive v0.20.0, gix-tempfile v17.0.0, gix-lock v17.0.0, gix-index v0.39.0, gix-config-value v0.14.12, gix-pathspec v0.10.0, gix-ignore v0.14.0, gix-worktree v0.40.0, gix-diff v0.51.0, gix-blame v0.1.0, gix-ref v0.51.0, gix-config v0.44.0, gix-prompt v0.10.0, gix-url v0.30.0, gix-credentials v0.28.0, gix-discover v0.39.0, gix-dir v0.13.0, gix-mailmap v0.26.0, gix-revision v0.33.0, gix-merge v0.4.0, gix-negotiate v0.19.0, gix-pack v0.58.0, gix-odb v0.68.0, gix-refspec v0.29.0, gix-shallow v0.3.0, gix-packetline v0.18.4, gix-transport v0.46.0, gix-protocol v0.49.0, gix-status v0.18.0, gix-submodule v0.18.0, gix-worktree-state v0.18.0, gix v0.71.0, gix-fsck v0.10.0, gitoxide-core v0.46.0, gitoxide v0.42.0, safety bump 48 crates (b41312b)
- Update changelogs prior to release (38dff41)
- Merge pull request #1915 from emilazy/push-qvyqmopsoltr (4660f7a)
- Refactor (4501086)
- Migrate
gix_object::{try_ =>}compute_hash
users (3d7e379) - Migrate hashing API users to fallible versions (fbf6cc8)
- Adjust error return types to handle collision detection (5095f44)
- Use separate error type for I/O hashing operations (4f2b649)
- Adjust hash verification return types for the common interface (54e5764)
- Migrate all hashing API users to
gix_hash::Hasher::finalize()
(4e935ce) - Migrate all hashing API users to
gix_hash
(baa1430) - Merge pull request #1854 from GitoxideLabs/montly-report (16a248b)
- Thanks clippy (8e96ed3)
- Merge pull request #1778 from GitoxideLabs/new-release (8df0db2)
gix-object v0.48.0
New Features
- add
commit::ExtraHeaders::find_pos()
, and expose "gpgsig" header name.
That way it it's easier to manipulate existing extra-header fields. - add
CommitRef|TagRef|BlobRef::into_owned()
as shortcut.
Otherwise one would have to know it converts intoCommit
viaFrom
.
Bug Fixes
-
Support empty tags with or without trailing NL
When representing an annotated tag with an empty commit message, we used
to only support a tag ending with two newlines (one after the tagger
line + one after the empty commit message).This was due to a misconception that annotated tags ending with a single
NL shouldn't exist in the wild since there isn't an obvious way to
create them from withgit
.
This misconception shows up in the discussion thread for
issue 603It turns out that both encodings of empty annotated tags appear in the
wild.We must be able to parse either and roundtrip for either.
Before PR 604, we
used to special case the empty tag msg case and not add a NL.
To be able to representb""
,b"\n"
,b"\n\n"
..., we special case
anymessage
that is a pure sequence ofb'\n'
and actually parse the
b'\n'
into the tag's message.This allows us to calculate the correct size that matches the number of
bytes that git would produce, as well as round-trip to and from the
commit encoding.The existing tests (in particular
round_trip
forempty.txt
and
empty_missing_nl.txt
) convince me that the logic is sound.
Also, the size being139
bytes forempty_missing_nl.txt
and140
bytes forempty.txt
matches the output ofcat file | wc -l
for each
file.
Other
-
Repository::commit()
now explains how to create a commit without ref updates.
Changed (BREAKING)
- drop migration shims for fallible hashing
Since the APIs were already adjusted and all callers migrated, we
only need to drop the migration shims. - make
gix_object::compute_hash
fallible
compute_stream_hash
is already fallible, so we don’t want to keep
thetry_*
prefix on the fallible API. - adjust error return types to handle collision detection
This does mean a lot of churn across the tree, but the change is
usually just an adjustment to variants of an existing error type,
so I expect that most downstream users will require little to no
adaption for this change. - use separate error type for I/O hashing operations
Prepare for hashing becoming fallible. - adjust hash verification return types for the common interface
This mostly just affects return types – using
git_hash::verify::Error
instead of bespoke duplicated versions
thereof, and occasionally returning anObjectId
instead of()
for convenience.
Commit Statistics
- 33 commits contributed to the release.
- 9 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
- Update changelogs prior to release (38dff41)
- Merge pull request #1915 from emilazy/push-qvyqmopsoltr (4660f7a)
- Refactor (4501086)
- Drop migration shims for fallible hashing (a68f115)
- Migrate
gix_object::{try_ =>}compute_hash
users (3d7e379) - Make
gix_object::compute_hash
fallible (b5ac93a) - Migrate hashing API users to fallible versions (fbf6cc8)
- Add fallible
gix_object::try_compute_hash
for migration (f2b07c0) - Adjust error return types to handle collision detection (5095f44)
- Use separate error type for I/O hashing operations (4f2b649)
- Adjust hash verification return types for the common interface (54e5764)
- Migrate all hashing API users to
gix_hash::Hasher::finalize()
(4e935ce) - Migrate all hashing API users to
gix_hash
(baa1430) - Use
gix_object::compute_hash
in a test and benchmark (7805ffe) - Factor out private
gix_object::object_hasher
helper (cf261d5) - Merge pull request #1908 from EliahKagan/run-ci/scripts (c8c42b4)
- Fix a few ShellCheck warnings and stylistic inconsistencies (e5e2c6f)
- Merge pull request #1907 from EliahKagan/run-ci/raw (7b17da6)
- Use raw literals for more strings with backslashes (01bd76d)
- Merge pull request #1903 from pierrechevalier83/tag_end_of_line (6caee49)
- Support empty tags with or without trailing NL (f69890c)
- Merge pull request #1854 from GitoxideLabs/montly-report (16a248b)
- Thanks clippy (8e96ed3)
- Merge pull request #1837 from GitoxideLabs/improvements (b4fe425)
- Add
commit::ExtraHeaders::find_pos()
, and expose "gpgsig" header name. (bf85128) Repository::commit()
now explains how to create a commit without ref updates. (866affd)- Add
CommitRef|TagRef|BlobRef::into_owned()
as shortcut. (527fd3d) - Merge pull request #1822 from epage/w7 (11ac79c)
- Upgrade to Winnow 0.7 (fdc57e7)
- Switch to ModalParser (0e71412)
- Resolve Winnow deprecations (3cd3e2a)
- Upgrade to Winnow 0.6.26 (783c4e6)
- Merge pull request #1778 from GitoxideLabs/new-release (8df0db2)
gix-negotiate v0.19.0
A maintenance release without user-facing changes.
Commit Statistics
- 4 commits contributed to the release.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Release gix-sec v0.10.12, gix-config v0.44.0, gix-prompt v0.10.0, gix-url v0.30.0, gix-credentials v0.28.0, gix-discover v0.39.0, gix-dir v0.13.0, gix-mailmap v0.26.0, gix-revision v0.33.0, gix-merge v0.4.0, gix-negotiate v0.19.0, gix-pack v0.58.0, gix-odb v0.68.0, gix-refspec v0.29.0, gix-shallow v0.3.0, gix-packetline v0.18.4, gix-transport v0.46.0, gix-protocol v0.49.0, gix-status v0.18.0, gix-submodule v0.18.0, gix-worktree-state v0.18.0, gix v0.71.0, gix-fsck v0.10.0, gitoxide-core v0.46.0, gitoxide v0.42.0 (ada5a94)
- Release gix-date v0.9.4, gix-utils v0.2.0, gix-actor v0.34.0, gix-features v0.41.0, gix-hash v0.17.0, gix-hashtable v0.8.0, gix-path v0.10.15, gix-validate v0.9.4, gix-object v0.48.0, gix-glob v0.19.0, gix-quote v0.5.0, gix-attributes v0.25.0, gix-command v0.5.0, gix-packetline-blocking v0.18.3, gix-filter v0.18.0, gix-fs v0.14.0, gix-commitgraph v0.27.0, gix-revwalk v0.19.0, gix-traverse v0.45.0, gix-worktree-stream v0.20.0, gix-archive v0.20.0, gix-tempfile v17.0.0, gix-lock v17.0.0, gix-index v0.39.0, gix-config-value v0.14.12, gix-pathspec v0.10.0, gix-ignore v0.14.0, gix-worktree v0.40.0, gix-diff v0.51.0, gix-blame v0.1.0, gix-ref v0.51.0, gix-config v0.44.0, gix-prompt v0.10.0, gix-url v0.30.0, gix-credentials v0.28.0, gix-discover v0.39.0, gix-dir v0.13.0, gix-mailmap v0.26.0, gix-revision v0.33.0, gix-merge v0.4.0, gix-negotiate v0.19.0, gix-pack v0.58.0, gix-odb v0.68.0, gix-refspec v0.29.0, gix-shallow v0.3.0, gix-packetline v0.18.4, gix-transport v0.46.0, gix-protocol v0.49.0, gix-status v0.18.0, gix-submodule v0.18.0, gix-worktree-state v0.18.0, gix v0.71.0, gix-fsck v0.10.0, gitoxide-core v0.46.0, gitoxide v0.42.0, safety bump 48 crates (b41312b)
- Update changelogs prior to release (38dff41)
- Merge pull request #1778 from GitoxideLabs/new-release (8df0db2)
gix-merge v0.4.0
A maintenance release without user-facing changes.
Commit Statistics
- 13 commits contributed to the release.
- 0 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-sec v0.10.12, gix-config v0.44.0, gix-prompt v0.10.0, gix-url v0.30.0, gix-credentials v0.28.0, gix-discover v0.39.0, gix-dir v0.13.0, gix-mailmap v0.26.0, gix-revision v0.33.0, gix-merge v0.4.0, gix-negotiate v0.19.0, gix-pack v0.58.0, gix-odb v0.68.0, gix-refspec v0.29.0, gix-shallow v0.3.0, gix-packetline v0.18.4, gix-transport v0.46.0, gix-protocol v0.49.0, gix-status v0.18.0, gix-submodule v0.18.0, gix-worktree-state v0.18.0, gix v0.71.0, gix-fsck v0.10.0, gitoxide-core v0.46.0, gitoxide v0.42.0 (ada5a94)
- Release gix-date v0.9.4, gix-utils v0.2.0, gix-actor v0.34.0, gix-features v0.41.0, gix-hash v0.17.0, gix-hashtable v0.8.0, gix-path v0.10.15, gix-validate v0.9.4, gix-object v0.48.0, gix-glob v0.19.0, gix-quote v0.5.0, gix-attributes v0.25.0, gix-command v0.5.0, gix-packetline-blocking v0.18.3, gix-filter v0.18.0, gix-fs v0.14.0, gix-commitgraph v0.27.0, gix-revwalk v0.19.0, gix-traverse v0.45.0, gix-worktree-stream v0.20.0, gix-archive v0.20.0, gix-tempfile v17.0.0, gix-lock v17.0.0, gix-index v0.39.0, gix-config-value v0.14.12, gix-pathspec v0.10.0, gix-ignore v0.14.0, gix-worktree v0.40.0, gix-diff v0.51.0, gix-blame v0.1.0, gix-ref v0.51.0, gix-config v0.44.0, gix-prompt v0.10.0, gix-url v0.30.0, gix-credentials v0.28.0, gix-discover v0.39.0, gix-dir v0.13.0, gix-mailmap v0.26.0, gix-revision v0.33.0, gix-merge v0.4.0, gix-negotiate v0.19.0, gix-pack v0.58.0, gix-odb v0.68.0, gix-refspec v0.29.0, gix-shallow v0.3.0, gix-packetline v0.18.4, gix-transport v0.46.0, gix-protocol v0.49.0, gix-status v0.18.0, gix-submodule v0.18.0, gix-worktree-state v0.18.0, gix v0.71.0, gix-fsck v0.10.0, gitoxide-core v0.46.0, gitoxide v0.42.0, safety bump 48 crates (b41312b)
- Update changelogs prior to release (38dff41)
- Merge pull request #1915 from emilazy/push-qvyqmopsoltr (4660f7a)
- Migrate
gix_object::{try_ =>}compute_hash
users (3d7e379) - Migrate hashing API users to fallible versions (fbf6cc8)
- Merge pull request #1907 from EliahKagan/run-ci/raw (7b17da6)
- Drop trailing
,
just before)
on same line in function calls (66a5ae1) - Merge pull request #1854 from GitoxideLabs/montly-report (16a248b)
- Thanks clippy (8e96ed3)
- Merge pull request #1800 from GitoxideLabs/improvements (cc7b614)
- Adapt to changes in
gix-command
(28f712e) - Merge pull request #1778 from GitoxideLabs/new-release (8df0db2)
gix-mailmap v0.26.0
A maintenance release without user-facing changes.
Commit Statistics
- 6 commits contributed to the release.
- 0 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-sec v0.10.12, gix-config v0.44.0, gix-prompt v0.10.0, gix-url v0.30.0, gix-credentials v0.28.0, gix-discover v0.39.0, gix-dir v0.13.0, gix-mailmap v0.26.0, gix-revision v0.33.0, gix-merge v0.4.0, gix-negotiate v0.19.0, gix-pack v0.58.0, gix-odb v0.68.0, gix-refspec v0.29.0, gix-shallow v0.3.0, gix-packetline v0.18.4, gix-transport v0.46.0, gix-protocol v0.49.0, gix-status v0.18.0, gix-submodule v0.18.0, gix-worktree-state v0.18.0, gix v0.71.0, gix-fsck v0.10.0, gitoxide-core v0.46.0, gitoxide v0.42.0 (ada5a94)
- Release gix-date v0.9.4, gix-utils v0.2.0, gix-actor v0.34.0, gix-features v0.41.0, gix-hash v0.17.0, gix-hashtable v0.8.0, gix-path v0.10.15, gix-validate v0.9.4, gix-object v0.48.0, gix-glob v0.19.0, gix-quote v0.5.0, gix-attributes v0.25.0, gix-command v0.5.0, gix-packetline-blocking v0.18.3, gix-filter v0.18.0, gix-fs v0.14.0, gix-commitgraph v0.27.0, gix-revwalk v0.19.0, gix-traverse v0.45.0, gix-worktree-stream v0.20.0, gix-archive v0.20.0, gix-tempfile v17.0.0, gix-lock v17.0.0, gix-index v0.39.0, gix-config-value v0.14.12, gix-pathspec v0.10.0, gix-ignore v0.14.0, gix-worktree v0.40.0, gix-diff v0.51.0, gix-blame v0.1.0, gix-ref v0.51.0, gix-config v0.44.0, gix-prompt v0.10.0, gix-url v0.30.0, gix-credentials v0.28.0, gix-discover v0.39.0, gix-dir v0.13.0, gix-mailmap v0.26.0, gix-revision v0.33.0, gix-merge v0.4.0, gix-negotiate v0.19.0, gix-pack v0.58.0, gix-odb v0.68.0, gix-refspec v0.29.0, gix-shallow v0.3.0, gix-packetline v0.18.4, gix-transport v0.46.0, gix-protocol v0.49.0, gix-status v0.18.0, gix-submodule v0.18.0, gix-worktree-state v0.18.0, gix v0.71.0, gix-fsck v0.10.0, gitoxide-core v0.46.0, gitoxide v0.42.0, safety bump 48 crates (b41312b)
- Update changelogs prior to release (38dff41)
- Merge pull request #1854 from GitoxideLabs/montly-report (16a248b)
- Thanks clippy (8e96ed3)
- Merge pull request #1778 from GitoxideLabs/new-release (8df0db2)
gix-lock v17.0.0
A maintenance release without user-facing changes.
Commit Statistics
- 4 commits contributed to the release.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
gix-index v0.39.0
New Features
- Add
From<gix_object::tree::EntryKind> for entry::Mode
That way it's easier to add new entries to the index. - add
State::remove_(tree|resolve_undo)()
to remove possibly outdated extensions. - add
State::remove_entry_at_index(pos)
by position.
Other
-
Expand
from_fs
doc
This expands and slightly corrects thegix_index::entry::from_fs
documentation:-
To be more precise about the expectation of where the metadata
come from (it needn't specifically be thesymlink_metadata
function, and it is sometimes even anfstat
-like function
rather than anlstat
-like function, though notstat
). -
To mention that default values are used for unavailable data.
-
To mention that truncation is sometimes performed on some fields.
Comments are also updated regarding some cases of truncation: why
casting down to 32-bit should be okay forst_dev
andst_ino
(see #1817). -
Changed (BREAKING)
- adjust error return types to handle collision detection
This does mean a lot of churn across the tree, but the change is
usually just an adjustment to variants of an existing error type,
so I expect that most downstream users will require little to no
adaption for this change. - use separate error type for I/O hashing operations
Prepare for hashing becoming fallible. - adjust hash verification return types for the common interface
This mostly just affects return types – using
git_hash::verify::Error
instead of bespoke duplicated versions
thereof, and occasionally returning anObjectId
instead of()
for convenience.
Commit Statistics
- 22 commits contributed to the release.
- 7 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
- Update changelogs prior to release (38dff41)
- Merge pull request #1915 from emilazy/push-qvyqmopsoltr (4660f7a)
- Refactor (4501086)
- Prepare
gix-index
end-of-index extension parsing for SHA256. (f879654) - Migrate hashing API users to fallible versions (fbf6cc8)
- Adjust error return types to handle collision detection (5095f44)
- Use separate error type for I/O hashing operations (4f2b649)
- Adjust hash verification return types for the common interface (54e5764)
- Migrate all hashing API users to
gix_hash::Hasher::finalize()
(4e935ce) - Migrate all hashing API users to
gix_hash
(baa1430) - Merge pull request #1907 from EliahKagan/run-ci/raw (7b17da6)
- Drop trailing
,
just before)
on same line in function calls (66a5ae1) - Use raw literals for more strings with backslashes (01bd76d)
- Merge pull request #1854 from GitoxideLabs/montly-report (16a248b)
- Thanks clippy (8e96ed3)
- Merge pull request #1837 from GitoxideLabs/improvements (b4fe425)
- Add
From<gix_object::tree::EntryKind> for entry::Mode
(de4375a) - Add
State::remove_(tree|resolve_undo)()
to remove possibly outdated extensions. (668cb12) - Add
State::remove_entry_at_index(pos)
by position. (8173096) - Merge pull request #1818 from EliahKagan/from-fs-doc (14d6b8d)
- Expand
from_fs
doc (426c669) - Merge pull request #1778 from GitoxideLabs/new-release (8df0db2)
gix-ignore v0.14.0
A maintenance release without user-facing changes.
Commit Statistics
- 2 commits contributed to the release.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
gix-hashtable v0.8.0
A maintenance release without user-facing changes.
Commit Statistics
- 2 commits contributed to the release.
- 0 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
gix-hash v0.17.0
New Features
- add common interface for hash verification
Changed (BREAKING)
- drop migration shims for fallible hashing
Since the APIs were already adjusted and all callers migrated, we
only need to drop the migration shims. - adjust error return types to handle collision detection
This does mean a lot of churn across the tree, but the change is
usually just an adjustment to variants of an existing error type,
so I expect that most downstream users will require little to no
adaption for this change. - use separate error type for I/O hashing operations
Prepare for hashing becoming fallible. - drop
gix_hash::{hasher::Digest, Hasher::digest()}
Complete the transition toObjectId
returns. - move hashing API to
gix_hash
New Features (BREAKING)
- detect SHA‐1 collision attacks
Fix [GHSA-2frx-2596-x5r6].
Commit Statistics
- 17 commits contributed to the release.
- 7 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
- Update changelogs prior to release (38dff41)
- Merge pull request #1915 from emilazy/push-qvyqmopsoltr (4660f7a)
- Refactor (4501086)
- Drop migration shims for fallible hashing (a68f115)
- Migrate hashing API users to fallible versions (fbf6cc8)
- Adjust error return types to handle collision detection (5095f44)
- Use separate error type for I/O hashing operations (4f2b649)
- Add common interface for hash verification (b32f1f3)
- Drop
gix_hash::{hasher::Digest, Hasher::digest()}
(65aab56) - Migrate all hashing API users to
gix_hash::Hasher::finalize()
(4e935ce) - Move hashing API to
gix_hash
(e4439aa) - Migrate all hashing API users to
gix_hash
(baa1430) - Detect SHA‐1 collision attacks (f253f02)
- Add more tests for SHA‐1 vectors (25ff995)
- Merge pull request #1854 from GitoxideLabs/montly-report (16a248b)
- Thanks clippy (8e96ed3)
- Merge pull request #1778 from GitoxideLabs/new-release (8df0db2)