Files
fn_registry/dev/issues/completed/0073-init_kotlin_app-gradlew-stub-roto.md
T

1.6 KiB

id, title, status, type, domain, scope, priority, depends, blocks, related, created, updated, tags
id title status type domain scope priority depends blocks related created updated tags
59 init_kotlin_app genera gradlew stub no funcional completado feature
app-scoped alta
2026-05-10 2026-05-17

Sintoma

Al scaffoldear app Kotlin con fn run init_kotlin_app <name>, el gradlew generado es un stub que delega a gradle/wrapper/gradlew (no existe) y luego a gradle system (no instalado). Resultado: silenciosamente falla.

Reproducir

./fn run init_kotlin_app foo_app
cd apps/foo_app
./gradlew :app:assembleDebug
# (no output, exit silente)

Causa

bash/functions/pipelines/init_kotlin_app.sh linea ~XXX genera placeholder gradlew. No descarga gradle-wrapper.jar real ni invoca gradle wrapper --gradle-version 8.6.

Workaround actual

Copiar wrapper de otra app:

cp apps/voice_guide/frontend/android/gradle/wrapper/gradle-wrapper.jar <new_app>/gradle/wrapper/
cp apps/voice_guide/frontend/android/gradlew <new_app>/gradlew
chmod +x <new_app>/gradlew

Fix propuesto

Una de:

  • Descargar gradle-wrapper.jar desde https://raw.githubusercontent.com/gradle/gradle/v8.6.0/gradle/wrapper/gradle-wrapper.jar (~60KB) durante scaffold + escribir gradlew real (no stub).
  • Vendor del wrapper jar en bash/functions/pipelines/templates/kotlin/gradle-wrapper.jar y copiar al scaffold.
  • Detectar gradle system, invocar gradle wrapper --gradle-version 8.6 post-mkdir.

Recomendado: vendor (option B) — sin dependencia de red en cada scaffold.

Validacion

Tras fix, ./fn run init_kotlin_app smoke && cd apps/smoke && ./gradlew --version debe imprimir Gradle 8.6 sin errores.