88 lines
2.8 KiB
Markdown
88 lines
2.8 KiB
Markdown
# Local Desktop Build And Smoke Runbook
|
|
|
|
Date: 2026-03-27
|
|
Owner: Senior Backend Engineer
|
|
|
|
## Goal
|
|
|
|
Provide one repeatable local build and smoke path that any engineer or QA can run against a seeded Redis fixture.
|
|
|
|
## Prerequisites
|
|
|
|
- Rust 1.85+
|
|
- Node.js 24+
|
|
- `pnpm` 10+
|
|
- Docker CLI with permission to run containers
|
|
- Linux desktop build prerequisites for Tauri, including WebKitGTK and GTK3 development packages
|
|
|
|
## Standard Commands
|
|
|
|
```bash
|
|
pnpm install
|
|
cargo test -p redis-core
|
|
pnpm run desktop:build
|
|
pnpm run desktop:tauri:build
|
|
```
|
|
|
|
Expected package output path on Linux after a successful Tauri build:
|
|
|
|
```text
|
|
target/release/bundle/
|
|
```
|
|
|
|
Linux preflight checks for native desktop libraries:
|
|
|
|
```bash
|
|
pkg-config --modversion gtk+-3.0
|
|
pkg-config --modversion webkit2gtk-4.1
|
|
pkg-config --modversion libsoup-3.0
|
|
```
|
|
|
|
All three commands should return a version. If any of them fail, `pnpm run desktop:tauri:build` is still environment-blocked even if the repository scripts are correct.
|
|
|
|
## Local Redis Fixture
|
|
|
|
Start and seed a deterministic Redis instance on `127.0.0.1:6380`:
|
|
|
|
```bash
|
|
./scripts/redis-fixture/start.sh
|
|
./scripts/redis-fixture/seed.sh
|
|
```
|
|
|
|
Stop and remove the fixture:
|
|
|
|
```bash
|
|
./scripts/redis-fixture/stop.sh
|
|
```
|
|
|
|
Seeded keys:
|
|
|
|
- `smoke:string`
|
|
- `smoke:string:ttl`
|
|
- `smoke:hash`
|
|
- `smoke:list`
|
|
- `smoke:set`
|
|
- `smoke:zset`
|
|
- `smoke:stream`
|
|
|
|
## Linux Smoke Steps
|
|
|
|
1. Run `./scripts/redis-fixture/start.sh`.
|
|
2. Run `./scripts/redis-fixture/seed.sh`.
|
|
3. Launch `pnpm run desktop:tauri:dev`.
|
|
4. In the desktop app, connect to host `127.0.0.1`, port `6380`, database `0`, no password, TLS disabled.
|
|
5. Verify the desktop window opens, app version plus runtime mode are visible in the header, and the connection test succeeds.
|
|
6. Verify the command console can run a safe read, such as `PING` or `GET smoke:string`.
|
|
7. Verify the seeded keys appear with expected types and TTL state in the browser and inspector surfaces.
|
|
8. Change TTL on `smoke:string:ttl`, remove TTL from the same key, and confirm the updated TTL state is reflected in the inspector.
|
|
9. Capture screenshots or terminal output for build, launch, connection success, key browse, TTL update, and command execution. If screenshots are unavailable, copy the in-app QA snapshot text into the smoke log.
|
|
10. Run `./scripts/redis-fixture/stop.sh` after the session.
|
|
|
|
## Current Validation Boundary
|
|
|
|
- `cargo test -p redis-core` passes in the current workspace.
|
|
- `pnpm run desktop:build` passes in the current workspace.
|
|
- `./scripts/redis-fixture/start.sh`, `./scripts/redis-fixture/seed.sh`, and `./scripts/redis-fixture/stop.sh` pass in the current workspace.
|
|
- `pnpm run desktop:tauri:build` now produces Linux `.deb` and `.rpm` artifacts under `target/release/bundle/`.
|
|
- The same Tauri build still fails in its AppImage stage with `io: Connection reset by peer (os error 104)`, so AppImage should be treated as not yet verified.
|