Skip to content

gix-object-v0.45.0

@Byron Byron tagged this 22 Oct 18:54
 - `TreeRef::to_owned()` and `Tree::into_owned()` for a convenient way to get a fully-owned `Tree`
 - add `tree::Editor`
   With it it's easy to alter existing trees or build entirely new ones,
   efficiently.
 - add `Default` implementation to `Tree`

### Bug Fixes

 - keep multi-line header value newlines verbatim
   Previously they were normalized to \n which made round-trips
   degenerate information.
   
   It's notable that we explicitly do NOT normalize the newline
   at the very last line of the multi-line header as its part
   of that line, even though it's also relevant to make the header field
   valid. The reason is that these *can* also be written with \r\n, and
   we don't want to degenerate that information.
 - remove workspace lints from Cargo manifests of fuzz-projects.
   They are not part of the parent workspace.

### Other

 - Update gitoxide repository URLs
   This updates `Byron/gitoxide` URLs to `GitoxideLabs/gitoxide` in:
   
   - Markdown documentation, except changelogs and other such files
     where such changes should not be made.
   
   - Documentation comments (in .rs files).
   
   - Manifest (.toml) files, for the value of the `repository` key.
   
   - The comments appearing at the top of a sample hook that contains
     a repository URL as an example.
   
   When making these changes, I also allowed my editor to remove
   trailing whitespace in any lines in files already being edited
   (since, in this case, there was no disadvantage to allowing this).
   
   The gitoxide repository URL changed when the repository was moved
   into the recently created GitHub organization `GitoxideLabs`, as
   detailed in #1406. Please note that, although I believe updating
   the URLs to their new canonical values is useful, this is not
   needed to fix any broken links, since `Byron/gitoxide` URLs
   redirect (and hopefully will always redirect) to the coresponding
   `GitoxideLabs/gitoxide` URLs.
   
   While this change should not break any URLs, some affected URLs
   were already broken. This updates them, but they are still broken.
   They will be fixed in a subsequent commit.
   
   This also does not update `Byron/gitoxide` URLs in test fixtures
   or test cases, nor in the `Makefile`. (It may make sense to change
   some of those too, but it is not really a documentation change.)

### Bug Fixes (BREAKING)

 - `Tree|TreeRef::write_to()` will now assure the most basic sanity of entry names.
   Previously, it would allow null-bytes in the name which would corrupt the written tree.
   Now this is forbidden.
   For some reason, it disallowed newlines, but that is now allowed as validation is should
   be handled on a higher level.
 - remove all workspace dependencies
   The problem is that with them, we don't notice anymore if the crate changes,
   because a dependency changes. That also means that older versions of the dependency
   may stay even though some other crates might pick up a newer version.
   
   Ultimately, this will lead to drift and subtle incompatibilities.
   
   We declare this breaking to enforce a proper re-release.

### Commit Statistics

 - 35 commits contributed to the release over the course of 60 calendar days.
 - 60 days passed between releases.
 - 8 commits were understood as [conventional](https://www.conventionalcommits.org).
 - 1 unique issue was worked on: #1542

### Thanks Clippy

[Clippy](https://github.com/rust-lang/rust-clippy) helped 1 time to make code idiomatic. 

### Commit Details

 * **#1542**
    - Be lenient to missing timestamp in signature (059c9f9)
    - Add test for tag missing timestamp in tagger (ce5d79c)
 * **Uncategorized**
    - Merge pull request #1624 from EliahKagan/update-repo-url (795962b)
    - Update gitoxide repository URLs (64ff0a7)
    - Merge pull request #1612 from Byron/merge (37c1e4c)
    - Thanks clippy (af03832)
    - Merge pull request #1617 from Byron/commit-roundtrip (f35b109)
    - Modernize integration tests (7fcf91a)
    - Keep multi-line header value newlines verbatim (4a6bbb1)
    - Reproduce roundtrip failure for commit that looks good otherwise (9db3f9c)
    - Merge pull request #1593 from Byron/fix-fuzz (72daa46)
    - Remove workspace lints from Cargo manifests of fuzz-projects. (cdac4a9)
    - Merge pull request #1566 from Byron/merge (d69c617)
    - `TreeRef::to_owned()` and `Tree::into_owned()` for a convenient way to get a fully-owned `Tree` (7c48556)
    - Use a standard HashMap instead of one based on SHA1 (39d8e03)
    - Add benchmarks for the tree editor and the tree-editor cursor (b5dc45f)
    - `Tree|TreeRef::write_to()` will now assure the most basic sanity of entry names. (a085b7e)
    - Add `tree::Editor::cursor()` to allow speedier creation of sub-trees. (91fa478)
    - Add `tree::Editor` (14dfcf0)
    - Add `Default` implementation to `Tree` (71bf808)
    - Merge pull request #1557 from Byron/merge-base (649f588)
    - Allow empty-docs (beba720)
    - Merge branch 'global-lints' (37ba461)
    - Workspace Clippy lint management (2e0ce50)
    - Merge pull request #1547 from nyurik/cast-lossless (c3a7dcf)
    - Fix clippy::cast_lossless (29ad2df)
    - Merge pull request #1546 from nyurik/semilocons (f992fb7)
    - Add missing semicolons (ec69c88)
    - Merge branch 'issue-1542' (c3f173c)
    - Make binary-search based test more robust (1b600f3)
    - Adjust expectation now that author parsing is more lenient. (bfd5009)
    - Merge pull request #1540 from NobodyXu/patch-1 (f4898b9)
    - Fix winnow version requirement in gix-object (0a3ce48)
    - Merge branch 'fixes' (46cd1ae)
    - Remove all workspace dependencies (1757377)
Assets 2
Loading