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:
- Expand default sources using
ResolverConfig. - For each dep, clone-or-fetch into the cache, check out the pinned
:rev/:tag/:branch, read itscaixa.lisp. - BFS transitive deps; stop when every node is resolved.
- Build
LacreEntrylist with BLAKE3:conteudo(git object id prefixed withgit:) 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
gitCLI (matchesnet.git-fetch-with-cli). - lisp_
config - Lisp-native resolver config —
~/.config/caixa/config.lisp. - resolve
- Top-level resolver — turn a
Caixainto aLacrewith BLAKE3 fechamento hashes over the full transitive closure. - url
- URL shorthand expansion.