# v0.4.0 Compression Release Readiness

## Scope

`v0.4.0` publishes the first Rust-native compression line for `bluetape-rs`.
The release keeps algorithm dependencies opt-in and preserves the existing
workspace-wide version policy: every publishable workspace crate is released
under the same version.

## Milestone State

| Item | State | Evidence |
|---|---|---|
| Epic | Open until this readiness PR lands | #73 |
| Release readiness | In progress | #80 |
| Implementation child issues | Closed | #74, #75, #76, #77, #78, #79, #81, #82 |
| Workshop issues | Closed as out of scope for this repo | #92, #93, #101, #102 |
| Multilingual README cleanup | Closed | #103 |

## Package Version Plan

| Package | Publish | Version |
|---|---:|---:|
| `bluetape-rs` | yes | `0.4.0` |
| `bluetape-rs-core` | yes | `0.4.0` |
| `bluetape-rs-logging` | yes | `0.4.0` |
| `bluetape-rs-test` | yes | `0.4.0` |
| `bluetape-rs-collections` | yes | `0.4.0` |
| `bluetape-rs-async` | yes | `0.4.0` |
| `bluetape-rs-codec` | yes | `0.4.0` |
| `bluetape-rs-compression` | yes | `0.4.0` |
| `compression-benchmark` | no | `0.4.0` |

## Benchmark Evidence

- Report: `docs/benchmark/compression-same-condition-benchmark.md`
- Rust CSV: `docs/benchmark/compression-same-condition-rust.csv`
- Go CSV: `docs/benchmark/compression-same-condition-go.csv`
- JVM CSV: `docs/benchmark/compression-same-condition-jvm.csv`
- Fixture manifest: `docs/benchmark/compression-fixtures-manifest.csv`
- Metadata: `docs/benchmark/compression-same-condition-metadata.md`
- Charts: `docs/images/readme-charts/compression-throughput-large-payloads.svg`
  and `docs/images/readme-charts/compression-ratio-large-payloads.svg`

The benchmark report states the run conditions, raw paths, metric direction,
payload matrix, normalized tables, and caveats. It is a local same-condition
snapshot, not a production ranking.

## Deferred Scope

- Archive/zip helpers.
- Serde-oriented serialization wrappers and serializer-compressor composition.
- Testcontainers, SQL, resilience, leader election, cache coordination, AWS,
  graph, text, audit, and rule-engine scope.
- Default-heavy global compression policy.
- `bluetape-rs-workshop` examples; workshop work is tracked outside this repo.

## Release Execution Plan

1. Merge this release-readiness PR to `develop`.
2. Close #80 and #73 after the PR is merged.
3. Close milestone `0.4.0` after all milestone issues are closed.
4. Promote the verified `develop` tree to `main` through a release PR.
5. Tag `v0.4.0` on `main`.
6. Publish crates.io workspace packages at `0.4.0`.
7. Create the GitHub Release from `v0.4.0`.
8. Verify crates.io package visibility for all publishable workspace crates.

## Pre-Release Evidence

| Check | Status | Evidence |
|---|---|---|
| Existing crates.io latest line | Pass | `bluetape-rs` and `bluetape-rs-core` latest are `0.3.1`; `bluetape-rs-compression` is not yet registered. |
| Existing `v0.4.0` tag/release | Pass | No local/remote `v0.4.0` tag or GitHub Release exists before this PR. |
| Stable baseline | Pass | `origin/main` and `v0.3.1^{}` both point to `6cef44048b97d2d933fcf42e34fd6f3267b4ff30`. |
| Development baseline | Pass | `origin/develop` points to `71b3a564025b66d3228df5950e23c08019a6f543` before this PR. |
| Workspace metadata | Pass | `cargo metadata --no-deps --format-version 1`; all publishable packages report `0.4.0`, and `compression-benchmark` reports `publish=[]`. |
| Formatting | Pass | `cargo fmt --all --check`. |
| Tests | Pass | `cargo test --workspace --all-features --locked`. |
| Clippy | Pass | `cargo clippy --workspace --all-targets --all-features --locked -- -D warnings`. |
| Rustdoc | Pass | `RUSTDOCFLAGS="-D warnings" cargo doc --workspace --all-features --no-deps --locked`. |
| Publish dry-run | Pass | `cargo publish --workspace --dry-run --locked`; dirty preflight also passed with `--allow-dirty` before commit. |
| Whitespace | Pass | `git diff --check`. |

## DoD Status

| Item | Status |
|---|---|
| Milestone readiness evidence recorded | Done |
| Workspace package versions aligned to `0.4.0` | Done |
| README locale set updated | Done |
| Changelog `v0.4.0` section prepared | Done |
| Benchmark evidence linked | Done |
| Deferred scope documented | Done |
| Local release gate validation recorded | Done |
