Repository navigation
Description
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 testensrc-tauri,npm run app:devy 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
Rafaeldelinares commentedon Oct 13, 2026
¡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é:
connect_mapen 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.$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í tienex-terminal-emulatorpor 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 delayer-shellme 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):
docs/build-linux.mdcon versiones exactas y fecha de congelación para Arch.set_ignore_cursor_events+connect_mapcomo 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.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!
docs(linux): baseline, contrato y referencias Linux (egdev6#105) (egd…
docs(linux): refresh CONTRIBUTING + §5 to match merged #127 and #122 (#…