# Releasing RustBox 1. Update the version in `Cargo.toml` and the RustBox package entry in `Cargo.lock`. 2. Confirm `UPSTREAM_BASE` is the Oxi revision actually consumed by the release. 3. Ensure no TypeScript sources or separate frontend build dependencies are present. 4. Run: ```bash cargo fmt --all -- --check cargo test --locked cargo clippy --locked --all-targets -- -D warnings ./scripts/build-release.sh ``` 5. Verify: ```bash ./target/release/rustbox --version RUSTBOX_CONFIG=./config.dev.toml ./target/release/rustbox --check-config ``` 6. Package the repository without `target/`, `.dev/` or `.git/`. 7. Generate SHA-256 sums for release archives. ## Browser asset build Browser JavaScript source lives in functional modules under `src/web/js/`, ordered by `src/web/js/manifest.txt`. `build.rs` concatenates those modules into the embedded `rustbox-ui.js` asset during every Cargo build. The repository has no duplicate `ui/` snapshot; `src/web/` is the only browser UI source.