# v0.3.0 Codec Release Readiness

Date: 2026-06-10

Issue: #58
Milestone: `0.3.0`

## Scope

This pass records readiness evidence for the `0.3.0` codec milestone. It does
not tag, publish crates, promote `develop` to `main`, or create a GitHub
Release.

## Release Contents

- `bluetape-rs-codec` `0.3.0`
- Optional root crate facade feature: `codec`
- Strict hex encoding and decoding
- Base64 standard and URL-safe helpers, with padded and unpadded variants
- Bitcoin Base58 helpers
- Byte-oriented Base62 helpers
- UTF-8 text/byte boundary helpers
- Typed decode errors and public crate-boundary tests

## Child Issue Matrix

| Issue | Title | State | Closed at |
|---|---|---|---|
| #53 | Add bluetape-rs-codec workspace crate | Closed | 2026-06-10T09:50:23Z |
| #54 | Add strict hex codec primitives | Closed | 2026-06-10T11:31:54Z |
| #55 | Add Base64 standard and URL-safe codec primitives | Closed | 2026-06-10T11:35:45Z |
| #56 | Define binary and text codec helper boundaries | Closed | 2026-06-10T12:42:03Z |
| #57 | Refresh docs and tests for the 0.3.0 codec scope | Closed | 2026-06-10T12:52:15Z |
| #60 | docs: document main/develop release branch policy | Closed | 2026-06-10T09:50:48Z |
| #63 | Add Base58 and Base62 codec primitives | Closed | 2026-06-10T12:27:09Z |
| #58 | Prepare v0.3.0 codec release readiness | Open | This PR |
| #52 | [Epic] 0.3.0 Codec and encoding helpers | Open | Close after #58 readiness is merged |

## Deferred Scope

- Compression helpers remain assigned to `0.4.0`.
- Serde-oriented serialization interfaces remain assigned to `0.5.0`.
- Encryption, signing, checksums, database bind encoding, random string
  helpers, and broad text normalization remain out of scope for `0.3.0`.

## Branch State

- Stable `main`: `fae6977bc9a01d8c665a9959bd7808139791dd46` (`v0.2.0`)
- Current `develop`: `639b030559b20960e0f3d79a8e3b1cf5060994dd`
- This readiness branch targets `develop`.

## Validation

| Check | Result | Evidence |
|---|---:|---|
| `git diff --check` | Pass | No whitespace errors. |
| `cargo fmt --all --check` | Pass | Formatting check completed without changes. |
| `cargo test -p bluetape-rs-codec --all-features --locked` | Pass | Codec unit, integration, and doctests passed. |
| `cargo test --workspace --all-features --locked` | Pass | Workspace unit, integration, and doctests passed. |
| `cargo clippy --workspace --all-targets --all-features --locked -- -D warnings` | Pass | Completed with no warnings. |
| `RUSTDOCFLAGS="-D warnings" cargo doc --workspace --all-features --no-deps --locked` | Pass | Workspace docs generated with warnings denied. |
| `cargo publish -p bluetape-rs-codec --dry-run --locked` | Pass | Packaged 17 files, 43.0KiB; upload aborted due to dry run. |
| Coverage | Pass | `coverage/lcov.info` generated with `cargo llvm-cov`; Homebrew cargo required explicit `LLVM_COV` and `LLVM_PROFDATA` paths. |

## Release Caveat

This is release-readiness evidence only. The stable release still requires an
explicit release-promotion workflow: merge the readiness PR into `develop`,
promote the verified tree to `main`, tag from `main`, create the GitHub
Release, and sync local branches.
