github GitoxideLabs/gitoxide gix-note-v0.1.0
gix-note v0.1.0

54 minutes ago

Chore

  • add package.include directives to control which files are packaged.

  • bump rust-version to 1.70
    That way clippy will allow to use the fantastic Option::is_some_and()
    and friends.

  • change rust-version manifest field back to 1.65.
    They didn't actually need to be higher to work, and changing them
    unecessarily can break downstream CI.

    Let's keep this value as low as possible, and only increase it when
    more recent features are actually used.

  • upgrade MSRV to v1.70
    Our MSRV follows the one of helix, which in turn follows Firefox.

Documentation

  • 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.)

New Features

  • support note mutation in gix-note

    Add plumbing operations to insert, replace, and remove note mappings while
    returning the rewritten root tree and the previous note id.

    Rebuild notes using the same dynamic fanout rule as Git so growing and shrinking
    collections remain compatible with existing notes trees. Preserve unrelated
    entries during rewriting, reject mixed object-hash kinds, report duplicate
    mappings, and leave the tree unchanged when removing a missing note.

    Keep object persistence delegated through Find and Write traits, allowing
    callers to decide how commits and refs are updated.

  • support lazy note lookup in gix-note

    Establish the minimal plumbing API needed to query notes efficiently for many
    objects, such as every commit visible in a history view.

    Resolve note blobs through Git notes progressive two-hex-digit fanout trees
    and use Git tree ordering for direct entry lookup. Load only trees along the
    requested object path and retain decoded trees in a caller-owned cache that can
    be reused across lookups and notes roots.

    Ignore entries that do not form valid notes instead of mistaking arbitrary tree
    contents for mappings. Use gix-error for contextual failures.

Commit Statistics

  • 23 commits contributed to the release.
  • 1101 days passed between releases.
  • 7 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Make gix-note compile on docs.rs (94aa28e)
    • Update manifests prior to release (ebe9095)
    • Merge pull request #2930 from GitoxideLabs/gix-notes (7424676)
    • Support note mutation in gix-note (d21b52a)
    • Support lazy note lookup in gix-note (048bfd3)
    • Merge pull request #2568 from GitoxideLabs/dependabot/cargo/cargo-56d6b174d8 (ab2fee1)
    • Update crates to Rust 2024 edition (2cb17b2)
    • Remove rust_2018_idioms lint declarations (e10d5f6)
    • Raise MSRV for hash dependency updates (3675a8d)
    • Merge pull request #2518 from GitoxideLabs/improvements (444a92b)
    • Add package.include directives to control which files are packaged. (3e05ca3)
    • Merge pull request #2217 from GitoxideLabs/copilot/update-msrv-to-rust-1-82 (4da2927)
    • Update MSRV to 1.82 and replace once_cell with std equivalents (6cc8464)
    • Merge pull request #1762 from GitoxideLabs/fix-1759 (7ec21bb)
    • Bump rust-version to 1.70 (17835bc)
    • Merge pull request #1624 from EliahKagan/update-repo-url (795962b)
    • Update gitoxide repository URLs (64ff0a7)
    • Merge branch 'global-lints' (37ba461)
    • Workspace Clippy lint management (2e0ce50)
    • Merge branch 'msrv' (8c492d7)
    • Change rust-version manifest field back to 1.65. (3bd09ef)
    • Merge branch 'maintenance' (4454c9d)
    • Upgrade MSRV to v1.70 (aea89c3)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.