35 lines
1.4 KiB
Markdown
35 lines
1.4 KiB
Markdown
# 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.
|
|
|
|
## Updating an existing checkout to 0.2.0
|
|
|
|
Do not overlay the release with `cp *` or another command that skips dotfiles. That can retain stale `.github`, `.env.example`, or `Cargo.lock` files.
|
|
|
|
Use a clean checkout/extraction, or a dotfile-aware copy such as `rsync -a` / `cp -a source/. destination/`. The source release intentionally does not ship `Cargo.lock`; CI and `scripts/build-release.sh` generate it before running `--locked` Cargo commands.
|