Skip to content

Entwicklung

GitHub Action edited this page Jul 28, 2026 · 1 revision

Entwicklung

Mock-Mode (Browser-Vorschau)

Der schnellste Weg, die UI ohne Hardware zu entwickeln:

npm install
MOCK=1 npm run dev

Der Mock-Layer simuliert alle Tauri-Commands mit reaktiven State β€” im MockPanel (🎭-Button unten rechts) kannst du Werte live Γ€ndern.

VollstΓ€ndige Dev-Umgebung

npm run tauri dev      # Volle App mit Hot-Reload (braucht Rust + System-Deps)
npm run dev            # Nur Frontend Vite Dev-Server
npm run build          # Frontend Production-Build
npm run test           # Frontend Unit-Tests (Vitest)
npm run check          # Type-Check (svelte-check)
cargo test --workspace   # Rust Unit-Tests
cargo clippy --workspace # Rust Lint

Projektstruktur

fixplay-diagnoseTool/
β”œβ”€β”€ src/                    # Svelte 5 Frontend (TypeScript)
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ api/            # Typisierte Tauri-Invoke-Wrapper
β”‚   β”‚   β”œβ”€β”€ components/     # UI-Komponenten
β”‚   β”‚   β”œβ”€β”€ controllers/    # DualSense HID-Protokoll (USB + BT)
β”‚   β”‚   β”œβ”€β”€ mock/           # Browser-Mock-Layer (MOCK=1)
β”‚   β”‚   └── stores/         # Svelte Stores
β”‚   └── routes/             # SvelteKit-Routen
β”œβ”€β”€ src-tauri/              # Rust Backend (Tauri v2)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ commands/       # Tauri-Command-Handler
β”‚   β”‚   └── state.rs        # AppState
β”‚   β”œβ”€β”€ binaries/           # GebΓΌndeltes flashrom
β”‚   └── resources/          # Fehlercode-Datenbank
β”œβ”€β”€ crates/                 # Rust Workspace Crates
β”‚   β”œβ”€β”€ fixplay-core/       # Traits + geteilte Typen
β”‚   β”œβ”€β”€ fixplay-flashrom/   # flashrom-Subprozess
β”‚   β”œβ”€β”€ fixplay-i2c/        # I2C-Bridge-Protokoll
β”‚   └── fixplay-uart/       # UART + Fehler-DB
└── static/                 # Statische Assets

Tech-Stack

Schicht Technologie
Frontend Svelte 5 (Runes), TypeScript, Tailwind CSS v4, Vite
Backend Rust 2021, Tauri v2, hidapi, serialport, reqwest
Testing Vitest (Frontend), cargo test (Rust)
CI/CD GitHub Actions

Release-Prozess

Releases sind vollstΓ€ndig automatisiert. Ein Tag-Push lΓΆst den Build aus:

git tag v0.2.1
git push origin v0.2.1

Der Workflow (.github/workflows/release.yml) baut:

  • Linux: AppImage, .deb, .rpm
  • Windows: .msi, .exe
  • Arch: .pkg.tar.zst
  • AUR: fixplay-diagnosetool + -bin werden automatisch aktualisiert
  • Updater: latest.json mit SHA256 + Signaturen

Pre-Release-Tags (enthalten -) ΓΌberspringen den AUR-Schritt.

Clone this wiki locally