Skip to main content

Crate caixa_resolver

Crate caixa_resolver 

Source
Expand description

caixa-resolver — git-only dependency resolver.

Store model, Zig-style. A caixa is a Git repo whose root has a caixa.lisp. There is no central registry: feira publishes by pushing a Git tag, and other caixas consume it via :fonte (:tipo git …) or by shorthand (:nome "x"), which the resolver expands to the configured default host (github:pleme-io/<nome> by default).

Resolution flow:

  1. Expand default sources using ResolverConfig.
  2. For each dep, clone-or-fetch into the cache, check out the pinned :rev / :tag / :branch, read its caixa.lisp.
  3. BFS transitive deps; stop when every node is resolved.
  4. Build LacreEntry list with BLAKE3 :conteudo (git object id prefixed with git:) and :fechamento (hash of content + sorted transitive closure fechamentos).

Re-exports§

pub use cache::CacheDir;
pub use config::ResolverConfig;
pub use lisp_config::ResolverConfigLisp;
pub use resolve::ResolveError;
pub use resolve::resolve_lacre;
pub use url::expand_shorthand;

Modules§

cache
Cache directory discovery — XDG-respecting.
config
git
Git helpers — shells out to the git CLI (matches net.git-fetch-with-cli).
lisp_config
Lisp-native resolver config — ~/.config/caixa/config.lisp.
resolve
Top-level resolver — turn a Caixa into a Lacre with BLAKE3 fechamento hashes over the full transitive closure.
url
URL shorthand expansion.