Kally is the Git-first package manager for Kalcite. It keeps requested
dependencies in kally.toml, resolves Git branches or tags once, and records
the immutable commit and a deterministic source checksum in kally.lock.
The reusable libraries themselves live in kalcite-packages, not in this repository.
For a profile-based installation of Kalcite and Kally, use Kallyup.
cargo install --git https://github.com/Kalcite-Engine/kally.gitkally add tween \
git:https://github.com/Kalcite-Engine/kalcite-packages.git#packages/tween \
main
kally synckally update tween is the only command that advances a locked Git package.
kally sync materializes the exact locked source under .kally/packages/.
For CI and reproducible builds, use kally sync --locked: it rejects any
manifest/lock divergence or missing checksum and never resolves a Git reference
or rewrites kally.lock.
When an exact package cache is already available, kally sync --locked --offline
performs the same manifest and checksum validation without creating files,
contacting Git, or resolving a reference.
kally status is read-only: it audits the manifest, lockfile, and local cache,
returning a non-zero status when sync or an explicit update is required.
kally clean --dry-run lists stale named entries in .kally/packages/ without
changing anything. kally clean removes only those entries that are absent
from kally.lock; it never removes a locked package.
Kally performs filesystem access, TLS and Git subprocess execution in Rust.
Lockfile grammar, source policy, resolution decisions and checksum transitions
are compiled from src/kally_core.klc and executed by Kally itself.
See CONTRIBUTING.md and SECURITY.md.