v0.29.3
This commit is contained in:
1 parent
68678e98be
commit
b3bc56cd42
16 files changed
+230
-54
No files matched your search
+21
-3
@@ -1,7 +1,19 @@
|
||||
# Verification report - RustProxy 0.29.2
|
||||
# Verification report - RustProxy 0.29.3
|
||||
|
||||
## Changes
|
||||
|
||||
0.29.3 fallback correction (operator report): the replay-body guard
|
||||
treated HTTP/2 and HTTP/3 GET/HEAD bodies with unknown size hints as non-replayable,
|
||||
even when the stream was empty. The fallback guard now performs the existing
|
||||
bounded empty-body probe for GET/HEAD; a true empty stream is replayable, while
|
||||
nonempty/unknown-length request bodies are forwarded only once. The internal
|
||||
target lookup now warns when the named location cannot be resolved. Added Rust
|
||||
async regression tests for empty H2/H3 GET/HEAD, unknown-length GET payload
|
||||
preservation, and unbounded POST non-consumption. The observer also preserves the
|
||||
final internal fallback response (including its 404 HTML) instead of applying a
|
||||
second global/vhost error page; a Rust test exercises this precedence. These Rust tests have not been
|
||||
executed in this environment because Cargo is unavailable.
|
||||
|
||||
Same-version 0.29.2 correction: Web Server main routes no longer inherit `transient_unavailable` from the vhost backend configuration. When the Web Server source has no enabled Reverse Proxy Custom Locations, backend definitions are not compiled. An enabled reverse-proxy Custom Location still compiles and uses the backend pool. Removed fallback-only Prometheus metrics, retained PHP/Web Server metrics.
|
||||
|
||||
Validated operator-controlled PHP_ADMIN_VALUE FastCGI configuration per Web Service,
|
||||
@@ -19,6 +31,12 @@ This source package is not certified for production deployment.
|
||||
|
||||
## Checks performed
|
||||
|
||||
- 0.29.3 release identity: `Cargo.toml`, the root `rust-proxy` entry in `Cargo.lock`, administration OpenAPI version, README, CHANGELOG, ROADMAP, AGENTS and verification-report heading were updated to 0.29.3; the fallback source changes from the tested 0.29.2 correction are retained.
|
||||
- 0.29.3 offline validation: `python3 tools/checks/version_contracts.py`, `python3 tools/checks/check_source.py`, `python3 tools/checks/release_smoke.py` passed; `bash ./dev.sh test` passed all listed non-Rust checks and stopped at missing Cargo with exit 127. This does not constitute compilation or successful runtime testing of RustProxy 0.29.3.
|
||||
|
||||
|
||||
- Fallback correction: `bash ./dev.sh test` passed Rust-independent module, source, upgrade/SQLite, security, browser UI and documentation checks. It exited 127 at the missing Rust/Cargo toolchain. `bash ./dev.sh check` also exited 127 because Rust/Cargo is unavailable. The added Rust regression tests and the live HTTP/2/HTTP/3 proxy behavior remain **unverified** pending a compiler-enabled runtime and an operator test against `origin-1`/`origin-2`.
|
||||
|
||||
- Same-version correction: `python3 tools/checks/check_source.py` and `python3 tools/checks/release_smoke.py` passed. `bash ./dev.sh test` passed the Rust-independent checks and stopped at missing Rust/Cargo (exit 127). No live 503 regression test or Rust compilation could be performed.
|
||||
|
||||
- `./dev.sh test`: all Rust-independent release, upgrade, security, JS, UI, documentation and source checks passed; exited 127 at the missing `cargo` toolchain guard.
|
||||
@@ -30,6 +48,6 @@ This source package is not certified for production deployment.
|
||||
|
||||
Installer/update now installs /etc/logrotate.d/rustproxy using the recorded service user/group. Updates repair /etc/profile.d/rustproxy-path.sh rather than warning. logrotate uses copytruncate because RustProxy holds open log descriptors; some log records may be lost during truncate. Rust build and live Debian/systemd acceptance remain unverified in this environment.
|
||||
|
||||
## Version identity (0.29.2 source maintenance)
|
||||
## Version identity (0.29.3 source release)
|
||||
|
||||
`Cargo.toml` package version is the canonical release identity. Rust uses `CARGO_PKG_VERSION` at build time; `build.rs` substitutes the admin HTML placeholder. Packaging, upgrade and dev scripts read the manifest with `scripts/version.py`. Run `python3 tools/checks/version_contracts.py` to check that executable paths do not hardcode a version. Historical documentation and external dashboards may retain manually managed versions. Rust compilation/runtime verification is still pending.
|
||||
`Cargo.toml` package version is the canonical release identity (now 0.29.3). Rust uses `CARGO_PKG_VERSION` at build time; `build.rs` substitutes the admin HTML placeholder. Packaging, upgrade and dev scripts read the manifest with `scripts/version.py`. Run `python3 tools/checks/version_contracts.py` to check that executable paths do not hardcode a version. Historical documentation and external dashboards may retain manually managed versions. Rust compilation/runtime verification is still pending.
|
||||
Reference in new issue
Block a user