Repository navigation
fix(storage): move to ulid 3 (Ulid::generate) - #191
Conversation
ulid 3 drops Ulid::new() in favour of Ulid::generate(), which produces the same 26-character, time-ordered ids. Key::ulid and Key::ulid_at switch to it; Key::ulid_at still keeps the caller's timestamp and only takes the random part from a fresh id. No public type exposes ulid::Ulid, so the bump is internal to tinyflows-storage. The lockfile carries ulid 3.0.0 next to 1.2.1 until the tinystoragedrivers crates pinned here move to ulid 3 as well. Supersedes tinyhumansai#187 (dependabot).
Tiny Sweeper reviewReviewed head: Verdict: Ready for maintainer review · Priority: none Diagnostics and supporting detailsFull summaryPull request purpose (title): fix(storage): move to ulid 3 (Ulid::generate). This pull request moves `tinyflows-storage` from ulid 1 to ulid 3, replacing `Ulid::new()` with `Ulid::generate()` in `Key::ulid` and `Key::ulid_at` while preserving the documented id contract (26 Crockford base32 characters, lexically time-ordered, random tail) and the caller-supplied timestamp in `ulid_at`. It supersedes dependabot #187, which only bumped the version and failed to compile. The latest-push delta is unavailable, so no push-level comparison is reported. Unreviewed paths
Review snapshot
Completeness: Complete What changedThe `ulid` dependency in `crates/tinyflows-storage/Cargo.toml` is bumped from 1 to 3, and `crates/tinyflows-storage/src/key.rs` switches `Key::ulid` and `Key::ulid_at` to `Ulid::generate()`. `Key::ulid_at` continues to build the id via `Ulid::from_parts` with the caller's timestamp and only the random tail taken from a fresh id. The lockfile adds ulid 3.0.0 alongside 1.2.1 because the pinned tinystoragedrivers crates still require ulid 1. No public type exposes `ulid::Ulid`; `Key` remains a `String` newtype, so the change is internal. Features
TestsNo supported feature-to-test mapping was produced. Test execution is not inferred. FindingsNo active actionable findings. Before mergeNone. Agent review detailscritique
security
tests
commits
description
Evidence and run details
|
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
Summary
Move
tinyflows-storageto ulid 3. ulid 3 replacesUlid::new()withUlid::generate(), which produces the same 26-character, time-ordered ids.Key::ulidandKey::ulid_at(crates/tinyflows-storage/src/key.rs) switch to it.Key::ulid_atstill keeps the caller's timestamp and takes only the random part from a fresh id.This supersedes dependabot's #187, which only bumped the version and failed to compile (E0599 at
key.rs:119and:127).Related issue
Supersedes #187.
API or behavior changes
None. No public type exposes
ulid::Ulid;Keyis aStringnewtype.Validation
On a Linux build host, against main f778023:
cargo test --workspace --locked: 2816 passed, 0 failed, 35 ignored, the same as main. tinyflows_storage 18 (+3 doctests), tinyflows_drivers 420.cargo +1.88.0 check --workspace --locked(MSRV): passes.cargo clippywith-D warnings: 0 items.cargo fmt --check: clean.cargo tree -i ulid@3.0.0shows onlytinyflows-storageand its dependents.Tests
No new tests. The existing
tinyflows-storageandtinyflows-driverskey and id tests cover the generated ids.Summary by CodeRabbit