16b — Package manager (cap. 16b de la guía)¶
Ejemplo runnable del package manager de Fitz (Fase 9.y). Dos proyectos:
greetings/— librería con dos fnsholayformal. Sufitz.tomldeclara[lib].entry = "src/lib.fitz".greeter/— binario que importa la lib via path dep. Sufitz.tomldeclara[bin].main = "src/main.fitz"y[dependencies] greetings = { path = "../greetings" }.
Correrlo¶
Desde la raíz del repo Fitz:
Output esperado:
Detrás de escena fitz run sin args:
- Busca
fitz.tomlen el cwd → encuentra el degreeter. - Resuelve
[dependencies] greetings = { path = "../greetings" }→ lee el manifest degreetings, registragreetings -> <abs>/greetings/src/lib.fitzen el dep_registry. - Genera/actualiza
fitz.lock(la primera vez se crea con la versión resuelta y la próxima corrida lo verifica byte-a-byte). - Carga
src/main.fitz(el[bin].main) y lo evalúa. - Cuando el código hace
from greetings import hola, formal, el loader consulta el dep_registry y carga ellib.fitzcorrespondiente.
Compilar a binario¶
Emite greeter/target/release/greeter.exe (Windows) o
greeter/target/release/greeter (Linux/macOS) — el binario
incluye el código de la lib + el del bin, sin Fitz instalado en
la máquina destino. Output idéntico al de fitz run.
CLI del PM (referencia)¶
| Comando | Para qué |
|---|---|
fitz new <nombre> |
Crea proyecto nuevo en carpeta <nombre>/ |
fitz init |
Convierte el cwd actual en un proyecto |
fitz add <name> --path ../foo |
Suma dep path al fitz.toml |
fitz add <name> --git URL --tag v1 |
Suma dep git con tag o --rev |
fitz remove <name> |
Quita dep + sincroniza lockfile |
fitz update [name] |
Invalida cache git + re-resuelve |
Ver cap 16b de la guía para el detalle.