Sobre el proyecto

Rancher Desktop es una aplicación de escritorio de código abierto que proporciona Kubernetes y gestión de contenedores en Windows, macOS y Linux. El proyecto es una aplicación Electron escrita principalmente en TypeScript, que integra múltiples tecnologías en una sola herramienta cohesiva. Incluye una utilidad de línea de comandos, rdctl, escrita en Go. El README está dirigido a los desarrolladores que trabajan en el propio Rancher Desktop. La información para usuarios está en rancherdesktop.io, y la documentación para usuarios en docs.rancherdesktop.io. Flujo de trabajo de desarrollo: - La mayoría de las tareas (compilaciones de desarrollo, empaquetado, pruebas unitarias, pruebas de extremo a extremo) se ejecutan mediante scripts de yarn; existen algunas excepciones, como las pruebas BATS. - La configuración en Windows se ofrece de dos formas: una máquina virtual de desarrollo de Microsoft Windows 10 con un script de configuración automatizado de PowerShell, o un entorno manual usando WSL, Scoop, nvm, Visual Studio con la carga de trabajo Desarrollo de escritorio con C++ y Windows SDK, además de la configuración de los finales de línea de git. - La configuración en macOS usa nvm para instalar Node 22, yarn y Go mediante Homebrew. En máquinas Apple M1, se debe establecer una variable de entorno M1 antes de instalar dependencias y ejecutar scripts. - La configuración en Linux requiere Node.js v22 con paquetes de desarrollo, yarn classic, Go 1.22 o posterior, y una cadena de herramientas de C/C++ para node-gyp para compilar el paquete ffi-napi. Ejecución y pruebas: - yarn dev ejecuta una versión de desarrollo. - yarn test ejecuta las pruebas unitarias; yarn test:e2e ejecuta las pruebas de integración. - yarn build y yarn package producen la salida de compilación en dist/. No se admite la compilación cruzada. Depuración: - La depuración remota de Chrome se puede habilitar con los indicadores --remote-debugging-port y --remote-allow-origins en Linux, macOS y Windows, y luego se accede a ella mediante Chrome en el puerto local. Las extensiones se pueden depurar de forma remota de la misma manera después de cargar una extensión. - GoLand (y IDE de JetBrains similares) pueden depurar el entorno de desarrollo usando el plugin de Node.js y una configuración de ejecución de Node.js que apunte a scripts/ts-wrapper.js scripts/dev.ts. Compilaciones de desarrollo: - En Windows y macOS, cada commit activa GitHub Actions, que sube artefactos .exe y .dmg. - En Linux, GitHub Actions realiza parte del proceso y Open Build Service lo finaliza. Existen canales dev y stable; las compilaciones dev provienen de la rama main y de las ramas release-*, con versiones con el formato priority.branch.commit_time.commit. Se proporcionan instrucciones para agregar repositorios de desarrollo .deb y .rpm y para acceder a las compilaciones de desarrollo de AppImage. API: - Rancher Desktop admite una API limitada basada en HTTP definida en pkg/rancher-desktop/assets/specs/command-api.yaml, con ejemplos de cliente en go/src/rdctl. La API está en la versión 1, pero se considera interna y experimental, sujeta a cambios sin previo aviso. Contribuir y lecturas adicionales: - Un documento CONTRIBUTING.md y un directorio docs/development/ proporcionan documentación adicional para desarrolladores.