Repository navigation
Development and Testing
Tobias Vorwachs edited this page Oct 27, 2026
·
1 revision
cargo build --release # Rust 1.90+, CMake (builds Opus)
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo test
One local, unmodified Mumble 1.5 server in Docker, on port 44738. Needs Docker with compose, openssl and sqlite3.
cp testenv/.env.example testenv/.env # edit the passwords; git-ignored
testenv/up.sh # start (creates Lobby, Raid, AFK on first start)
testenv/down.sh # stop, keep data
testenv/reset.sh # wipe and restart
Parallel instances: MUMBOT_PORT_BASE=44838 MUMBOT_PROJECT=qa1 testenv/up.sh. Details: testenv/README.md.
Never test against public or third-party Mumble servers.
Ignored by default; they need the test server.
MUMBOT_LIVE=1 cargo test -- --ignored --test-threads=1
ci.yml runs on pull requests and on pushes to main. A changed-files job decides whether the heavy jobs run, so the required check always reports, even for docs-only changes. Rust formatting, clippy and tests must pass before merging.
- Update the version in
Cargo.tomlandCHANGELOG.md. - Push a tag
vX.Y.Zonmain. -
release.ymlchecks the tag against the Cargo version, builds the binaries and the multi-arch Docker image, and creates a draft GitHub release withSHA256SUMS. - The maintainer reviews and publishes the release by hand.
Weekly (Mondays) updates for Cargo (minor and patch grouped, commit prefix chore(deps)) and GitHub Actions.
- Features start as a spec in
specs/. - Small commits in Conventional Commits style; user-visible changes go into
CHANGELOG.md. - No secrets in the repository.
Mumbot is licensed under the AGPL-3.0 · Source code · Mumcord · Website