docs(flows): DoD obligatorio con user-facing surface + abrir issues 0100-0103 (taxonomia, frontmatter migration, dev_console, work dashboard)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
---
|
||||
name: regenerate_app_icons
|
||||
kind: pipeline
|
||||
lang: py
|
||||
domain: pipelines
|
||||
version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def regenerate_app_icons(only: list[str] | None = None) -> dict"
|
||||
description: "Escanea todas las apps C++ del registry, lee el bloque `icon: {phosphor, accent}` de cada app.md y regenera el appicon.ico via generate_app_icon. Reemplaza el script ad-hoc dev/gen_app_icons.py."
|
||||
tags: [cpp-windows, icon, phosphor, batch]
|
||||
uses_functions: [generate_app_icon_py_infra]
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
error_type: "error_go_core"
|
||||
imports: [os, sys, pathlib, typing, yaml]
|
||||
params:
|
||||
- name: only
|
||||
desc: "Lista opcional de nombres de app (campo `name` del frontmatter) a procesar. Si None, regenera todas las apps C++ con icon: declarado."
|
||||
output: "dict {ok: [name], skipped: [{name, reason}], failed: [{name, error}]}"
|
||||
tested: false
|
||||
tests: []
|
||||
test_file_path: ""
|
||||
file_path: "python/functions/pipelines/regenerate_app_icons.py"
|
||||
---
|
||||
|
||||
## Ejemplo
|
||||
|
||||
```bash
|
||||
# Regenerar todas las apps C++ con icon: declarado
|
||||
./fn run regenerate_app_icons
|
||||
|
||||
# Solo una app
|
||||
./fn run regenerate_app_icons chart_demo
|
||||
|
||||
# Varias apps
|
||||
./fn run regenerate_app_icons chart_demo registry_dashboard
|
||||
```
|
||||
|
||||
```python
|
||||
import sys
|
||||
sys.path.insert(0, "python/functions")
|
||||
from pipelines.regenerate_app_icons import regenerate_app_icons
|
||||
|
||||
result = regenerate_app_icons()
|
||||
print(f"OK: {len(result['ok'])}, FAIL: {len(result['failed'])}")
|
||||
```
|
||||
|
||||
Bloque `icon:` esperado en `app.md`:
|
||||
```yaml
|
||||
icon:
|
||||
phosphor: "chart-bar"
|
||||
accent: "#0ea5e9"
|
||||
```
|
||||
|
||||
## Cuando usarla
|
||||
|
||||
Cuando anades una app C++ nueva (anades `icon:` a su `app.md` y corres el pipeline), cambias el color/glyph de una app existente, o pulleas cambios de iconos desde otra rama. Antes de `redeploy_cpp_app_windows` para que el `.exe` lleve el icono actualizado.
|
||||
|
||||
## Gotchas
|
||||
|
||||
- **Sobreescribe `appicon.ico` sin warning** — igual que `generate_app_icon`. Hacer backup si necesitas preservar version anterior.
|
||||
- **Requiere `sources/phosphor-core/`**: clonar con `git clone --depth=1 https://github.com/phosphor-icons/core.git sources/phosphor-core` si no existe.
|
||||
- **Solo procesa apps con `lang: cpp`** en frontmatter — apps Go/Python se ignoran aunque tengan `icon:`.
|
||||
- **Apps sin `icon:` se reportan en `skipped`**, no son error. Util para detectar apps C++ a las que falta declarar el icono.
|
||||
- **No invalida el cache de iconos de Windows** — si Explorer no muestra el icono nuevo tras redeploy: `ie4uinit.exe -show` o reiniciar Explorer.
|
||||
Reference in New Issue
Block a user