Skip to content

Make monodex install cleanly and support relative config paths#73

Merged
octogonz merged 12 commits into
microsoft:mainfrom
octogonz:main
Jun 19, 2026
Merged

Make monodex install cleanly and support relative config paths#73
octogonz merged 12 commits into
microsoft:mainfrom
octogonz:main

Conversation

@octogonz

@octogonz octogonz commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator

cargo install monodex previously failed on a clean machine with an OpenSSL build error. Monodex now uses a pure-Rust TLS stack, so it installs with no system OpenSSL and no C toolchain required.

database.path and catalogs.<name>.path in monodex-config.json now accept ./ and ../ paths, resolved against the config file's folder, so a config plus its database and catalogs can be relocated as a portable bundle. Absolute paths still work; bare names are rejected.

Also adds rustup setup guidance to the prerequisites for developers new to Rust.

How it was tested:

Before this PR: cargo install monodex failed on a Debian machine that was missing libssl-dev

After this PR: cargo install monodex completed successfully on the same machine.

octogonz added 5 commits June 18, 2026 22:54
Move the crates that pulled native-tls onto rustls so the build needs no
OpenSSL headers and no C toolchain for TLS:
  - ort: default-features = false, tls-rustls
  - hf-hub: default-features = false, rustls-tls
  - jsonschema (dev-dep): default-features = false, tls-ring
lancedb needed no change; its transitive reqwest already used rustls.

The crypto backend is ring. jsonschema's default features would otherwise
activate rustls/aws-lc-rs and, via feature unification, pull aws-lc-sys into
the test build; tls-ring keeps both the install graph and the test graph
free of it.
database.path and catalogs.<name>.path now accept relative paths
starting with ./ or ../, resolved against the folder containing
monodex-config.json. Bare names (like default-db without ./) are
rejected. Tilde and environment variables remain unsupported.

Updated validator, tests, JSON Schema, README, example config, and
design docs to match.
…h invariant

The validate_config_path doc-comment was glued to normalize_path with no
blank line, so it attached to the wrong function and validate_config_path
ended up undocumented. Move normalize_path above validate_config_path and
place each doc-comment directly above its own function.

Add a debug_assert in normalize_path documenting the invariant that callers
always pass an absolute path (config_folder joined with a relative segment).
octogonz added 7 commits June 18, 2026 23:01
The CHANGELOG header forbids naming internal code identifiers. Replace
the entry that named ort, hf-hub, lancedb, rustls, and ring with a
user-facing description: Monodex no longer requires OpenSSL or a C/C++
build toolchain to install, and cargo install works on a clean machine.
The # Panics section said 'Does not panic', but the function body has a
debug_assert! that panics in debug builds when the input is not absolute.
Reword to state that it panics in debug builds on non-absolute input and
does not panic in release builds.
The schema-validation tests only use Validator::new and is_valid against
local, in-memory schemas. The resolve-http, resolve-file, and tls-ring
features were unused weight. Removing them drops rustls and ring from the
dev dependency graph entirely.
Introduce deny.toml with bans on aws-lc-sys and openssl-sys, and
duplicate-version denials for tantivy, lance, lancedb, arrow-array,
arrow-schema, arrow-buffer, ort, and ort-sys. Advisory check uses
unmaintained=workspace so transitive unmaintained-crate warnings
don't fire; vulnerability and unsound advisories still fail anywhere
in the graph.

Add 'deny' recipe to justfile and wire it into the 'ci' recipe.
Add cargo-deny install and check step to CI workflow, with
~/.cargo/bin added to the cache paths.
…se check deferred)

Remove BL40 from backlog — the cargo-deny duplicate-version guard
introduced in the previous commit is its implementation. Update
architecture.md to reference the CI-enforced check rather than a
manual monodex v0.6.2 (/home/owner/code/monodex)
├── anyhow v1.0.102
├── arrow-array v57.3.1
│   ├── ahash v0.8.12
│   │   ├── cfg-if v1.0.4
│   │   ├── getrandom v0.3.4
│   │   │   ├── cfg-if v1.0.4
│   │   │   └── libc v0.2.186
│   │   ├── once_cell v1.21.4
│   │   ├── serde v1.0.228
│   │   │   ├── serde_core v1.0.228
│   │   │   └── serde_derive v1.0.228 (proc-macro)
│   │   │       ├── proc-macro2 v1.0.106
│   │   │       │   └── unicode-ident v1.0.24
│   │   │       ├── quote v1.0.45
│   │   │       │   └── proc-macro2 v1.0.106 (*)
│   │   │       └── syn v2.0.118
│   │   │           ├── proc-macro2 v1.0.106 (*)
│   │   │           ├── quote v1.0.45 (*)
│   │   │           └── unicode-ident v1.0.24
│   │   └── zerocopy v0.8.52
│   │       └── zerocopy-derive v0.8.52 (proc-macro)
│   │           ├── proc-macro2 v1.0.106 (*)
│   │           ├── quote v1.0.45 (*)
│   │           └── syn v2.0.118 (*)
│   │   [build-dependencies]
│   │   └── version_check v0.9.5
│   ├── arrow-buffer v57.3.1
│   │   ├── bytes v1.12.0
│   │   ├── half v2.7.1
│   │   │   ├── cfg-if v1.0.4
│   │   │   ├── num-traits v0.2.19
│   │   │   │   └── libm v0.2.16
│   │   │   │   [build-dependencies]
│   │   │   │   └── autocfg v1.5.1
│   │   │   └── zerocopy v0.8.52 (*)
│   │   ├── num-bigint v0.4.6
│   │   │   ├── num-integer v0.1.46
│   │   │   │   └── num-traits v0.2.19 (*)
│   │   │   └── num-traits v0.2.19 (*)
│   │   └── num-traits v0.2.19 (*)
│   ├── arrow-data v57.3.1
│   │   ├── arrow-buffer v57.3.1 (*)
│   │   ├── arrow-schema v57.3.1
│   │   │   ├── bitflags v2.13.0
│   │   │   ├── serde_core v1.0.228
│   │   │   └── serde_json v1.0.150
│   │   │       ├── itoa v1.0.18
│   │   │       ├── memchr v2.8.2
│   │   │       ├── serde_core v1.0.228
│   │   │       └── zmij v1.0.21
│   │   ├── half v2.7.1 (*)
│   │   ├── num-integer v0.1.46 (*)
│   │   └── num-traits v0.2.19 (*)
│   ├── arrow-schema v57.3.1 (*)
│   ├── chrono v0.4.45
│   │   ├── iana-time-zone v0.1.65
│   │   ├── num-traits v0.2.19 (*)
│   │   └── serde v1.0.228 (*)
│   ├── chrono-tz v0.10.4
│   │   ├── chrono v0.4.45 (*)
│   │   └── phf v0.12.1
│   │       └── phf_shared v0.12.1
│   │           └── siphasher v1.0.3
│   ├── half v2.7.1 (*)
│   ├── hashbrown v0.16.1
│   │   ├── allocator-api2 v0.2.21
│   │   ├── equivalent v1.0.2
│   │   └── foldhash v0.2.0
│   ├── num-complex v0.4.6
│   │   └── num-traits v0.2.19 (*)
│   ├── num-integer v0.1.46 (*)
│   └── num-traits v0.2.19 (*)
├── arrow-buffer v57.3.1 (*)
├── arrow-schema v57.3.1 (*)
├── clap v4.6.1
│   ├── clap_builder v4.6.0
│   │   ├── anstream v1.0.0
│   │   │   ├── anstyle v1.0.14
│   │   │   ├── anstyle-parse v1.0.0
│   │   │   │   └── utf8parse v0.2.2
│   │   │   ├── anstyle-query v1.1.5
│   │   │   ├── colorchoice v1.0.5
│   │   │   ├── is_terminal_polyfill v1.70.2
│   │   │   └── utf8parse v0.2.2
│   │   ├── anstyle v1.0.14
│   │   ├── clap_lex v1.1.0
│   │   └── strsim v0.11.1
│   └── clap_derive v4.6.1 (proc-macro)
│       ├── heck v0.5.0
│       ├── proc-macro2 v1.0.106 (*)
│       ├── quote v1.0.45 (*)
│       └── syn v2.0.118 (*)
├── crossbeam-channel v0.5.15
│   └── crossbeam-utils v0.8.21
├── dirs v5.0.1
│   └── dirs-sys v0.4.1
│       ├── libc v0.2.186
│       └── option-ext v0.2.0
├── fs4 v0.12.0
│   └── rustix v0.38.44
│       ├── bitflags v2.13.0
│       └── linux-raw-sys v0.4.15
├── futures v0.3.32
│   ├── futures-channel v0.3.32
│   │   ├── futures-core v0.3.32
│   │   └── futures-sink v0.3.32
│   ├── futures-core v0.3.32
│   ├── futures-executor v0.3.32
│   │   ├── futures-core v0.3.32
│   │   ├── futures-task v0.3.32
│   │   └── futures-util v0.3.32
│   │       ├── futures-channel v0.3.32 (*)
│   │       ├── futures-core v0.3.32
│   │       ├── futures-io v0.3.32
│   │       ├── futures-macro v0.3.32 (proc-macro)
│   │       │   ├── proc-macro2 v1.0.106 (*)
│   │       │   ├── quote v1.0.45 (*)
│   │       │   └── syn v2.0.118 (*)
│   │       ├── futures-sink v0.3.32
│   │       ├── futures-task v0.3.32
│   │       ├── memchr v2.8.2
│   │       ├── pin-project-lite v0.2.17
│   │       └── slab v0.4.12
│   ├── futures-io v0.3.32
│   ├── futures-sink v0.3.32
│   ├── futures-task v0.3.32
│   └── futures-util v0.3.32 (*)
├── github-slugger v0.1.0
│   ├── once_cell v1.21.4
│   └── regex v1.12.4
│       ├── aho-corasick v1.1.4
│       │   └── memchr v2.8.2
│       ├── memchr v2.8.2
│       ├── regex-automata v0.4.14
│       │   ├── aho-corasick v1.1.4 (*)
│       │   ├── memchr v2.8.2
│       │   └── regex-syntax v0.8.11
│       └── regex-syntax v0.8.11
├── gix v0.81.0
│   ├── gix-actor v0.40.0
│   │   ├── bstr v1.12.1
│   │   │   ├── memchr v2.8.2
│   │   │   └── regex-automata v0.4.14 (*)
│   │   ├── gix-date v0.15.4
│   │   │   ├── bstr v1.12.1 (*)
│   │   │   ├── gix-error v0.2.4
│   │   │   │   └── bstr v1.12.1 (*)
│   │   │   ├── itoa v1.0.18
│   │   │   └── jiff v0.2.28
│   │   ├── gix-error v0.2.4 (*)
│   │   └── winnow v0.7.15
│   │       └── memchr v2.8.2
│   ├── gix-archive v0.30.0
│   │   ├── bstr v1.12.1 (*)
│   │   ├── gix-date v0.15.4 (*)
│   │   ├── gix-error v0.2.4 (*)
│   │   ├── gix-object v0.58.0
│   │   │   ├── bstr v1.12.1 (*)
│   │   │   ├── gix-actor v0.40.0 (*)
│   │   │   ├── gix-date v0.15.4 (*)
│   │   │   ├── gix-features v0.46.2
│   │   │   │   ├── bytes v1.12.0
│   │   │   │   ├── bytesize v2.4.0
│   │   │   │   ├── crc32fast v1.5.0
│   │   │   │   │   └── cfg-if v1.0.4
│   │   │   │   ├── crossbeam-channel v0.5.15 (*)
│   │   │   │   ├── gix-path v0.11.3
│   │   │   │   │   ├── bstr v1.12.1 (*)
│   │   │   │   │   ├── gix-trace v0.1.20
│   │   │   │   │   ├── gix-validate v0.11.2
│   │   │   │   │   │   └── bstr v1.12.1 (*)
│   │   │   │   │   └── thiserror v2.0.18
│   │   │   │   │       └── thiserror-impl v2.0.18 (proc-macro)
│   │   │   │   │           ├── proc-macro2 v1.0.106 (*)
│   │   │   │   │           ├── quote v1.0.45 (*)
│   │   │   │   │           └── syn v2.0.118 (*)
│   │   │   │   ├── gix-trace v0.1.20
│   │   │   │   ├── gix-utils v0.3.3
│   │   │   │   │   ├── bstr v1.12.1 (*)
│   │   │   │   │   ├── fastrand v2.4.1
│   │   │   │   │   └── unicode-normalization v0.1.25
│   │   │   │   │       └── tinyvec v1.11.0
│   │   │   │   │           └── tinyvec_macros v0.1.1
│   │   │   │   ├── libc v0.2.186
│   │   │   │   ├── once_cell v1.21.4
│   │   │   │   ├── parking_lot v0.12.5
│   │   │   │   │   ├── lock_api v0.4.14
│   │   │   │   │   │   └── scopeguard v1.2.0
│   │   │   │   │   └── parking_lot_core v0.9.12
│   │   │   │   │       ├── cfg-if v1.0.4
│   │   │   │   │       ├── libc v0.2.186
│   │   │   │   │       └── smallvec v1.15.2
│   │   │   │   ├── prodash v31.0.0
│   │   │   │   │   ├── bytesize v2.4.0
│   │   │   │   │   ├── human_format v1.2.1
│   │   │   │   │   └── parking_lot v0.12.5 (*)
│   │   │   │   ├── thiserror v2.0.18 (*)
│   │   │   │   ├── walkdir v2.5.0
│   │   │   │   │   └── same-file v1.0.6
│   │   │   │   └── zlib-rs v0.6.3
│   │   │   ├── gix-hash v0.23.0
│   │   │   │   ├── faster-hex v0.10.0
│   │   │   │   │   └── heapless v0.8.0
│   │   │   │   │       ├── hash32 v0.3.1
│   │   │   │   │       │   └── byteorder v1.5.0
│   │   │   │   │       └── stable_deref_trait v1.2.1
│   │   │   │   ├── gix-features v0.46.2 (*)
│   │   │   │   ├── sha1-checked v0.10.0
│   │   │   │   │   ├── digest v0.10.7
│   │   │   │   │   │   ├── block-buffer v0.10.4
│   │   │   │   │   │   │   └── generic-array v0.14.7
│   │   │   │   │   │   │       └── typenum v1.20.1
│   │   │   │   │   │   │       [build-dependencies]
│   │   │   │   │   │   │       └── version_check v0.9.5
│   │   │   │   │   │   ├── crypto-common v0.1.7
│   │   │   │   │   │   │   ├── generic-array v0.14.7 (*)
│   │   │   │   │   │   │   └── typenum v1.20.1
│   │   │   │   │   │   └── subtle v2.6.1
│   │   │   │   │   └── sha1 v0.10.6
│   │   │   │   │       ├── cfg-if v1.0.4
│   │   │   │   │       ├── cpufeatures v0.2.17
│   │   │   │   │       └── digest v0.10.7 (*)
│   │   │   │   └── thiserror v2.0.18 (*)
│   │   │   ├── gix-hashtable v0.13.0
│   │   │   │   ├── gix-hash v0.23.0 (*)
│   │   │   │   ├── hashbrown v0.16.1 (*)
│   │   │   │   └── parking_lot v0.12.5 (*)
│   │   │   ├── gix-path v0.11.3 (*)
│   │   │   ├── gix-utils v0.3.3 (*)
│   │   │   ├── gix-validate v0.11.2 (*)
│   │   │   ├── itoa v1.0.18
│   │   │   ├── smallvec v1.15.2
│   │   │   ├── thiserror v2.0.18 (*)
│   │   │   └── winnow v0.7.15 (*)
│   │   └── gix-worktree-stream v0.30.0
│   │       ├── gix-attributes v0.31.0
│   │       │   ├── bstr v1.12.1 (*)
│   │       │   ├── gix-glob v0.24.0
│   │       │   │   ├── bitflags v2.13.0
│   │       │   │   ├── bstr v1.12.1 (*)
│   │       │   │   ├── gix-features v0.46.2 (*)
│   │       │   │   └── gix-path v0.11.3 (*)
│   │       │   ├── gix-path v0.11.3 (*)
│   │       │   ├── gix-quote v0.7.2
│   │       │   │   ├── bstr v1.12.1 (*)
│   │       │   │   ├── gix-error v0.2.4 (*)
│   │       │   │   └── gix-utils v0.3.3 (*)
│   │       │   ├── gix-trace v0.1.20
│   │       │   ├── kstring v2.0.2
│   │       │   │   └── static_assertions v1.1.0
│   │       │   ├── smallvec v1.15.2
│   │       │   ├── thiserror v2.0.18 (*)
│   │       │   └── unicode-bom v2.0.3
│   │       ├── gix-error v0.2.4 (*)
│   │       ├── gix-features v0.46.2 (*)
│   │       ├── gix-filter v0.28.0
│   │       │   ├── bstr v1.12.1 (*)
│   │       │   ├── encoding_rs v0.8.35
│   │       │   │   └── cfg-if v1.0.4
│   │       │   ├── gix-attributes v0.31.0 (*)
│   │       │   ├── gix-command v0.8.1
│   │       │   │   ├── bstr v1.12.1 (*)
│   │       │   │   ├── gix-path v0.11.3 (*)
│   │       │   │   ├── gix-quote v0.7.2 (*)
│   │       │   │   ├── gix-trace v0.1.20
│   │       │   │   └── shell-words v1.1.1
│   │       │   ├── gix-hash v0.23.0 (*)
│   │       │   ├── gix-object v0.58.0 (*)
│   │       │   ├── gix-packetline v0.21.5
│   │       │   │   ├── bstr v1.12.1 (*)
│   │       │   │   ├── faster-hex v0.10.0 (*)
│   │       │   │   ├── gix-trace v0.1.20
│   │       │   │   └── thiserror v2.0.18 (*)
│   │       │   ├── gix-path v0.11.3 (*)
│   │       │   ├── gix-quote v0.7.2 (*)
│   │       │   ├── gix-trace v0.1.20
│   │       │   ├── gix-utils v0.3.3 (*)
│   │       │   ├── smallvec v1.15.2
│   │       │   └── thiserror v2.0.18 (*)
│   │       ├── gix-fs v0.19.2
│   │       │   ├── bstr v1.12.1 (*)
│   │       │   ├── fastrand v2.4.1
│   │       │   ├── gix-features v0.46.2 (*)
│   │       │   ├── gix-path v0.11.3 (*)
│   │       │   ├── gix-utils v0.3.3 (*)
│   │       │   └── thiserror v2.0.18 (*)
│   │       ├── gix-hash v0.23.0 (*)
│   │       ├── gix-object v0.58.0 (*)
│   │       ├── gix-path v0.11.3 (*)
│   │       ├── gix-traverse v0.55.0
│   │       │   ├── bitflags v2.13.0
│   │       │   ├── gix-commitgraph v0.35.0
│   │       │   │   ├── bstr v1.12.1 (*)
│   │       │   │   ├── gix-chunk v0.7.2
│   │       │   │   │   └── gix-error v0.2.4 (*)
│   │       │   │   ├── gix-error v0.2.4 (*)
│   │       │   │   ├── gix-hash v0.23.0 (*)
│   │       │   │   ├── memmap2 v0.9.10
│   │       │   │   │   └── libc v0.2.186
│   │       │   │   └── nonempty v0.12.0
│   │       │   ├── gix-date v0.15.4 (*)
│   │       │   ├── gix-hash v0.23.0 (*)
│   │       │   ├── gix-hashtable v0.13.0 (*)
│   │       │   ├── gix-object v0.58.0 (*)
│   │       │   ├── gix-revwalk v0.29.0
│   │       │   │   ├── gix-commitgraph v0.35.0 (*)
│   │       │   │   ├── gix-date v0.15.4 (*)
│   │       │   │   ├── gix-error v0.2.4 (*)
│   │       │   │   ├── gix-hash v0.23.0 (*)
│   │       │   │   ├── gix-hashtable v0.13.0 (*)
│   │       │   │   ├── gix-object v0.58.0 (*)
│   │       │   │   ├── smallvec v1.15.2
│   │       │   │   └── thiserror v2.0.18 (*)
│   │       │   ├── smallvec v1.15.2
│   │       │   └── thiserror v2.0.18 (*)
│   │       └── parking_lot v0.12.5 (*)
│   ├── gix-attributes v0.31.0 (*)
│   ├── gix-blame v0.11.0
│   │   ├── gix-commitgraph v0.35.0 (*)
│   │   ├── gix-date v0.15.4 (*)
│   │   ├── gix-diff v0.61.0
│   │   │   ├── bstr v1.12.1 (*)
│   │   │   ├── gix-attributes v0.31.0 (*)
│   │   │   ├── gix-command v0.8.1 (*)
│   │   │   ├── gix-filter v0.28.0 (*)
│   │   │   ├── gix-fs v0.19.2 (*)
│   │   │   ├── gix-hash v0.23.0 (*)
│   │   │   ├── gix-index v0.49.0
│   │   │   │   ├── bitflags v2.13.0
│   │   │   │   ├── bstr v1.12.1 (*)
│   │   │   │   ├── filetime v0.2.29
│   │   │   │   │   ├── cfg-if v1.0.4
│   │   │   │   │   └── libc v0.2.186
│   │   │   │   ├── fnv v1.0.7
│   │   │   │   ├── gix-bitmap v0.3.2
│   │   │   │   │   └── gix-error v0.2.4 (*)
│   │   │   │   ├── gix-features v0.46.2 (*)
│   │   │   │   ├── gix-fs v0.19.2 (*)
│   │   │   │   ├── gix-hash v0.23.0 (*)
│   │   │   │   ├── gix-lock v21.0.2
│   │   │   │   │   ├── gix-tempfile v21.0.2
│   │   │   │   │   │   ├── dashmap v6.2.1
│   │   │   │   │   │   │   ├── cfg-if v1.0.4
│   │   │   │   │   │   │   ├── crossbeam-utils v0.8.21
│   │   │   │   │   │   │   ├── hashbrown v0.14.5
│   │   │   │   │   │   │   ├── lock_api v0.4.14 (*)
│   │   │   │   │   │   │   ├── once_cell v1.21.4
│   │   │   │   │   │   │   └── parking_lot_core v0.9.12 (*)
│   │   │   │   │   │   ├── gix-fs v0.19.2 (*)
│   │   │   │   │   │   ├── libc v0.2.186
│   │   │   │   │   │   ├── parking_lot v0.12.5 (*)
│   │   │   │   │   │   ├── signal-hook v0.4.4
│   │   │   │   │   │   │   ├── libc v0.2.186
│   │   │   │   │   │   │   └── signal-hook-registry v1.4.8
│   │   │   │   │   │   │       ├── errno v0.3.14
│   │   │   │   │   │   │       │   └── libc v0.2.186
│   │   │   │   │   │   │       └── libc v0.2.186
│   │   │   │   │   │   ├── signal-hook-registry v1.4.8 (*)
│   │   │   │   │   │   └── tempfile v3.27.0
│   │   │   │   │   │       ├── fastrand v2.4.1
│   │   │   │   │   │       ├── getrandom v0.4.3
│   │   │   │   │   │       │   ├── cfg-if v1.0.4
│   │   │   │   │   │       │   ├── libc v0.2.186
│   │   │   │   │   │       │   └── rand_core v0.10.1
│   │   │   │   │   │       ├── once_cell v1.21.4
│   │   │   │   │   │       └── rustix v1.1.4
│   │   │   │   │   │           ├── bitflags v2.13.0
│   │   │   │   │   │           └── linux-raw-sys v0.12.1
│   │   │   │   │   ├── gix-utils v0.3.3 (*)
│   │   │   │   │   └── thiserror v2.0.18 (*)
│   │   │   │   ├── gix-object v0.58.0 (*)
│   │   │   │   ├── gix-traverse v0.55.0 (*)
│   │   │   │   ├── gix-utils v0.3.3 (*)
│   │   │   │   ├── gix-validate v0.11.2 (*)
│   │   │   │   ├── hashbrown v0.16.1 (*)
│   │   │   │   ├── itoa v1.0.18
│   │   │   │   ├── libc v0.2.186
│   │   │   │   ├── memmap2 v0.9.10 (*)
│   │   │   │   ├── rustix v1.1.4 (*)
│   │   │   │   ├── smallvec v1.15.2
│   │   │   │   └── thiserror v2.0.18 (*)
│   │   │   ├── gix-object v0.58.0 (*)
│   │   │   ├── gix-path v0.11.3 (*)
│   │   │   ├── gix-pathspec v0.16.1
│   │   │   │   ├── bitflags v2.13.0
│   │   │   │   ├── bstr v1.12.1 (*)
│   │   │   │   ├── gix-attributes v0.31.0 (*)
│   │   │   │   ├── gix-config-value v0.17.2
│   │   │   │   │   ├── bitflags v2.13.0
│   │   │   │   │   ├── bstr v1.12.1 (*)
│   │   │   │   │   ├── gix-path v0.11.3 (*)
│   │   │   │   │   ├── libc v0.2.186
│   │   │   │   │   └── thiserror v2.0.18 (*)
│   │   │   │   ├── gix-glob v0.24.0 (*)
│   │   │   │   ├── gix-path v0.11.3 (*)
│   │   │   │   └── thiserror v2.0.18 (*)
│   │   │   ├── gix-tempfile v21.0.2 (*)
│   │   │   ├── gix-trace v0.1.20
│   │   │   ├── gix-traverse v0.55.0 (*)
│   │   │   ├── gix-worktree v0.50.0
│   │   │   │   ├── bstr v1.12.1 (*)
│   │   │   │   ├── gix-attributes v0.31.0 (*)
│   │   │   │   ├── gix-fs v0.19.2 (*)
│   │   │   │   ├── gix-glob v0.24.0 (*)
│   │   │   │   ├── gix-hash v0.23.0 (*)
│   │   │   │   ├── gix-ignore v0.19.1
│   │   │   │   │   ├── bstr v1.12.1 (*)
│   │   │   │   │   ├── gix-glob v0.24.0 (*)
│   │   │   │   │   ├── gix-path v0.11.3 (*)
│   │   │   │   │   ├── gix-trace v0.1.20
│   │   │   │   │   └── unicode-bom v2.0.3
│   │   │   │   ├── gix-index v0.49.0 (*)
│   │   │   │   ├── gix-object v0.58.0 (*)
│   │   │   │   ├── gix-path v0.11.3 (*)
│   │   │   │   └── gix-validate v0.11.2 (*)
│   │   │   ├── imara-diff v0.1.8
│   │   │   │   └── hashbrown v0.15.5
│   │   │   │       ├── allocator-api2 v0.2.21
│   │   │   │       ├── equivalent v1.0.2
│   │   │   │       └── foldhash v0.1.5
│   │   │   ├── imara-diff v0.2.0
│   │   │   │   ├── hashbrown v0.15.5 (*)
│   │   │   │   └── memchr v2.8.2
│   │   │   └── thiserror v2.0.18 (*)
│   │   ├── gix-error v0.2.4 (*)
│   │   ├── gix-hash v0.23.0 (*)
│   │   ├── gix-object v0.58.0 (*)
│   │   ├── gix-revwalk v0.29.0 (*)
│   │   ├── gix-trace v0.1.20
│   │   ├── gix-traverse v0.55.0 (*)
│   │   ├── gix-worktree v0.50.0 (*)
│   │   ├── smallvec v1.15.2
│   │   └── thiserror v2.0.18 (*)
│   ├── gix-command v0.8.1 (*)
│   ├── gix-commitgraph v0.35.0 (*)
│   ├── gix-config v0.54.0
│   │   ├── bstr v1.12.1 (*)
│   │   ├── gix-config-value v0.17.2 (*)
│   │   ├── gix-features v0.46.2 (*)
│   │   ├── gix-glob v0.24.0 (*)
│   │   ├── gix-path v0.11.3 (*)
│   │   ├── gix-ref v0.61.0
│   │   │   ├── gix-actor v0.40.0 (*)
│   │   │   ├── gix-features v0.46.2 (*)
│   │   │   ├── gix-fs v0.19.2 (*)
│   │   │   ├── gix-hash v0.23.0 (*)
│   │   │   ├── gix-lock v21.0.2 (*)
│   │   │   ├── gix-object v0.58.0 (*)
│   │   │   ├── gix-path v0.11.3 (*)
│   │   │   ├── gix-tempfile v21.0.2 (*)
│   │   │   ├── gix-utils v0.3.3 (*)
│   │   │   ├── gix-validate v0.11.2 (*)
│   │   │   ├── memmap2 v0.9.10 (*)
│   │   │   ├── thiserror v2.0.18 (*)
│   │   │   └── winnow v0.7.15 (*)
│   │   ├── gix-sec v0.13.3
│   │   │   ├── bitflags v2.13.0
│   │   │   └── libc v0.2.186
│   │   ├── memchr v2.8.2
│   │   ├── smallvec v1.15.2
│   │   ├── thiserror v2.0.18 (*)
│   │   ├── unicode-bom v2.0.3
│   │   └── winnow v0.7.15 (*)
│   ├── gix-credentials v0.37.2
│   │   ├── bstr v1.12.1 (*)
│   │   ├── gix-command v0.8.1 (*)
│   │   ├── gix-config-value v0.17.2 (*)
│   │   ├── gix-date v0.15.4 (*)
│   │   ├── gix-path v0.11.3 (*)
│   │   ├── gix-prompt v0.14.2
│   │   │   ├── gix-command v0.8.1 (*)
│   │   │   ├── gix-config-value v0.17.2 (*)
│   │   │   ├── parking_lot v0.12.5 (*)
│   │   │   ├── rustix v1.1.4 (*)
│   │   │   └── thiserror v2.0.18 (*)
│   │   ├── gix-sec v0.13.3 (*)
│   │   ├── gix-trace v0.1.20
│   │   ├── gix-url v0.35.3
│   │   │   ├── bstr v1.12.1 (*)
│   │   │   ├── gix-path v0.11.3 (*)
│   │   │   ├── percent-encoding v2.3.2
│   │   │   └── thiserror v2.0.18 (*)
│   │   └── thiserror v2.0.18 (*)
│   ├── gix-date v0.15.4 (*)
│   ├── gix-diff v0.61.0 (*)
│   ├── gix-dir v0.23.0
│   │   ├── bstr v1.12.1 (*)
│   │   ├── gix-discover v0.49.0
│   │   │   ├── bstr v1.12.1 (*)
│   │   │   ├── gix-fs v0.19.2 (*)
│   │   │   ├── gix-path v0.11.3 (*)
│   │   │   ├── gix-ref v0.61.0 (*)
│   │   │   ├── gix-sec v0.13.3 (*)
│   │   │   └── thiserror v2.0.18 (*)
│   │   ├── gix-fs v0.19.2 (*)
│   │   ├── gix-ignore v0.19.1 (*)
│   │   ├── gix-index v0.49.0 (*)
│   │   ├── gix-object v0.58.0 (*)
│   │   ├── gix-path v0.11.3 (*)
│   │   ├── gix-pathspec v0.16.1 (*)
│   │   ├── gix-trace v0.1.20
│   │   ├── gix-utils v0.3.3 (*)
│   │   ├── gix-worktree v0.50.0 (*)
│   │   └── thiserror v2.0.18 (*)
│   ├── gix-discover v0.49.0 (*)
│   ├── gix-error v0.2.4 (*)
│   ├── gix-features v0.46.2 (*)
│   ├── gix-filter v0.28.0 (*)
│   ├── gix-fs v0.19.2 (*)
│   ├── gix-glob v0.24.0 (*)
│   ├── gix-hash v0.23.0 (*)
│   ├── gix-hashtable v0.13.0 (*)
│   ├── gix-ignore v0.19.1 (*)
│   ├── gix-index v0.49.0 (*)
│   ├── gix-lock v21.0.2 (*)
│   ├── gix-mailmap v0.32.0
│   │   ├── bstr v1.12.1 (*)
│   │   ├── gix-actor v0.40.0 (*)
│   │   ├── gix-date v0.15.4 (*)
│   │   └── gix-error v0.2.4 (*)
│   ├── gix-negotiate v0.29.0
│   │   ├── bitflags v2.13.0
│   │   ├── gix-commitgraph v0.35.0 (*)
│   │   ├── gix-date v0.15.4 (*)
│   │   ├── gix-hash v0.23.0 (*)
│   │   ├── gix-object v0.58.0 (*)
│   │   └── gix-revwalk v0.29.0 (*)
│   ├── gix-object v0.58.0 (*)
│   ├── gix-odb v0.78.0
│   │   ├── arc-swap v1.9.1
│   │   │   └── rustversion v1.0.22 (proc-macro)
│   │   ├── gix-features v0.46.2 (*)
│   │   ├── gix-fs v0.19.2 (*)
│   │   ├── gix-hash v0.23.0 (*)
│   │   ├── gix-hashtable v0.13.0 (*)
│   │   ├── gix-object v0.58.0 (*)
│   │   ├── gix-pack v0.68.0
│   │   │   ├── clru v0.6.3
│   │   │   │   └── hashbrown v0.16.1 (*)
│   │   │   ├── gix-chunk v0.7.2 (*)
│   │   │   ├── gix-error v0.2.4 (*)
│   │   │   ├── gix-features v0.46.2 (*)
│   │   │   ├── gix-hash v0.23.0 (*)
│   │   │   ├── gix-hashtable v0.13.0 (*)
│   │   │   ├── gix-object v0.58.0 (*)
│   │   │   ├── gix-path v0.11.3 (*)
│   │   │   ├── memmap2 v0.9.10 (*)
│   │   │   ├── smallvec v1.15.2
│   │   │   ├── thiserror v2.0.18 (*)
│   │   │   └── uluru v3.1.0
│   │   │       └── arrayvec v0.7.6
│   │   ├── gix-path v0.11.3 (*)
│   │   ├── gix-quote v0.7.2 (*)
│   │   ├── parking_lot v0.12.5 (*)
│   │   ├── tempfile v3.27.0 (*)
│   │   └── thiserror v2.0.18 (*)
│   ├── gix-pack v0.68.0 (*)
│   ├── gix-path v0.11.3 (*)
│   ├── gix-pathspec v0.16.1 (*)
│   ├── gix-prompt v0.14.2 (*)
│   ├── gix-protocol v0.59.0
│   │   ├── bstr v1.12.1 (*)
│   │   ├── gix-date v0.15.4 (*)
│   │   ├── gix-features v0.46.2 (*)
│   │   ├── gix-hash v0.23.0 (*)
│   │   ├── gix-ref v0.61.0 (*)
│   │   ├── gix-shallow v0.10.0
│   │   │   ├── bstr v1.12.1 (*)
│   │   │   ├── gix-hash v0.23.0 (*)
│   │   │   ├── gix-lock v21.0.2 (*)
│   │   │   ├── nonempty v0.12.0
│   │   │   └── thiserror v2.0.18 (*)
│   │   ├── gix-transport v0.55.1
│   │   │   ├── bstr v1.12.1 (*)
│   │   │   ├── gix-command v0.8.1 (*)
│   │   │   ├── gix-features v0.46.2 (*)
│   │   │   ├── gix-packetline v0.21.5 (*)
│   │   │   ├── gix-quote v0.7.2 (*)
│   │   │   ├── gix-sec v0.13.3 (*)
│   │   │   ├── gix-url v0.35.3 (*)
│   │   │   └── thiserror v2.0.18 (*)
│   │   ├── gix-utils v0.3.3 (*)
│   │   ├── maybe-async v0.2.11 (proc-macro)
│   │   │   ├── proc-macro2 v1.0.106 (*)
│   │   │   ├── quote v1.0.45 (*)
│   │   │   └── syn v2.0.118 (*)
│   │   ├── nonempty v0.12.0
│   │   ├── thiserror v2.0.18 (*)
│   │   └── winnow v0.7.15 (*)
│   ├── gix-ref v0.61.0 (*)
│   ├── gix-refspec v0.39.0
│   │   ├── bstr v1.12.1 (*)
│   │   ├── gix-error v0.2.4 (*)
│   │   ├── gix-glob v0.24.0 (*)
│   │   ├── gix-hash v0.23.0 (*)
│   │   ├── gix-revision v0.43.0
│   │   │   ├── bitflags v2.13.0
│   │   │   ├── bstr v1.12.1 (*)
│   │   │   ├── gix-commitgraph v0.35.0 (*)
│   │   │   ├── gix-date v0.15.4 (*)
│   │   │   ├── gix-error v0.2.4 (*)
│   │   │   ├── gix-hash v0.23.0 (*)
│   │   │   ├── gix-hashtable v0.13.0 (*)
│   │   │   ├── gix-object v0.58.0 (*)
│   │   │   ├── gix-revwalk v0.29.0 (*)
│   │   │   ├── gix-trace v0.1.20
│   │   │   └── nonempty v0.12.0
│   │   ├── gix-validate v0.11.2 (*)
│   │   ├── smallvec v1.15.2
│   │   └── thiserror v2.0.18 (*)
│   ├── gix-revision v0.43.0 (*)
│   ├── gix-revwalk v0.29.0 (*)
│   ├── gix-sec v0.13.3 (*)
│   ├── gix-shallow v0.10.0 (*)
│   ├── gix-status v0.28.0
│   │   ├── bstr v1.12.1 (*)
│   │   ├── filetime v0.2.29 (*)
│   │   ├── gix-diff v0.61.0 (*)
│   │   ├── gix-dir v0.23.0 (*)
│   │   ├── gix-features v0.46.2 (*)
│   │   ├── gix-filter v0.28.0 (*)
│   │   ├── gix-fs v0.19.2 (*)
│   │   ├── gix-hash v0.23.0 (*)
│   │   ├── gix-index v0.49.0 (*)
│   │   ├── gix-object v0.58.0 (*)
│   │   ├── gix-path v0.11.3 (*)
│   │   ├── gix-pathspec v0.16.1 (*)
│   │   ├── gix-worktree v0.50.0 (*)
│   │   └── thiserror v2.0.18 (*)
│   ├── gix-submodule v0.28.0
│   │   ├── bstr v1.12.1 (*)
│   │   ├── gix-config v0.54.0 (*)
│   │   ├── gix-path v0.11.3 (*)
│   │   ├── gix-pathspec v0.16.1 (*)
│   │   ├── gix-refspec v0.39.0 (*)
│   │   ├── gix-url v0.35.3 (*)
│   │   └── thiserror v2.0.18 (*)
│   ├── gix-tempfile v21.0.2 (*)
│   ├── gix-trace v0.1.20
│   ├── gix-traverse v0.55.0 (*)
│   ├── gix-url v0.35.3 (*)
│   ├── gix-utils v0.3.3 (*)
│   ├── gix-validate v0.11.2 (*)
│   ├── gix-worktree v0.50.0 (*)
│   ├── gix-worktree-state v0.28.0
│   │   ├── bstr v1.12.1 (*)
│   │   ├── gix-features v0.46.2 (*)
│   │   ├── gix-filter v0.28.0 (*)
│   │   ├── gix-fs v0.19.2 (*)
│   │   ├── gix-index v0.49.0 (*)
│   │   ├── gix-object v0.58.0 (*)
│   │   ├── gix-path v0.11.3 (*)
│   │   ├── gix-worktree v0.50.0 (*)
│   │   ├── io-close v0.3.7
│   │   │   └── libc v0.2.186
│   │   └── thiserror v2.0.18 (*)
│   ├── gix-worktree-stream v0.30.0 (*)
│   ├── nonempty v0.12.0
│   ├── parking_lot v0.12.5 (*)
│   ├── regex v1.12.4 (*)
│   ├── signal-hook v0.4.4 (*)
│   ├── smallvec v1.15.2
│   └── thiserror v2.0.18 (*)
├── globset v0.4.18
│   ├── aho-corasick v1.1.4 (*)
│   ├── bstr v1.12.1 (*)
│   ├── log v0.4.32
│   ├── regex-automata v0.4.14 (*)
│   └── regex-syntax v0.8.11
├── hex v0.4.3
├── hf-hub v0.5.0
│   ├── dirs v6.0.0
│   │   └── dirs-sys v0.5.0
│   │       ├── libc v0.2.186
│   │       └── option-ext v0.2.0
│   ├── futures v0.3.32 (*)
│   ├── http v1.4.2
│   │   ├── bytes v1.12.0
│   │   └── itoa v1.0.18
│   ├── indicatif v0.18.4
│   │   ├── console v0.16.3
│   │   │   ├── libc v0.2.186
│   │   │   └── unicode-width v0.2.2
│   │   ├── portable-atomic v1.13.1
│   │   ├── unicode-width v0.2.2
│   │   └── unit-prefix v0.5.2
│   ├── libc v0.2.186
│   ├── log v0.4.32
│   ├── num_cpus v1.17.0
│   │   └── libc v0.2.186
│   ├── rand v0.9.4
│   │   ├── rand_chacha v0.9.0
│   │   │   ├── ppv-lite86 v0.2.21
│   │   │   │   └── zerocopy v0.8.52 (*)
│   │   │   └── rand_core v0.9.5
│   │   │       └── getrandom v0.3.4 (*)
│   │   └── rand_core v0.9.5 (*)
│   ├── reqwest v0.12.28
│   │   ├── base64 v0.22.1
│   │   ├── bytes v1.12.0
│   │   ├── encoding_rs v0.8.35 (*)
│   │   ├── futures-core v0.3.32
│   │   ├── futures-util v0.3.32 (*)
│   │   ├── h2 v0.4.15
│   │   │   ├── atomic-waker v1.1.2
│   │   │   ├── bytes v1.12.0
│   │   │   ├── fnv v1.0.7
│   │   │   ├── futures-core v0.3.32
│   │   │   ├── futures-sink v0.3.32
│   │   │   ├── http v1.4.2 (*)
│   │   │   ├── indexmap v2.14.0
│   │   │   │   ├── equivalent v1.0.2
│   │   │   │   └── hashbrown v0.17.1
│   │   │   ├── slab v0.4.12
│   │   │   ├── tokio v1.52.3
│   │   │   │   ├── bytes v1.12.0
│   │   │   │   ├── libc v0.2.186
│   │   │   │   ├── mio v1.2.1
│   │   │   │   │   └── libc v0.2.186
│   │   │   │   ├── parking_lot v0.12.5 (*)
│   │   │   │   ├── pin-project-lite v0.2.17
│   │   │   │   ├── signal-hook-registry v1.4.8 (*)
│   │   │   │   ├── socket2 v0.6.4
│   │   │   │   │   └── libc v0.2.186
│   │   │   │   └── tokio-macros v2.7.0 (proc-macro)
│   │   │   │       ├── proc-macro2 v1.0.106 (*)
│   │   │   │       ├── quote v1.0.45 (*)
│   │   │   │       └── syn v2.0.118 (*)
│   │   │   ├── tokio-util v0.7.18
│   │   │   │   ├── bytes v1.12.0
│   │   │   │   ├── futures-core v0.3.32
│   │   │   │   ├── futures-sink v0.3.32
│   │   │   │   ├── pin-project-lite v0.2.17
│   │   │   │   └── tokio v1.52.3 (*)
│   │   │   └── tracing v0.1.44
│   │   │       ├── pin-project-lite v0.2.17
│   │   │       ├── tracing-attributes v0.1.31 (proc-macro)
│   │   │       │   ├── proc-macro2 v1.0.106 (*)
│   │   │       │   ├── quote v1.0.45 (*)
│   │   │       │   └── syn v2.0.118 (*)
│   │   │       └── tracing-core v0.1.36
│   │   │           └── once_cell v1.21.4
│   │   ├── http v1.4.2 (*)
│   │   ├── http-body v1.0.1
│   │   │   ├── bytes v1.12.0
│   │   │   └── http v1.4.2 (*)
│   │   ├── http-body-util v0.1.3
│   │   │   ├── bytes v1.12.0
│   │   │   ├── futures-core v0.3.32
│   │   │   ├── http v1.4.2 (*)
│   │   │   ├── http-body v1.0.1 (*)
│   │   │   └── pin-project-lite v0.2.17
│   │   ├── hyper v1.10.1
│   │   │   ├── atomic-waker v1.1.2
│   │   │   ├── bytes v1.12.0
│   │   │   ├── futures-channel v0.3.32 (*)
│   │   │   ├── futures-core v0.3.32
│   │   │   ├── h2 v0.4.15 (*)
│   │   │   ├── http v1.4.2 (*)
│   │   │   ├── http-body v1.0.1 (*)
│   │   │   ├── httparse v1.10.1
│   │   │   ├── itoa v1.0.18
│   │   │   ├── pin-project-lite v0.2.17
│   │   │   ├── smallvec v1.15.2
│   │   │   ├── tokio v1.52.3 (*)
│   │   │   └── want v0.3.1
│   │   │       └── try-lock v0.2.5
│   │   ├── hyper-rustls v0.27.9
│   │   │   ├── http v1.4.2 (*)
│   │   │   ├── hyper v1.10.1 (*)
│   │   │   ├── hyper-util v0.1.20
│   │   │   │   ├── base64 v0.22.1
│   │   │   │   ├── bytes v1.12.0
│   │   │   │   ├── futures-channel v0.3.32 (*)
│   │   │   │   ├── futures-util v0.3.32 (*)
│   │   │   │   ├── http v1.4.2 (*)
│   │   │   │   ├── http-body v1.0.1 (*)
│   │   │   │   ├── hyper v1.10.1 (*)
│   │   │   │   ├── ipnet v2.12.0
│   │   │   │   ├── libc v0.2.186
│   │   │   │   ├── percent-encoding v2.3.2
│   │   │   │   ├── pin-project-lite v0.2.17
│   │   │   │   ├── socket2 v0.6.4 (*)
│   │   │   │   ├── tokio v1.52.3 (*)
│   │   │   │   ├── tower-service v0.3.3
│   │   │   │   └── tracing v0.1.44 (*)
│   │   │   ├── rustls v0.23.40
│   │   │   │   ├── log v0.4.32
│   │   │   │   ├── once_cell v1.21.4
│   │   │   │   ├── ring v0.17.14
│   │   │   │   │   ├── cfg-if v1.0.4
│   │   │   │   │   ├── getrandom v0.2.17
│   │   │   │   │   │   ├── cfg-if v1.0.4
│   │   │   │   │   │   └── libc v0.2.186
│   │   │   │   │   └── untrusted v0.9.0
│   │   │   │   │   [build-dependencies]
│   │   │   │   │   └── cc v1.2.64
│   │   │   │   │       ├── find-msvc-tools v0.1.9
│   │   │   │   │       ├── jobserver v0.1.34
│   │   │   │   │       │   └── libc v0.2.186
│   │   │   │   │       ├── libc v0.2.186
│   │   │   │   │       └── shlex v2.0.1
│   │   │   │   ├── rustls-pki-types v1.14.1
│   │   │   │   │   └── zeroize v1.9.0
│   │   │   │   ├── rustls-webpki v0.103.13
│   │   │   │   │   ├── ring v0.17.14 (*)
│   │   │   │   │   ├── rustls-pki-types v1.14.1 (*)
│   │   │   │   │   └── untrusted v0.9.0
│   │   │   │   ├── subtle v2.6.1
│   │   │   │   └── zeroize v1.9.0
│   │   │   ├── rustls-native-certs v0.8.4
│   │   │   │   ├── openssl-probe v0.2.1
│   │   │   │   └── rustls-pki-types v1.14.1 (*)
│   │   │   ├── tokio v1.52.3 (*)
│   │   │   ├── tokio-rustls v0.26.4
│   │   │   │   ├── rustls v0.23.40 (*)
│   │   │   │   └── tokio v1.52.3 (*)
│   │   │   ├── tower-service v0.3.3
│   │   │   └── webpki-roots v1.0.8
│   │   │       └── rustls-pki-types v1.14.1 (*)
│   │   ├── hyper-util v0.1.20 (*)
│   │   ├── log v0.4.32
│   │   ├── mime v0.3.17
│   │   ├── mime_guess v2.0.5
│   │   │   ├── mime v0.3.17
│   │   │   └── unicase v2.9.0
│   │   │   [build-dependencies]
│   │   │   └── unicase v2.9.0
│   │   ├── percent-encoding v2.3.2
│   │   ├── pin-project-lite v0.2.17
│   │   ├── rustls v0.23.40 (*)
│   │   ├── rustls-native-certs v0.8.4 (*)
│   │   ├── rustls-pki-types v1.14.1 (*)
│   │   ├── serde v1.0.228 (*)
│   │   ├── serde_json v1.0.150 (*)
│   │   ├── serde_urlencoded v0.7.1
│   │   │   ├── form_urlencoded v1.2.2
│   │   │   │   └── percent-encoding v2.3.2
│   │   │   ├── itoa v1.0.18
│   │   │   ├── ryu v1.0.23
│   │   │   └── serde v1.0.228 (*)
│   │   ├── sync_wrapper v1.0.2
│   │   │   └── futures-core v0.3.32
│   │   ├── tokio v1.52.3 (*)
│   │   ├── tokio-rustls v0.26.4 (*)
│   │   ├── tokio-util v0.7.18 (*)
│   │   ├── tower v0.5.3
│   │   │   ├── futures-core v0.3.32
│   │   │   ├── futures-util v0.3.32 (*)
│   │   │   ├── pin-project-lite v0.2.17
│   │   │   ├── sync_wrapper v1.0.2 (*)
│   │   │   ├── tokio v1.52.3 (*)
│   │   │   ├── tower-layer v0.3.3
│   │   │   └── tower-service v0.3.3
│   │   ├── tower-http v0.6.11
│   │   │   ├── async-compression v0.4.42
│   │   │   │   ├── compression-codecs v0.4.38
│   │   │   │   │   ├── compression-core v0.4.32
│   │   │   │   │   ├── flate2 v1.1.9
│   │   │   │   │   │   ├── crc32fast v1.5.0 (*)
│   │   │   │   │   │   └── miniz_oxide v0.8.9
│   │   │   │   │   │       ├── adler2 v2.0.1
│   │   │   │   │   │       └── simd-adler32 v0.3.9
│   │   │   │   │   └── memchr v2.8.2
│   │   │   │   ├── compression-core v0.4.32
│   │   │   │   ├── pin-project-lite v0.2.17
│   │   │   │   └── tokio v1.52.3 (*)
│   │   │   ├── bitflags v2.13.0
│   │   │   ├── bytes v1.12.0
│   │   │   ├── futures-core v0.3.32
│   │   │   ├── futures-util v0.3.32 (*)
│   │   │   ├── http v1.4.2 (*)
│   │   │   ├── http-body v1.0.1 (*)
│   │   │   ├── http-body-util v0.1.3 (*)
│   │   │   ├── pin-project-lite v0.2.17
│   │   │   ├── tokio v1.52.3 (*)
│   │   │   ├── tokio-util v0.7.18 (*)
│   │   │   ├── tower v0.5.3 (*)
│   │   │   ├── tower-layer v0.3.3
│   │   │   ├── tower-service v0.3.3
│   │   │   └── url v2.5.8
│   │   │       ├── form_urlencoded v1.2.2 (*)
│   │   │       ├── idna v1.1.0
│   │   │       │   ├── idna_adapter v1.2.2
│   │   │       │   │   ├── icu_normalizer v2.2.0
│   │   │       │   │   │   ├── icu_collections v2.2.0
│   │   │       │   │   │   │   ├── displaydoc v0.2.6 (proc-macro)
│   │   │       │   │   │   │   │   ├── proc-macro2 v1.0.106 (*)
│   │   │       │   │   │   │   │   ├── quote v1.0.45 (*)
│   │   │       │   │   │   │   │   └── syn v2.0.118 (*)
│   │   │       │   │   │   │   ├── potential_utf v0.1.5
│   │   │       │   │   │   │   │   └── zerovec v0.11.6
│   │   │       │   │   │   │   │       ├── yoke v0.8.3
│   │   │       │   │   │   │   │       │   ├── stable_deref_trait v1.2.1
│   │   │       │   │   │   │   │       │   ├── yoke-derive v0.8.2 (proc-macro)
│   │   │       │   │   │   │   │       │   │   ├── proc-macro2 v1.0.106 (*)
│   │   │       │   │   │   │   │       │   │   ├── quote v1.0.45 (*)
│   │   │       │   │   │   │   │       │   │   ├── syn v2.0.118 (*)
│   │   │       │   │   │   │   │       │   │   └── synstructure v0.13.2
│   │   │       │   │   │   │   │       │   │       ├── proc-macro2 v1.0.106 (*)
│   │   │       │   │   │   │   │       │   │       ├── quote v1.0.45 (*)
│   │   │       │   │   │   │   │       │   │       └── syn v2.0.118 (*)
│   │   │       │   │   │   │   │       │   └── zerofrom v0.1.8
│   │   │       │   │   │   │   │       │       └── zerofrom-derive v0.1.7 (proc-macro)
│   │   │       │   │   │   │   │       │           ├── proc-macro2 v1.0.106 (*)
│   │   │       │   │   │   │   │       │           ├── quote v1.0.45 (*)
│   │   │       │   │   │   │   │       │           ├── syn v2.0.118 (*)
│   │   │       │   │   │   │   │       │           └── synstructure v0.13.2 (*)
│   │   │       │   │   │   │   │       ├── zerofrom v0.1.8 (*)
│   │   │       │   │   │   │   │       └── zerovec-derive v0.11.3 (proc-macro)
│   │   │       │   │   │   │   │           ├── proc-macro2 v1.0.106 (*)
│   │   │       │   │   │   │   │           ├── quote v1.0.45 (*)
│   │   │       │   │   │   │   │           └── syn v2.0.118 (*)
│   │   │       │   │   │   │   ├── utf8_iter v1.0.4
│   │   │       │   │   │   │   ├── yoke v0.8.3 (*)
│   │   │       │   │   │   │   ├── zerofrom v0.1.8 (*)
│   │   │       │   │   │   │   └── zerovec v0.11.6 (*)
│   │   │       │   │   │   ├── icu_normalizer_data v2.2.0
│   │   │       │   │   │   ├── icu_provider v2.2.0
│   │   │       │   │   │   │   ├── displaydoc v0.2.6 (proc-macro) (*)
│   │   │       │   │   │   │   ├── icu_locale_core v2.2.0
│   │   │       │   │   │   │   │   ├── displaydoc v0.2.6 (proc-macro) (*)
│   │   │       │   │   │   │   │   ├── litemap v0.8.2
│   │   │       │   │   │   │   │   ├── tinystr v0.8.3
│   │   │       │   │   │   │   │   │   ├── displaydoc v0.2.6 (proc-macro) (*)
│   │   │       │   │   │   │   │   │   └── zerovec v0.11.6 (*)
│   │   │       │   │   │   │   │   ├── writeable v0.6.3
│   │   │       │   │   │   │   │   └── zerovec v0.11.6 (*)
│   │   │       │   │   │   │   ├── writeable v0.6.3
│   │   │       │   │   │   │   ├── yoke v0.8.3 (*)
│   │   │       │   │   │   │   ├── zerofrom v0.1.8 (*)
│   │   │       │   │   │   │   ├── zerotrie v0.2.4
│   │   │       │   │   │   │   │   ├── displaydoc v0.2.6 (proc-macro) (*)
│   │   │       │   │   │   │   │   ├── yoke v0.8.3 (*)
│   │   │       │   │   │   │   │   └── zerofrom v0.1.8 (*)
│   │   │       │   │   │   │   └── zerovec v0.11.6 (*)
│   │   │       │   │   │   ├── smallvec v1.15.2
│   │   │       │   │   │   └── zerovec v0.11.6 (*)
│   │   │       │   │   └── icu_properties v2.2.0
│   │   │       │   │       ├── icu_collections v2.2.0 (*)
│   │   │       │   │       ├── icu_locale_core v2.2.0 (*)
│   │   │       │   │       ├── icu_properties_data v2.2.0
│   │   │       │   │       ├── icu_provider v2.2.0 (*)
│   │   │       │   │       ├── zerotrie v0.2.4 (*)
│   │   │       │   │       └── zerovec v0.11.6 (*)
│   │   │       │   ├── smallvec v1.15.2
│   │   │       │   └── utf8_iter v1.0.4
│   │   │       └── percent-encoding v2.3.2
│   │   ├── tower-service v0.3.3
│   │   ├── url v2.5.8 (*)
│   │   └── webpki-roots v1.0.8 (*)
│   ├── serde v1.0.228 (*)
│   ├── serde_json v1.0.150 (*)
│   ├── thiserror v2.0.18 (*)
│   ├── tokio v1.52.3 (*)
│   └── ureq v3.3.0
│       ├── base64 v0.22.1
│       ├── flate2 v1.1.9 (*)
│       ├── log v0.4.32
│       ├── percent-encoding v2.3.2
│       ├── rustls v0.23.40 (*)
│       ├── rustls-pki-types v1.14.1 (*)
│       ├── serde v1.0.228 (*)
│       ├── serde_json v1.0.150 (*)
│       ├── socks v0.3.4
│       │   ├── byteorder v1.5.0
│       │   └── libc v0.2.186
│       ├── ureq-proto v0.6.0
│       │   ├── base64 v0.22.1
│       │   ├── http v1.4.2 (*)
│       │   ├── httparse v1.10.1
│       │   └── log v0.4.32
│       ├── utf8-zero v0.8.1
│       └── webpki-roots v1.0.8 (*)
├── jieba-rs v0.8.1
│   ├── cedarwood v0.4.6
│   │   └── smallvec v1.15.2
│   ├── include-flate v0.3.3
│   │   ├── include-flate-codegen v0.3.3 (proc-macro)
│   │   │   ├── include-flate-compress v0.3.3
│   │   │   │   ├── libflate v2.3.0
│   │   │   │   │   ├── adler32 v1.2.0
│   │   │   │   │   ├── crc32fast v1.5.0
│   │   │   │   │   │   └── cfg-if v1.0.4
│   │   │   │   │   ├── dary_heap v0.3.9
│   │   │   │   │   ├── libflate_lz77 v2.3.0
│   │   │   │   │   │   ├── hashbrown v0.16.1 (*)
│   │   │   │   │   │   ├── no_std_io2 v0.9.4
│   │   │   │   │   │   │   └── memchr v2.8.2
│   │   │   │   │   │   └── rle-decode-fast v1.0.3
│   │   │   │   │   └── no_std_io2 v0.9.4 (*)
│   │   │   │   └── zstd v0.13.3
│   │   │   │       └── zstd-safe v7.2.4
│   │   │   │           └── zstd-sys v2.0.16+zstd.1.5.7
│   │   │   │               [build-dependencies]
│   │   │   │               ├── cc v1.2.64 (*)
│   │   │   │               └── pkg-config v0.3.33
│   │   │   ├── proc-macro-error2 v2.0.1
│   │   │   │   ├── proc-macro-error-attr2 v2.0.0 (proc-macro)
│   │   │   │   │   ├── proc-macro2 v1.0.106 (*)
│   │   │   │   │   └── quote v1.0.45 (*)
│   │   │   │   ├── proc-macro2 v1.0.106 (*)
│   │   │   │   ├── quote v1.0.45 (*)
│   │   │   │   └── syn v2.0.118 (*)
│   │   │   ├── proc-macro2 v1.0.106 (*)
│   │   │   ├── quote v1.0.45 (*)
│   │   │   └── syn v2.0.118 (*)
│   │   └── include-flate-compress v0.3.3 (*)
│   ├── jieba-macros v0.8.1 (proc-macro)
│   │   └── phf_codegen v0.13.1
│   │       ├── phf_generator v0.13.1
│   │       │   ├── fastrand v2.4.1
│   │       │   └── phf_shared v0.13.1
│   │       │       └── siphasher v1.0.3
│   │       └── phf_shared v0.13.1 (*)
│   ├── phf v0.13.1
│   │   └── phf_shared v0.13.1
│   │       └── siphasher v1.0.3
│   ├── regex v1.12.4 (*)
│   └── rustc-hash v2.1.2
├── json_comments v0.2.2
├── lancedb v0.27.2
│   ├── ahash v0.8.12 (*)
│   ├── arrow v57.3.1
│   │   ├── arrow-arith v57.3.1
│   │   │   ├── arrow-array v57.3.1 (*)
│   │   │   ├── arrow-buffer v57.3.1 (*)
│   │   │   ├── arrow-data v57.3.1 (*)
│   │   │   ├── arrow-schema v57.3.1 (*)
│   │   │   ├── chrono v0.4.45 (*)
│   │   │   └── num-traits v0.2.19 (*)
│   │   ├── arrow-array v57.3.1 (*)
│   │   ├── arrow-buffer v57.3.1 (*)
│   │   ├── arrow-cast v57.3.1
│   │   │   ├── arrow-array v57.3.1 (*)
│   │   │   ├── arrow-buffer v57.3.1 (*)
│   │   │   ├── arrow-data v57.3.1 (*)
│   │   │   ├── arrow-ord v57.3.1
│   │   │   │   ├── arrow-array v57.3.1 (*)
│   │   │   │   ├── arrow-buffer v57.3.1 (*)
│   │   │   │   ├── arrow-data v57.3.1 (*)
│   │   │   │   ├── arrow-schema v57.3.1 (*)
│   │   │   │   └── arrow-select v57.3.1
│   │   │   │       ├── ahash v0.8.12 (*)
│   │   │   │       ├── arrow-array v57.3.1 (*)
│   │   │   │       ├── arrow-buffer v57.3.1 (*)
│   │   │   │       ├── arrow-data v57.3.1 (*)
│   │   │   │       ├── arrow-schema v57.3.1 (*)
│   │   │   │       └── num-traits v0.2.19 (*)
│   │   │   ├── arrow-schema v57.3.1 (*)
│   │   │   ├── arrow-select v57.3.1 (*)
│   │   │   ├── atoi v2.0.0
│   │   │   │   └── num-traits v0.2.19 (*)
│   │   │   ├── base64 v0.22.1
│   │   │   ├── chrono v0.4.45 (*)
│   │   │   ├── comfy-table v7.2.2
│   │   │   │   ├── unicode-segmentation v1.13.3
│   │   │   │   └── unicode-width v0.2.2
│   │   │   ├── half v2.7.1 (*)
│   │   │   ├── lexical-core v1.0.6
│   │   │   │   ├── lexical-parse-float v1.0.6
│   │   │   │   │   ├── lexical-parse-integer v1.0.6
│   │   │   │   │   │   └── lexical-util v1.0.7
│   │   │   │   │   └── lexical-util v1.0.7
│   │   │   │   ├── lexical-parse-integer v1.0.6 (*)
│   │   │   │   ├── lexical-util v1.0.7
│   │   │   │   ├── lexical-write-float v1.0.6
│   │   │   │   │   ├── lexical-util v1.0.7
│   │   │   │   │   └── lexical-write-integer v1.0.6
│   │   │   │   │       └── lexical-util v1.0.7
│   │   │   │   └── lexical-write-integer v1.0.6 (*)
│   │   │   ├── num-traits v0.2.19 (*)
│   │   │   └── ryu v1.0.23
│   │   ├── arrow-csv v57.3.1
│   │   │   ├── arrow-array v57.3.1 (*)
│   │   │   ├── arrow-cast v57.3.1 (*)
│   │   │   ├── arrow-schema v57.3.1 (*)
│   │   │   ├── chrono v0.4.45 (*)
│   │   │   ├── csv v1.4.0
│   │   │   │   ├── csv-core v0.1.13
│   │   │   │   │   └── memchr v2.8.2
│   │   │   │   ├── itoa v1.0.18
│   │   │   │   ├── ryu v1.0.23
│   │   │   │   └── serde_core v1.0.228
│   │   │   ├── csv-core v0.1.13 (*)
│   │   │   └── regex v1.12.4 (*)
│   │   ├── arrow-data v57.3.1 (*)
│   │   ├── arrow-ipc v57.3.1
│   │   │   ├── arrow-array v57.3.1 (*)
│   │   │   ├── arrow-buffer v57.3.1 (*)
│   │   │   ├── arrow-data v57.3.1 (*)
│   │   │   ├── arrow-schema v57.3.1 (*)
│   │   │   ├── arrow-select v57.3.1 (*)
│   │   │   ├── flatbuffers v25.12.19
│   │   │   │   └── bitflags v2.13.0
│   │   │   │   [build-dependencies]
│   │   │   │   └── rustc_version v0.4.1
│   │   │   │       └── semver v1.0.28
│   │   │   ├── lz4_flex v0.12.2
│   │   │   │   └── twox-hash v2.1.2
│   │   │   │       └── rand v0.9.4 (*)
│   │   │   └── zstd v0.13.3
│   │   │       └── zstd-safe v7.2.4
│   │   │           └── zstd-sys v2.0.16+zstd.1.5.7
│   │   │               [build-dependencies]
│   │   │               ├── cc v1.2.64 (*)
│   │   │               └── pkg-config v0.3.33
│   │   ├── arrow-json v57.3.1
│   │   │   ├── arrow-array v57.3.1 (*)
│   │   │   ├── arrow-buffer v57.3.1 (*)
│   │   │   ├── arrow-cast v57.3.1 (*)
│   │   │   ├── arrow-data v57.3.1 (*)
│   │   │   ├── arrow-schema v57.3.1 (*)
│   │   │   ├── chrono v0.4.45 (*)
│   │   │   ├── half v2.7.1 (*)
│   │   │   ├── indexmap v2.14.0 (*)
│   │   │   ├── itoa v1.0.18
│   │   │   ├── lexical-core v1.0.6 (*)
│   │   │   ├── memchr v2.8.2
│   │   │   ├── num-traits v0.2.19 (*)
│   │   │   ├── ryu v1.0.23
│   │   │   ├── serde_core v1.0.228
│   │   │   ├── serde_json v1.0.150 (*)
│   │   │   └── simdutf8 v0.1.5
│   │   ├── arrow-ord v57.3.1 (*)
│   │   ├── arrow-row v57.3.1
│   │   │   ├── arrow-array v57.3.1 (*)
│   │   │   ├── arrow-buffer v57.3.1 (*)
│   │   │   ├── arrow-data v57.3.1 (*)
│   │   │   ├── arrow-schema v57.3.1 (*)
│   │   │   └── half v2.7.1 (*)
│   │   ├── arrow-schema v57.3.1 (*)
│   │   ├── arrow-select v57.3.1 (*)
│   │   └── arrow-string v57.3.1
│   │       ├── arrow-array v57.3.1 (*)
│   │       ├── arrow-buffer v57.3.1 (*)
│   │       ├── arrow-data v57.3.1 (*)
│   │       ├── arrow-schema v57.3.1 (*)
│   │       ├── arrow-select v57.3.1 (*)
│   │       ├── memchr v2.8.2
│   │       ├── num-traits v0.2.19 (*)
│   │       ├── regex v1.12.4 (*)
│   │       └── regex-syntax v0.8.11
│   ├── arrow-array v57.3.1 (*)
│   ├── arrow-cast v57.3.1 (*)
│   ├── arrow-data v57.3.1 (*)
│   ├── arrow-ipc v57.3.1 (*)
│   ├── arrow-ord v57.3.1 (*)
│   ├── arrow-schema v57.3.1 (*)
│   ├── arrow-select v57.3.1 (*)
│   ├── async-trait v0.1.89 (proc-macro)
│   │   ├── proc-macro2 v1.0.106 (*)
│   │   ├── quote v1.0.45 (*)
│   │   └── syn v2.0.118 (*)
│   ├── bytes v1.12.0
│   ├── chrono v0.4.45 (*)
│   ├── datafusion v52.5.0
│   │   ├── arrow v57.3.1 (*)
│   │   ├── arrow-schema v57.3.1 (*)
│   │   ├── async-trait v0.1.89 (proc-macro) (*)
│   │   ├── bytes v1.12.0
│   │   ├── chrono v0.4.45 (*)
│   │   ├── datafusion-catalog v52.5.0
│   │   │   ├── arrow v57.3.1 (*)
│   │   │   ├── async-trait v0.1.89 (proc-macro) (*)
│   │   │   ├── dashmap v6.2.1 (*)
│   │   │   ├── datafusion-common v52.5.0
│   │   │   │   ├── ahash v0.8.12 (*)
│   │   │   │   ├── arrow v57.3.1 (*)
│   │   │   │   ├── arrow-ipc v57.3.1 (*)
│   │   │   │   ├── chrono v0.4.45 (*)
│   │   │   │   ├── half v2.7.1 (*)
│   │   │   │   ├── hashbrown v0.16.1 (*)
│   │   │   │   ├── indexmap v2.14.0 (*)
│   │   │   │   ├── libc v0.2.186
│   │   │   │   ├── log v0.4.32
│   │   │   │   ├── object_store v0.12.5
│   │   │   │   │   ├── async-trait v0.1.89 (proc-macro) (*)
│   │   │   │   │   ├── bytes v1.12.0
│   │   │   │   │   ├── chrono v0.4.45 (*)
│   │   │   │   │   ├── futures v0.3.32 (*)
│   │   │   │   │   ├── http v1.4.2 (*)
│   │   │   │   │   ├── humantime v2.3.0
│   │   │   │   │   ├── itertools v0.14.0
│   │   │   │   │   │   └── either v1.16.0
│   │   │   │   │   ├── parking_lot v0.12.5 (*)
│   │   │   │   │   ├── percent-encoding v2.3.2
│   │   │   │   │   ├── thiserror v2.0.18 (*)
│   │   │   │   │   ├── tokio v1.52.3 (*)
│   │   │   │   │   ├── tracing v0.1.44 (*)
│   │   │   │   │   ├── url v2.5.8 (*)
│   │   │   │   │   └── walkdir v2.5.0 (*)
│   │   │   │   ├── paste v1.0.15 (proc-macro)
│   │   │   │   ├── sqlparser v0.59.0
│   │   │   │   │   ├── log v0.4.32
│   │   │   │   │   └── sqlparser_derive v0.3.0 (proc-macro)
│   │   │   │   │       ├── proc-macro2 v1.0.106 (*)
│   │   │   │   │       ├── quote v1.0.45 (*)
│   │   │   │   │       └── syn v2.0.118 (*)
│   │   │   │   └── tokio v1.52.3 (*)
│   │   │   ├── datafusion-common-runtime v52.5.0
│   │   │   │   ├── futures v0.3.32 (*)
│   │   │   │   ├── log v0.4.32
│   │   │   │   └── tokio v1.52.3 (*)
│   │   │   ├── datafusion-datasource v52.5.0
│   │   │   │   ├── arrow v57.3.1 (*)
│   │   │   │   ├── async-trait v0.1.89 (proc-macro) (*)
│   │   │   │   ├── bytes v1.12.0
│   │   │   │   ├── chrono v0.4.45 (*)
│   │   │   │   ├── datafusion-common v52.5.0 (*)
│   │   │   │   ├── datafusion-common-runtime v52.5.0 (*)
│   │   │   │   ├── datafusion-execution v52.5.0
│   │   │   │   │   ├── arrow v57.3.1 (*)
│   │   │   │   │   ├── async-trait v0.1.89 (proc-macro) (*)
│   │   │   │   │   ├── chrono v0.4.45 (*)
│   │   │   │   │   ├── dashmap v6.2.1 (*)
│   │   │   │   │   ├── datafusion-common v52.5.0 (*)
│   │   │   │   │   ├── datafusion-expr v52.5.0
│   │   │   │   │   │   ├── arrow v57.3.1 (*)
│   │   │   │   │   │   ├── async-trait v0.1.89 (proc-macro) (*)
│   │   │   │   │   │   ├── chrono v0.4.45 (*)
│   │   │   │   │   │   ├── datafusion-common v52.5.0 (*)
│   │   │   │   │   │   ├── datafusion-doc v52.5.0
│   │   │   │   │   │   ├── datafusion-expr-common v52.5.0
│   │   │   │   │   │   │   ├── arrow v57.3.1 (*)
│   │   │   │   │   │   │   ├── datafusion-common v52.5.0 (*)
│   │   │   │   │   │   │   ├── indexmap v2.14.0 (*)
│   │   │   │   │   │   │   ├── itertools v0.14.0 (*)
│   │   │   │   │   │   │   └── paste v1.0.15 (proc-macro)
│   │   │   │   │   │   ├── datafusion-functions-aggregate-common v52.5.0
│   │   │   │   │   │   │   ├── ahash v0.8.12 (*)
│   │   │   │   │   │   │   ├── arrow v57.3.1 (*)
│   │   │   │   │   │   │   ├── datafusion-common v52.5.0 (*)
│   │   │   │   │   │   │   ├── datafusion-expr-common v52.5.0 (*)
│   │   │   │   │   │   │   └── datafusion-physical-expr-common v52.5.0
│   │   │   │   │   │   │       ├── ahash v0.8.12 (*)
│   │   │   │   │   │   │       ├── arrow v57.3.1 (*)
│   │   │   │   │   │   │       ├── chrono v0.4.45 (*)
│   │   │   │   │   │   │       ├── datafusion-common v52.5.0 (*)
│   │   │   │   │   │   │       ├── datafusion-expr-common v52.5.0 (*)
│   │   │   │   │   │   │       ├── hashbrown v0.16.1 (*)
│   │   │   │   │   │   │       ├── indexmap v2.14.0 (*)
│   │   │   │   │   │   │       ├── itertools v0.14.0 (*)
│   │   │   │   │   │   │       └── parking_lot v0.12.5 (*)
│   │   │   │   │   │   ├── datafusion-functions-window-common v52.5.0
│   │   │   │   │   │   │   ├── datafusion-common v52.5.0 (*)
│   │   │   │   │   │   │   └── datafusion-physical-expr-common v52.5.0 (*)
│   │   │   │   │   │   ├── datafusion-physical-expr-common v52.5.0 (*)
│   │   │   │   │   │   ├── indexmap v2.14.0 (*)
│   │   │   │   │   │   ├── itertools v0.14.0 (*)
│   │   │   │   │   │   ├── paste v1.0.15 (proc-macro)
│   │   │   │   │   │   ├── serde_json v1.0.150 (*)
│   │   │   │   │   │   └── sqlparser v0.59.0 (*)
│   │   │   │   │   ├── futures v0.3.32 (*)
│   │   │   │   │   ├── log v0.4.32
│   │   │   │   │   ├── object_store v0.12.5 (*)
│   │   │   │   │   ├── parking_lot v0.12.5 (*)
│   │   │   │   │   ├── rand v0.9.4 (*)
│   │   │   │   │   ├── tempfile v3.27.0 (*)
│   │   │   │   │   └── url v2.5.8 (*)
│   │   │   │   ├── datafusion-expr v52.5.0 (*)
│   │   │   │   ├── datafusion-physical-expr v52.5.0
│   │   │   │   │   ├── ahash v0.8.12 (*)
│   │   │   …
The cargo-deny install step was running before the cache restore, so the
binary was recompiled from source on every run regardless of cache. Move the
cache step before the install and skip the install when cache-hit is true.
…tion

On Windows, .\ and ..\ are native path separators. Accept them as
relative path prefixes so Windows users can write paths in their natural
form. On non-Windows, backslash is not a separator, so these are rejected
as bare names — the same as before.

No doc or schema changes; forward slashes remain the documented form.
@octogonz octogonz merged commit 023f196 into microsoft:main Jun 19, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant