Skip to content

Building and Releasing

SpaceSquare edited this page Aug 29, 2026 · 4 revisions

Building and Releasing

Building from source

Requires a Rust toolchain (see rust-toolchain.toml in the repo root for the pinned version).

git clone https://github.com/SpaceSquare640/GTAV_Mods_Manager.git
cd GTAV_Mods_Manager
cargo build
cargo test

Run the CLI directly:

cargo run -p gtavmm-cli -- --help

Building the desktop app

cd crates/gtavmm-app
npm install
npm run tauri dev      # dev mode with hot reload
npm run build           # frontend build only
npm run tauri build     # full native app bundle

Workspace layout

  • crates/gtavmm-core — the engine. No UI or CLI dependencies, so it can be tested and reused independently.
  • crates/gtavmm-cli — thin CLI wrapper over gtavmm-core.
  • crates/gtavmm-app/src-tauri — the Tauri backend, itself a thin wrapper: every command is split into a plain, unit-testable *_impl function plus a #[tauri::command] wrapper.
  • crates/gtavmm-app/src — the React + TypeScript frontend.

CI

GitHub Actions runs cargo build/cargo test/cargo clippy on both Windows and Linux for every push — see .github/workflows/ in the repo. A schema-version bug that only manifested on Linux (a difference in how ExitStatus decodes raw waitpid status vs. Windows exit codes) was actually caught this way, not locally — a concrete example of why both platforms run in CI rather than just the primary dev machine's OS.

Releases

Not yet tagged — there are no GitHub Releases published as of this writing. Once the project reaches its first release, binaries will be published via GitHub Releases with a SHA-256 checksum for each — that will be the only official distribution channel; we take no responsibility for copies obtained elsewhere.

Reporting a bug

gtavmm report-crash "<what happened>" generates a de-identified, pre-filled GitHub Issue draft — review it and submit it yourself; nothing is sent automatically. Or open an issue directly: https://github.com/SpaceSquare640/GTAV_Mods_Manager/issues

Clone this wiki locally