Skip to content

Latest commit

 

History

History
199 lines (158 loc) · 21.8 KB

File metadata and controls

199 lines (158 loc) · 21.8 KB

Changelog

0.4.1 (2026-05-17)

chore

Documentation

  • Add code of conduct (62cdabd)
  • Add contribution guide (cb240be)
  • Add note for testers in README (f219c20)
  • Add reference to code of conduct in README (f71c62d)
  • Add reference to contribution guide in README (34502d5)

0.4.0 (2026-05-17)

Features

  • Add -a/--all flag to list subcommand (8fed577)
  • Add Edit and Merge CLI subcommands (eb21231)
  • Add Executor::merge for 3-way merge of metadata refs (eb21231)
  • Add Executor::read_blob_at for reading blob entries (eb21231)
  • Add edit and merge subcommands (eb21231)

Bug Fixes

  • Make object a keyword argument in add, remove, and edit subcommands (2b88890)

0.3.0-rc.2 (2026-05-16)

Features

  • metadata validates input and ref-target shape (dbeb94c)
  • Accept optional author signature in Ledger::create (cb4d735), closes #10
  • Add --author-name and --author-email to create subcommand (cb4d735)
  • Add --link <rev> to add (resolved permalink, peels tags) (8499883)
  • Add --link-ref <name> to add (unresolved ref name as blob) (8499883)
  • Add AlreadyExists, InvalidRootType, FanoutPathConflict errors (dbeb94c)
  • Add ContentAddressable and Pointer traits (677936a)
  • Add DEFAULT_FANOUT constant (82f6a4f)
  • Add Error::UnexpectedKind variant (d57c2ba)
  • Add Executor::repo() accessor (8ac3697)
  • Add Executor::stale() read-only counterpart to prune (8ac3697)
  • Add InvalidFanoutDepth and FanoutFind error variants (82f6a4f)
  • Add list <object> subcommand (replaces old show flat output) (ce0fc2a)
  • Add message: Option<&str> to MetadataRepository::metadata_delete (8ac3697)
  • Add message: Option<&str> to MetadataRepository::metadata (8ac3697)
  • Add message/author params to Executor::upsert, import, remove (8ac3697)
  • Add Metadata::id and Metadata::data accessors (0c8fb44)
  • Add Metadata::id and Metadata::data accessors (9757be5)
  • Add tree::remove_leaf helper that prunes empty intermediates (8764905)
  • Add TreeId newtype with From<gix::Tree> and From<TreeId> for gix::ObjectId (f5d5c88)
  • Add Tx::with_message() builder; default commit message is "store: commit transaction" (d57c2ba)
  • Add CLI (ff68888)
  • Add Error::FanoutDepthConflict variant (a77bc5d)
  • Add FileMode enum (Blob, Executable, Tree, Commit) (c72b96c)
  • Add git-db crate to workspace (e2ed0fc)
  • Add global --force flag used by add, copy, and man-page generation (676d45a)
  • Add IdStrategy::CommitOid for commit-OID-keyed entity refs (31c8dc3), closes #6
  • Add Mutation::Pin for inserting entries that reference existing objects (c72b96c)
  • Add optional author override to Ledger::create (cb4d735)
  • Add print_tree_entry helper in main.rs (4f09287)
  • Add store abstractions (260820f)
  • Add validate_metadata_tree to MetadataRepository trait (a77bc5d)
  • Enable gix tree-editor feature for structural sharing (bf946a9)
  • Implement ContentAddressable, Ref, and Transaction over gix (7949943)
  • Implement Executor::upsert (0c8fb44)
  • Implement Executor::upsert (333a29f)
  • Implement find_metadata (0c8fb44)
  • Implement find_metadata (119791d)
  • Implement metadata_default_ref returning refs/metadata/commits (82f6a4f)
  • Implement metadata_delete and add tree::remove_leaf (0c8fb44)
  • Implement metadata_delete and add tree::remove_leaf (8764905)
  • Implement metadata, mirror libgit2 notes shape (0c8fb44)
  • Implement metadata, mirror libgit2 notes shape (dbeb94c)
  • Implement compile_patterns and tree_is_empty helpers (7269b52)
  • Implement Executor::copy (7269b52)
  • Implement Executor::remove with glob-pattern matching (7269b52)
  • Implement Executor::remove, stale, copy, prune (7269b52)
  • Implement Executor::stale and Executor::prune (7269b52)
  • Implement Executor::upsert using tree::insert_leaf directly (7302605)
  • Implement Executor::upsert; parameterize insert_leaf over leaf_kind (0c8fb44)
  • Implement Executor::upsert; parameterize insert_leaf over leaf_kind (7302605)
  • Implement Store and Tx for phase 1 transaction (bf946a9)
  • Install nextest via taiki-e/install-action@nextest (8b9181f)
  • Make list show flat tree entries and show render a tree (ce0fc2a)
  • Open editor for add when no content is provided interactively (2a7cd53)
  • Print man page path on write and require --force to overwrite (676d45a)
  • Read .fanout depth blob in metadatas (82f6a4f)
  • Read committer identity from git config via repo.committer(), falling back to generic defaults (d57c2ba)
  • Render show output as a tree via termtree (ce0fc2a)
  • Require .fanout depth in metadata trees and document MetadataRepository (0c8fb44)
  • Require .fanout depth in metadata trees and document MetadataRepository (82f6a4f)
  • Rework add to support --link/--link-ref; make --path optional (8499883)
  • Run doctests with cargo test --doc (8b9181f)
  • Run tests with cargo nextest run (8b9181f)
  • Scaffolding for git-store (4480796)
  • Split --generate-man-page into bool flag plus --man-dir (676d45a)
  • Split Pointer into Ref and Transaction traits (7ff0b5f)
  • Store::open/init bind to refs/db/<n> (bf946a9)
  • Tx::commit with configurable CAS retry loop (bf946a9)
  • Tx::get/put/delete/list over nested tree paths (bf946a9)

Bug Fixes

  • --force is no longer global; add and copy each declare their own --force flag (c06cd88)
  • Add initial_depth: Option<u8> to MetadataRepository::metadata(); wire --shard-level through upsert (c06cd88)
  • Bind metadata_default_ref() result so the borrow outlives the match (6afe663)
  • Change remove return type to Result<Option<gix::ObjectId>> (707709d)
  • Correct fanout traversal and error propagation in metadatas (0c8fb44)
  • Correct fanout traversal and error propagation in metadatas (6afe663)
  • Correct generate-man arguments (5e879a1)
  • Correct stale [Repo] link in module doc to [Executor] (707709d)
  • Create man dir if necessary (21d2a15)
  • Default man page output dir to XDG_DATA_HOME (f713512)
  • Document force behavior in upsert, copy, and import (707709d)
  • Document copy --force as a destructive wholesale replace (c06cd88)
  • Ensure_fanout_blob now errors on type/depth conflict, no-ops on match (a77bc5d)
  • Fail fast on non-hex fanout leaves (6afe663)
  • Fix editor template line-continuation formatting (c06cd88)
  • List and show return empty output instead of erroring when no metadata ref exists (c06cd88)
  • Make object positional in remove (was -o/--object, inconsistent with add/show) (c06cd88)
  • Metadata::new no longer requires id to be a blob; any object type is valid (c06cd88)
  • Peel metadata ref to a tree before traversal (6afe663)
  • Propagate ref-find, peel, and traverse errors via new variants (6afe663)
  • Publish only the crate matching the release tag (912b8ce)
  • Publish pre-release crates to crates.io (6f1d588)
  • Reject empty paths in Tx operations (f541852)
  • Reject non-blob .fanout entries (symlink, gitlink) with InvalidFanoutDepth (6e20304)
  • Remove --shard-level from copy (concept does not apply) (c06cd88)
  • Remove manual version pins (ed13199)
  • Remove redundant get_ref method (707709d)
  • Replace panicking into_commit()/into_tree() with try_into_commit()/try_into_tree(), returning Error::UnexpectedKind on mismatch (d57c2ba)
  • Require positional argument to be last (4827a71)
  • Resolve clippy -D warnings diagnostics in stub impls (2793dde)
  • Resolve diagnostics in metadatas impl (0818601)
  • Resolve nine CLI issues and rename default metadata ref (c06cd88)
  • Revert upsert to todo!() pending rewrite (707709d)
  • Update --path help to mention --link and --link-ref as alternatives (c06cd88)

Performance Improvements

  • Hoist hex buffer allocation out of the entry loop (6afe663)

0.3.0-rc.1 (2026-03-26)

Features

  • Add git-chain (2a2cfea)
  • Add git-ledger (2a2cfea)
  • Implement relation operations in git-metadata (7725be8)

Bug Fixes

  • Apply clippy suggestions (search_is_some in tests, fmt in main.rs) (6f83928)
  • Handle slash in link keys and batch prune commits in git-metadata (a37fb3e)

0.2.1 (2026-03-20)

Miscellaneous Chores

0.1.0 (2026-03-11)

⚠ BREAKING CHANGES

  • metadata_remove no longer takes MetadataOptions

Features

  • Add executor (exe) and CLI implementation (10d9c07)
  • Add initial trait method and accompanying implementation (c4ed9f8)
  • Add man generation to CLI (275207f)
  • Add metadata trait method definitions (30ef2eb)
  • Add metadata trait method implementations (30ef2eb)
  • Auto-detect fanout depth on read and remove (bd86065)
  • Glob matching for remove patterns (*, **, prefix match) (4cf0d90)
  • Path-based metadata API following git-notes semantics (4cf0d90)
  • Resolve revisions (HEAD, refs, short OIDs) in all object arguments (4cf0d90)

Bug Fixes

  • Auto-detect fanout depth and correct shard level semantics (bd86065)
  • Correct release-please manifest package key (88f4ec1)
  • Remove cargo-workspace plugin for single-crate repo (1d19a7d)
  • Shard-level default changed from 2 to 1 (git-notes compatible) (bd86065)