Files
mudmouth/docs/development.md
T
pleb 290d0674b1
CI / macos-latest (push) Has been cancelled
CI / ubuntu-latest (push) Has been cancelled
CI / windows-latest (push) Has been cancelled
Limit v0.0.2 release to Linux and Windows
2026-07-21 10:34:28 -07:00

62 lines
1.8 KiB
Markdown

# Development and build notes
## Local development
Mudmouth requires Rust stable. On NixOS, the included shell also provides the
ALSA development metadata used by the Linux audio backend:
```bash
nix-shell
```
Run the normal validation suite before submitting a change:
```bash
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo test
cargo build --release
```
The parser tests cover the observed log formats, including NPC dialogue,
channel-chat exclusion, zone events, normalization, persistent/random speaker
voice policies, log truncation, and first-run log discovery.
## Running locally
Start the local Kokoro FastAPI service when necessary, then pass an EverQuest
log directly:
```bash
doas systemctl start podman-kokoro-fastapi.service
cargo run --release -- --log "$HOME/Games/EverQuestLegends/Logs/eqlog_Pleb_oggok.txt"
```
Starting without a log path opens first-time setup. Mudmouth scans common Steam
and Daybreak install folders for `eqlog_*.txt` files and lets you choose a
character; if it finds none, enter the EverQuest game directory. Use `[r]` to
rescan after enabling `/log on` in EverQuest. You can also change the log path
and Kokoro endpoint from **Settings**:
```bash
cargo run --release
cargo run --release -- --kokoro-url http://127.0.0.1:8880
```
## Release builds
Build Linux and Windows binaries locally with `release.nix`, then package them
with:
```bash
nix-build release.nix -A linux -o result-linux
nix-build release.nix -A windows -o result-windows
./scripts/package-release.sh \
--linux result-linux/bin/mudmouth \
--windows result-windows/bin/mudmouth.exe
```
The packager writes platform-qualified archives and `SHA256SUMS.txt` to
`dist/`. `scripts/publish-release.sh` uploads those exact assets as a Gitea
pre-release after the worktree is committed and clean.