v0.25.1
This commit is contained in:
1 parent
87e571c170
commit
fa7abc9e53
308 files changed
+49746
-50237
No files matched your search
@@ -0,0 +1,56 @@
|
||||
# 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.
|
||||
Reference in new issue
Block a user