Resolver de Paquetes (Package Resolver)
Archivo: src/package_resolver.rs
¿Por qué existe?
Gestiona la localización, carga y resolución de paquetes externos del ecosistema Forja, permitiendo que los módulos y crates del proyecto sean encontrados y vinculados durante la compilación.
¿Cómo funciona?
- Analiza los metadatos del proyecto (
package_config.rs) para obtener la lista de dependencias declaradas. - Busca los paquetes en los directorios configurados (p. ej.
.forja/packages,HOME/.forja/registry). - Lee los archivos
Cargo.toml-like (Forja) y crea una estructura internaPackageInfocon nombre, versión y paths de origen. - Resuelve versiones compatibles usando semver y selecciona la versión más reciente que satisfaga los requisitos.
- Integra los archivos fuente del paquete al árbol de compilación mediante la función
add_package_sources(&mut Compiler).
¿Para qué se usa?
Es llamado por la CLI (main.rs) cuando se ejecuta forja build --package <name> o al compilar un proyecto que declara dependencias en su archivo de configuración.