3.3 KiB
3.3 KiB
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.jsand/assets/vhosts.jsremain 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, inaccessibleserver_protocol, missinganyhow::Context, brokeninclude!targets and test code embedded in implementation modules.
Compiler-error regression status
The current source tree contains the intended corrections:
src/web_server/response.rsends with validinclude!items and cannot end with a dangling#[derive(...)]under the structural contract.- the FastCGI logical module imports
htaccessandanyhow::Context; server_protocolis exposed inside the Web Server module throughrequest::server_protocoland imported by FastCGI;serve.rsdoes not retain the previously unusedstr::FromStrimport.- 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
htaccessexplicitly and no longer retains the staleACCEPT_ENCODING/FromStrimports; - split proxy/config/Prometheus fragments no longer export unnecessary
mutbindings or unused values from theirinclude!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:
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:
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.