Cargando

Cargando...

Desarrollo local

De CubicLauncher Docs

Esta guía describe cómo preparar un entorno de desarrollo completo de CubicLauncher, la organización interna del repositorio y el flujo de trabajo esperado para contribuciones de código.

Requisitoseditar

HerramientaVersión / notas
GitCualquier versión reciente
BunPara gestionar dependencias y scripts del proyecto
Node.jsUna versión LTS vigente (respaldo de Bun)
RustEstable, con soporte para la edición 2024, junto con Cargo, rustfmt y Clippy
Tauri v2Dependencias del sistema según tu plataforma (guía oficial)

La CLI de Tauri forma parte de las dependencias del proyecto y se instala automáticamente con bun install; no es necesario instalarla por separado.

Entorno localeditar

bash
git clone https://github.com/CubicLauncherDevs/CubicLauncher.git
cd CubicLauncher
bun install --frozen-lockfile
bun run tauri dev

bun run tauri dev levanta la aplicación de escritorio y el servidor de desarrollo del frontend en paralelo, con recarga en caliente. Para trabajar únicamente en la interfaz, bun run dev inicia solo Vite; ten en cuenta que las funciones que dependen del backend (instancias, descargas, autenticación) no estarán disponibles en este modo.

Entorno con Nixeditar

En NixOS o con Nix instalado, el flake del repositorio incluye un devShell con todas las dependencias necesarias (Bun, Rust, cargo-tauri, GTK3, WebKitGTK, GStreamer, entre otras):

bash
nix develop
bun install --frozen-lockfile
bun run tauri dev

Consultá la guía de Nix para más detalles sobre empaquetado y solución de problemas.

Comandos principaleseditar

Todos los comandos se ejecutan desde la raíz del repositorio.

ComandoDescripción
bun run tauri devInicia la aplicación de escritorio en modo de desarrollo.
bun run devInicia el servidor Vite del frontend.
bun run tauri buildCompila y empaqueta la aplicación para la plataforma actual.
bun run buildGenera la compilación de producción del frontend.
bun run lintEjecuta ESLint sobre el frontend.
bun run checkVerifica tipos y diagnósticos de Svelte.
bun run test:frontendEjecuta los tests del frontend con Bun.
bun run test:rustEjecuta los tests y doctests del workspace Rust.
bun run test:allEjecuta las suites del frontend y de Rust.
cargo fmt --all --checkComprueba el formato del código Rust.
cargo clippy --workspace -- -D warningsEjecuta el análisis estático del workspace Rust.
Generar build rápido para probar cambios del backend

Si solo querés validar cambios en Rust sin empaquetar instaladores, cargo build dentro de src-tauri/ produce un binario de desarrollo mucho más rápido que bun run tauri build.

Estructura del repositorioeditar

plaintext
src/                  # Interfaz, estado y servicios del frontend
src-tauri/            # Aplicación Tauri, comandos y servicios nativos
  src/tests/          # Tests unitarios del backend de la aplicación
crates/               # Bibliotecas internas del workspace Rust
  <crate>/src/tests/  # Tests unitarios de cada biblioteca con suites propias
tests/frontend/       # Tests del frontend agrupados por área
static/               # Recursos estáticos de la interfaz
dist/                 # Archivos de empaquetado para distribuciones
.github/              # Integración continua y flujos de publicación

El backend está organizado como un workspace de crates internos que encapsulan dominios independientes (instancias, descargas, gestión de Java, autenticación, etc.). Esto permite probar cada servicio de forma aislada y reutilizarlo entre binarios.

Pruebaseditar

El proyecto mantiene suites separadas para frontend y backend:

  • Frontend (tests/frontend/): tests unitarios y de integración ejecutados con Bun. La guía de pruebas documenta requisitos de Chromium para pruebas de navegador, mediciones de rendimiento y flujos de verificación manual.
  • Rust (src-tauri/src/tests/ y crates/<crate>/src/tests/): tests unitarios y doctests por crate, ejecutados con Cargo.

Antes de abrir un pull request, ejecutá bun run test:all para validar ambas suites.

Flujo de trabajo recomendadoeditar

  1. Fork y rama: creá un fork del repositorio y una rama descriptiva desde main:
    bash
    git checkout -b feat/nombre-del-cambio
  2. Commits atómicos: realizá cambios pequeños y enfocados, con mensajes que describan la intención del cambio.
  3. Validación local: antes de abrir el PR, asegurate de que pasan las comprobaciones:
    bash
    bun run lint
    bun run check
    bun run test:all
    cargo fmt --all --check
    cargo clippy --workspace -- -D warnings
  4. Pull request: abrí el PR contra main describiendo claramente el problema que resuelve y, si aplica, enlazando el issue relacionado.
  5. Revisión: un mantenedor revisará el cambio. Respondé a los comentarios con nuevos commits en la misma rama; evitá forzar el historial salvo que se te pida.

Convenciones de códigoeditar

  • Rust: el formato se aplica con rustfmt y el análisis estático con Clippy; ambos se ejecutan en CI con -D warnings, por lo que cualquier advertencia bloquea la integración.
  • TypeScript / Svelte: el frontend sigue las reglas de ESLint y svelte-check del repositorio.
  • Comentarios y nombres: se recomienda escribir identificadores y comentarios en inglés, siguiendo el estilo ya presente en el código.
CI bloqueante

Las comprobaciones de formato, lints y tests se ejecutan en la integración continua de GitHub Actions. Un PR no pasará a revisión completa hasta que todos los checks estén en verde.

Recursos para contribuidoreseditar

Solución de problemas comuneseditar

bun run tauri dev falla al iniciareditar

Verificá que instalaste las dependencias del sistema de Tauri v2 para tu plataforma. En Linux, suelen ser paquetes de desarrollo de WebKitGTK y GTK3; en Windows, las Build Tools de Visual Studio y el WebView2 Runtime.

Errores de compilación de Rust tras actualizar el toolchaineditar

Asegurate de estar en el canal estable con soporte para la edición 2024 y actualizá las dependencias del lockfile:

bash
rustup update stable
bun install --frozen-lockfile

La interfaz no muestra datos del backendeditar

Si iniciaste solo el frontend con bun run dev, las funciones que dependen de Tauri (IPC) no están disponibles. Levantá la aplicación completa con bun run tauri dev.

Categoría Avanzado