20 — Por dentro
Compilación y publicación
Cómo se producen los binarios, se empaqueta npm y se publica una release del editor.
En esta página
Novedades de distribución 0.2.39–0.2.40
- El workflow prueba el instalador PowerShell y adjunta install.ps1 a GitHub Releases, junto con los binarios y SHA256SUMS. La documentación incluye capturas reales del plugin; su versión 0.3.0 se publica por un tag/workflow independiente.
- Antes de publicar el launcher, verify-registry-release.ts espera metadatos y archivos públicos de ambas plataformas; después comprueba los tres paquetes. El runtime y launcher verifican disponibilidad completa para la plataforma antes de ofrecer/instalar una actualización.
- La CI de distribución comprueba guardados Windows/WSL, permisos y fallos de instaladores. La prueba de imágenes del workbench comprueba altura real y decodificación; un smoke gráfico específico verifica interacción con el ejecutable. Esto no certifica todos los protocolos o terminales.
Compilar por plataforma
build.ts compila bootstrap/executable.ts con plugin Solid, minificación y Bun compile. Bytecode se usa en Windows, pero está desactivado para Linux x64 por fallos observados con Bun 1.3.14. Windows genera packages/oec-win32-x64/bin/oec.exe; Linux, packages/oec-linux-x64/bin/oec. La salida actual no es dist/oec.exe.
build sin target elige Windows en host win32 y Linux en el resto. No detecta arquitecturas alternativas. package-check requiere ambos binarios y verifica archivos mínimos de los tres paquetes.
bun run build:windows
bun run build:linux
bun run pack:checkTres paquetes npm
openeditorcode contiene launcher, README, manuales y licencia. @2jmalvarez/oec-win32-x64 y @2jmalvarez/oec-linux-x64 contienen el ejecutable correspondiente. La raíz los declara opcionales con versión exacta y el launcher resuelve el apropiado.
Procedimiento de release
- Actualiza versión raíz, ambos paquetes de plataforma y bun.lock. Revisa la documentación de la nueva versión.
- Ejecuta typecheck, test, build de Windows/Linux, preflight v<VERSION> y pack:check. Los workflows repiten las verificaciones de distribución.
- Después de validar la release, publica commit y tag anotado v<VERSION>. El tag activa publish.yml.
- El workflow compila y prueba ambas plataformas; verifica el permiso ejecutable Linux del tarball y publica primero paquetes de plataforma y después la raíz con npm trusted publishing (OIDC, Node 24). La release GitHub adjunta binarios y SHA256SUMS.
- Comprueba el resultado de Actions y las tres versiones en npm antes de anunciar la publicación.
Detalles del workflow actual
publish.yml admite tags v* y workflow_dispatch. Los jobs de release GitHub y npm son independientes tras compilar; uno puede completar aunque el otro falle. Un prerelease GitHub no configura por sí solo un dist-tag npm alternativo.
Las sumas son verificaciones de integridad, no firmas independientes. El workflow usa publicación npm OIDC sin NPM_TOKEN explícito; no configura SBOM ni attestations adicionales. Preflight verifica versiones y tag, no sincronía del contenido documental.
Fuentes del capítulo
Enlaces fijados al commit revisado; no siguen main.