57 lines
3.3 KiB
Markdown
57 lines
3.3 KiB
Markdown
# RustProxy 0.25.1 release audit
|
|
|
|
RustProxy 0.25.1 is a focused Traffic-UX and source-modularization release on top of the 0.25.0 Web Server foundation. No configuration-schema migration is introduced.
|
|
|
|
## Implemented scope
|
|
|
|
- Traffic is split into **Overview**, **Clients**, **Requests** and **Delivery** sub-tabs so the page no longer requires a long vertical scroll.
|
|
- All bounded Traffic dimensions are visualized: donuts for methods/status/cache/countries and horizontal bars for User-Agent, effective client IP, path, route and byte volume.
|
|
- Every Rust source file is release-guarded at **500 lines maximum** and unit tests must live outside implementation files.
|
|
- Oversized dashboard JavaScript is split into bounded modules while `/assets/app.js` and `/assets/vhosts.js` remain stable browser URLs assembled by the Rust admin router.
|
|
- Docker Agent implementation is split into model, Docker, network, certificate, server and entry-point modules; tests remain in `main_test.go`.
|
|
- Deployment and NPM migration utilities are split into bounded implementation modules while keeping their existing command-line entry points and helper API used by release tests.
|
|
- The Web Server split regressions reported after 0.25.0 are guarded explicitly: dangling attributes, unresolved `htaccess`, inaccessible `server_protocol`, missing `anyhow::Context`, broken `include!` targets and test code embedded in implementation modules.
|
|
|
|
## Compiler-error regression status
|
|
|
|
The current source tree contains the intended corrections:
|
|
|
|
- `src/web_server/response.rs` ends with valid `include!` items and cannot end with a dangling `#[derive(...)]` under the structural contract.
|
|
- the FastCGI logical module imports `htaccess` and `anyhow::Context`;
|
|
- `server_protocol` is exposed inside the Web Server module through `request::server_protocol` and imported by FastCGI;
|
|
- `serve.rs` does not retain the previously unused `str::FromStr` import.
|
|
- split runtime documentation comments are attached to their actual methods instead of ending an `include!` fragment immediately before `}`;
|
|
- included Rust fragments cannot start with inner `//!` module documentation;
|
|
- the split Web Server response-header fragment imports sibling `htaccess` explicitly and no longer retains the stale `ACCEPT_ENCODING`/`FromStr` imports;
|
|
- split proxy/config/Prometheus fragments no longer export unnecessary `mut` bindings or unused values from their `include!` tuples.
|
|
|
|
`python3 scripts/rust_module_contracts.py` checks these conditions without a compiler. A real `cargo check --locked --all-targets` remains mandatory on the release host.
|
|
|
|
## Verification gates
|
|
|
|
Rust-independent acceptance for this package includes:
|
|
|
|
```text
|
|
python3 scripts/rust_module_contracts.py
|
|
python3 scripts/source_module_contracts.py
|
|
python3 scripts/check_source.py
|
|
python3 scripts/release_smoke.py
|
|
python3 scripts/memory_contracts.py
|
|
python3 scripts/web_server_contracts.py
|
|
python3 scripts/security_contracts.py
|
|
python3 scripts/security_dependency_contracts.py
|
|
python3 scripts/docs_check.py
|
|
python3 scripts/langs_check.py
|
|
go test ./... # from docker-agent/
|
|
```
|
|
|
|
The packaging workspace has no Rust/Cargo toolchain. Before production/release acceptance, run:
|
|
|
|
```bash
|
|
cargo fmt --all -- --check
|
|
cargo check --locked --all-targets
|
|
cargo test --locked --all-targets
|
|
```
|
|
|
|
No claim of compiler success is made until those commands pass on a Rust-enabled host.
|