gix-submodule v0.33.0
Changed (BREAKING)
- validate config value names internally and use
AsBStrOptfor value pushes.
This makes using the APIs much more convenient.
New Features (BREAKING)
-
make parsed configuration files lifetime-free
Store parsed configuration data in a self-contained backing buffer, with
event payloads represented as compact spans into it. This removes the
input lifetime fromFileandEvents, making parsed configurations
easier to return, store, move, and combine.Expose data through lightweight
EventRef,SectionRef,HeaderRef,
andBodyRefviews. This retains efficient borrowed access while keeping
ownership details out of the primary API.- Unify parsing under
Events::from_bytes()and remove
from_bytes_owned(). - Add
Events::iter(),frontmatter(), andsections()for
non-consuming traversal. - Return owned
BStringvalues from lookups, avoidingCowhandling. - Simplify optional typed lookups from
Option<Result<T, E>>to
Result<Option<T>, E>. - Accept common string and byte-string inputs through
AsBStrand
IntoBStringOpt. - Allow concise calls such as
new_section("remote", "origin")without
constructingOption<Cow<...>>. - Reduce mutable value and section handles to the lifetime of their
active file borrow.
Introduce explicit section ownership:
Sectionis self-contained and
can be removed, edited, and inserted into another file, while
SectionRefandSectionMutprovide borrowed access.Preserve original subsection spelling for serialization while retaining
decoded names for lookup. Configuration equality now also compares
section and value names case-insensitively, matching Git semantics.Add benchmarks covering section, value, subsection, and multi-value
lookups across configurations of varying sizes. - Unify parsing under
Bug Fixes (BREAKING)
-
Adapt gix-submodule to lifetime-free configuration files
Remove gix_config::File lifetime arguments throughout the public and internal
submodule APIs. Consume the newly owned configuration values directly when
validating paths, URLs, branches, and update modes.Additinoally, let
Submodule::path()returnBStringinstead of
a Cow.
Commit Statistics
- 12 commits contributed to the release.
- 31 days passed between releases.
- 3 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Update changelogs prior to release (cb6ec7d)
- Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates (f0ec710)
- Merge pull request #2725 from GitoxideLabs/gix-config-improvements (5982dfe)
- Validate config value names internally and use
AsBStrOptfor value pushes. (0887485) - Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
- Replace lint allowances with expectations (43ff87a)
- Merge pull request #2667 from GitoxideLabs/lifetime-free-config-parser (55b5158)
- Adapt gix-submodule to lifetime-free configuration files (f138664)
- Make parsed configuration files lifetime-free (0e3b35b)
- Merge pull request #2714 from GitoxideLabs/fix-credentials-parsing (cf3053a)
- Release gix-path v0.12.2, gix-error v0.2.5, gix-utils v0.3.4, gix-date v0.15.6, gix-url v0.36.2, gix-credentials v0.38.2 (27aec47)
- Merge pull request #2646 from GitoxideLabs/report (1b1541e)