212875ed0d
- .claude/agents/fn-orquestador/SKILL.md - .claude/commands/fn_claude.md - .claude/rules/INDEX.md - .claude/rules/cpp_apps.md - .claude/rules/ids_naming.md - CHANGELOG.md - apps/dag_engine/README.md - apps/dag_engine/api.go - apps/dag_engine/dags_migrated/example.yaml - apps/dag_engine/dags_migrated/example_lineage_tracking.yaml - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.7 KiB
4.7 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, params, output
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | tested | tests | test_file_path | file_path | params | output | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| redeploy_all_cpp_apps | pipeline | bash | pipelines | 1.0.0 | impure | redeploy_all_cpp_apps(filter?: string) -> void | Cross-compila TODOS los apps C++ del registry en un solo cmake pass y despliega cada .exe al Desktop de Windows. Mas rapido que N builds individuales. Acepta filtro de nombre para despliegue parcial. |
|
|
false | error_go_core | false | bash/functions/pipelines/redeploy_all_cpp_apps.sh |
|
Imprime tabla resumen con OK/SKIPPED/FAILED y nombres de cada app. Exit 1 si al menos una app fallo el deploy. |
Ejemplo
# Recompilar y redesplegar TODAS las apps C++ tras un cambio en cpp/framework/
./fn run redeploy_all_cpp_apps
# Solo apps cuyo nombre contenga "graph"
./fn run redeploy_all_cpp_apps graph
Cuando usarla
Tras un cambio en cpp/framework/app_base.cpp, cpp/functions/core/* o cualquier
funcion linkada a multiples apps. Ahorra correr redeploy_cpp_app_windows <name> <dir>
N veces — un solo cmake pass compila todo el arbol en paralelo.
Comportamiento
- Build: invoca
build_cpp_windowssin argumento (compila todo el arbol con-j$(nproc)). Un solo cmake pass — mucho mas rapido que N builds individuales. - Descubrimiento: itera
apps/*/CMakeLists.txtyprojects/*/apps/*/CMakeLists.txt. No usacpp/apps/(deprecado tras issue 0096). - Filtro (opcional): si se paso un argumento, solo procesa apps cuyo
basenamecontiene el substring. - Por cada app:
- Localiza
.exeencpp/build/windows/apps/<name>/<name>.exe; si no existe, busca bajocpp/build/windows/como fallback. - Si no hay
.exe: log SKIP, continua (no aborta — apps headless o sub-repos no clonados no tienen build target). taskkill.exe /IM <name>.exe /Fsilencioso (no aborta si falla).deploy_cpp_exe_to_windows <name> <app_dir>(copia exe + DLLs + assets + enrichers + runtime, preservalocal_files/).- Error por app: log FAILED, continua con la siguiente.
- Localiza
- Resumen final: tabla
OK / SKIPPED / FAILEDcon nombres. Exit 1 si hay al menos un FAILED.
Variables de entorno
| Variable | Default | Descripcion |
|---|---|---|
FN_REGISTRY_ROOT |
auto-detect | Raiz del registry (busca hacia arriba desde el script) |
BUILD_WIN |
$root/cpp/build/windows |
Directorio de build Windows |
WIN_DESKTOP_APPS |
/mnt/c/Users/lucas/Desktop/apps |
Destino de deploy en Windows |
Gotchas
- Solo Windows (cross-compile mingw-w64 + Desktop deploy via WSL2). En Linux puro no aplica.
taskkill.exerequiere WSL2 con interop habilitado. No funciona en WSL1 ni Linux nativo.- Algunas apps pueden no estar en el grafo cmake actual (sub-repo no clonado,
add_subdirectoryprotegido porif(EXISTS ...)). El pipeline las SKIPea sin abortar — comportamiento esperado. - Build paralelo puede consumir varios GB de RAM. Si hay OOM, reducir paralelismo exportando
BUILD_JOBS=4antes de invocar (actualmente la funcionbuild_cpp_windowsusa$(nproc); si necesitas override editaBUILD_JOBScomo variable de entorno custom o fork la funcion). - El loop de deploy atrapa errores por app (
|| { failed+=...; continue; }) para no abortar en el primer fallo — todas las apps se intentan aunque alguna falle.
Capability growth log
- v1.0.0 (2026-05-16) — creacion. Tras issue 0096 (apps movidas a
apps/<X>/) el patron "recompilar+desplegar todas tras un cambio encpp/framework/" se repitio varias veces sin un wrapper. Pipeline tolerante a fallos: build best-effort (test_* roto en mingw no aborta), deploy por app captura fallos individuales, summary OK/SKIPPED/FAILED al final. Primera corrida real (16 May 2026): 12 OK / 1 SKIP (data_factorysin .exe target) / 0 FAILED.
Notas operativas (2026-05-16)
build_cpp_windowssin arg compila el arbol entero. Si hay targets rotos (ej.test_llm_anthropic,test_graph_iconsusansetenv()no disponible en mingw-w64), el pipeline logea[1/2] Build returned exit=N — continuing with deploy of available exesy sigue con la fase de deploy. Cada app sin.exequeda SKIPPED.- Tras una corrida exitosa, los
.exequedan en/mnt/c/Users/lucas/Desktop/apps/<name>/<name>.exe. Lanzar individualmente con./fn run is_cpp_app_running_windows <name>para chequear ylaunch_cpp_app_windows <name>para arrancar.