Skip to content

chore(linux): establecer baseline y contrato del port nativo #105

Closed

Description

@egdev6

Objetivo y motivo

Determinar un objetivo Linux nativo reproducible y verificable antes de prometer soporte. Esta unidad abre el milestone Linux portability, no desarrolla por sí sola todo el port.

Alcance

  • Inventariar dependencias Linux de Tauri/WebKitGTK, Rust/Node, bandeja, ventanas, compositor, Secret Service, CLI y proveedores; registrar límites y regresiones Windows.
  • Medir en una máquina Linux real instalación, npm test, npm run typecheck, npm run build, cargo test en src-tauri, npm run app:dev y arranque/primer uso, con comandos, códigos de salida y fallos preexistentes.
  • Proponer y obtener aceptación de distribución y versión mínima, arquitectura, sesión gráfica y matriz X11/Wayland; identificar formato de paquete local para L3.
  • Excluye implementar integraciones completas, distribución pública, firma, CI/release y afirmar soporte de distros/compositores no comprobados.

Dependencias

Ninguna técnica; respetar roadmap #45. #89 es un preflight Windows independiente; no ampliar su alcance implícitamente.

Criterios de aceptación

  • Baseline reproducible en Linux real con entorno, comandos, exit codes, bloqueos y evidencia de arranque; compilación no equivale a experiencia funcional.
  • Matriz de soporte inicial y política de X11/Wayland, bandeja, secretos y formato local explícitas y aceptadas antes de L1/L2/L3.
  • Riesgos priorizados y entradas del código contrastadas con comportamiento real; no afirmar equivalencia WSL/Linux nativo.
  • Plan de pruebas y regresión Windows, con límites no verificados declarados.

Orientación

Entradas: src-tauri/tauri.conf.json, src-tauri/src/lib.rs, src-tauri/src/login.rs, src-tauri/src/secrets.rs, src-tauri/src/providers/, src/lib/dock.ts, src/Settings.tsx, README y CONTRIBUTING. No incluir ni publicar credenciales de la máquina de prueba.

Comprobaciones y ODD cercano

Fase Resultado Dependencias Validación y salida
Observar L0a Inventario y baseline real Ninguna Entorno y comandos documentados con exit codes; fallos distinguidos
Decidir L0b Matriz y contrato Linux, política X11/Wayland y paquete local L0a Decisiones contrastadas y aceptadas, incertidumbres explícitas
Desarrollar L0c Solo guardas o documentación mínima que exija el baseline aprobado L0b Tests primero cuando haya comportamiento determinista; sin port prematuro
Verificar L0d Evidencia replicable y desglose de L1–L3 L0b/L0c Gates y riesgos publicados, sin declarar plataforma soportada

Coordinación y entrega

Estado: planificada, no lista para implementar hasta acordar matriz y contrato. Sin assignee inicial; revalidar issue, comentarios y PR al iniciar explícitamente. Mantener el primer objetivo nuevo recomendado #66 y compromisos Windows; WSL #90–#93 y macOS #69 son trabajos distintos. Tests y docs con la unidad; la planificación no autoriza implementación, PR, merge ni release.

Activity

  1. added this to the Linux portability milestone on Oct 13, 2026
  2. added
    type:choreMaintenance, release infrastructure and tooling
    oddTrabajo coordinado mediante planificación ODD aprobada
    on Oct 13, 2026
  3. Rafaeldelinares commented on Oct 13, 2026

    @Rafaeldelinares
    Contributor

    ¡Genial Quique, muchas gracias por aceptar y por estructurarlo en cuatro issues! Y Ferran, qué gusto leerte por aquí y qué alegría que hayáis picado en Arch/Wayland.

    Los tres hallazgos que comentas encajan casi al 100% con la propuesta que mandé:

    • El connect_map en GTK encaja con la primera línea del criterio de aceptación de chore(linux): establecer baseline y contrato del port nativo #105 (baseline reproducible sin crashes) y sería un fix que vive en feat(linux): hacer funcional el escritorio y widget nativos #107 cuando lleguemos ahí. Si tenéis los diffs limpios y os apetece subirlos como PR anticipado, perfecto; si no, los integro yo en su fase.
    • La cascada $TERMINAL → ghostty → kitty → alacritty es exactamente lo que pensaba para feat(linux): adaptar sesiones, secretos y login CLI nativos #106 (Sesiones, secretos y login CLI). Esto también es un punto de F0 a verificar: la instalación de las CLIs en Ubuntu 22.04 sí tiene x-terminal-emulator por convención, en Arch rolling no, así que la detección en cascada es necesaria incluso aunque el camino "feliz" sea Ubuntu.
    • startDragging() nativo de Tauri en lugar de layer-shell me convence: GNOME en Ubuntu no tendría layer-shell y meter C extra es una rémora. Esto encaja con el plan B de D2 en mi propuesta original.

    Mi plan para #105 (baseline y contrato Linux):

    1. Trabajar sobre Arch rolling x86_64 (mi equipo de batalla es CachyOS, lo dejo documentado) y sobre Ubuntu 22.04 LTS x86_64 en una VM limpia.
    2. Cerrar los apartados de baseline en docs/build-linux.md con versiones exactas y fecha de congelación para Arch.
    3. Verificación de humo sobre CachyOS (KDE Plasma y Hyprland) y Omarchy (Hyprland) para confirmar que el binario que sale de Arch base corre en las distros de la comunidad.
    4. Reportar el crash de set_ignore_cursor_events + connect_map como comentario dentro de chore(linux): establecer baseline y contrato del port nativo #105 si lo reproduzco en mi baseline, o enlazarlo al PR de Ferran si lo sube antes.
    5. Cero código en chore(linux): establecer baseline y contrato del port nativo #105: solo baseline, contrato y docs.

    Propuesta de coordinación con Ferran: si me hacéis llegar los diffs por DM o en una rama, los reviso y los subo como parte del trabajo de #107 cuando lleguemos. Mientras tanto, no me adelanto: espero la asignación formal a #105 antes de clonar y ejecutar nada, como manda el flujo ODD.

    Una pregunta para ti, Quique: ¿prefieres que pida asignación sobre #105 directamente aquí, o lo coordinamos por DM primero? Y otra para Ferran: ¿tenéis rama pública o solo local? Si es local, abrimos rama compartida o me los pasáis y los subo desde la mía.

    ¡A tope con esto!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    oddTrabajo coordinado mediante planificación ODD aprobadatype:choreMaintenance, release infrastructure and tooling

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions