-
Notifications
You must be signed in to change notification settings - Fork 14
Development and Roadmap
The workspace contains crates/server (mirrorproxy-server), crates/client
(mirrorproxy), crates/catalog (shared catalog), and web (React/Vite console).
Adding a target is a coordinated change: catalog, route/adapter, configuration,
console, client capability, docs, and smoke coverage must stay aligned.
./build.sh is the standard static Linux release path. It builds the web app,
fetches SHA-256-pinned GeoIP data, and compiles the server and client. The
Release workflow builds client assets for Linux, macOS, and Windows and server
assets for Linux, all with checksums.
cargo fmt --all --check
cargo clippy --workspace --all-targets --locked -- -D warnings
cargo test --workspace --locked
(cd web && npm test && npm run build)
./scripts/smoke-admin-api.sh target/debug/mirrorproxy-server
The end-to-end client smoke uses isolated temporary package-manager homes and does not modify a developer's real configuration:
bash scripts/smoke-clients.sh
OS-client and Docker smoke tests are narrower environment checks. Passing
language-ecosystem smoke must not be described as validation for every OS
repository. CI also generates Rust LCOV coverage and audits Rust/npm
dependencies. Tagged releases publish archives, Debian/RPM packages, Homebrew
and WinGet manifests, and a signed client APT repository. The active roadmap is docs/plan.md and
docs/next.md; multi-instance operation remains outside the 1.3.0 scope.