sorug 0.6.2

Ultra-high-performance, zero-copy, WHATWG-compliant URL parser
Documentation
# 1.0 freeze gate

Do **not** cut `1.0.0` until every item below holds for a **sustained** low-churn
period. Product work continues on 0.x; there is no rush. See also
[README §1.0 freeze checklist](../README.md#10-freeze-checklist) and
[api-audit.md](api-audit.md).

## Already locked (do not reopen without a breaking minor in 0.x)

- [x] Public surface audit signed off ([api-audit.md]api-audit.md, 2026-08-07)
- [x] rust-url migration notes in [cookbook.md]cookbook.md

## Still required at freeze time

- [ ] WPT parser + setters green on **current** fixtures (badge counts match tree)
- [ ] Fuzz smoke (daily) and long fuzz (weekly) green; no open freshness failures
- [ ] No unresolved `wpt-freshness` / differential allowlist debt that contradicts WPT
- [ ] CHANGELOG + docs.rs + Trusted Publishing verified for the freeze tag
- [ ] FFI remains `publish = false`; consumers pin GitHub Release tags
- [ ] Sustained low API churn (no pending breaking changes)

### Progress notes (not a freeze)

| Date | Note |
| --- | --- |
| 2026-08-08 | Long ACE Punycode stack-cap bug fixed (fuzz-smoke differential); inventory at [differential-allowlist.md]differential-allowlist.md. Unicode 18 **not** ready — stay on UCD 17.0.0 ([data/ucd/README.md]../data/ucd/README.md). Publish/FFI for `v0.6.0` verified green. |
| 2026-08-08 | Plan implementation: rustfmt CI hygiene, ACE `%C3%A9` regression lock, idempotent setters extended, Criterion peer mutate + throughput, cookbook DX, wasm test compile smoke, FFI `make_relative`. Patch release **0.6.1**. **Do not cut 1.0** until daily smoke + weekly long + WPT freshness stay green for a sustained window. |
| 2026-08-08 | **0.6.1 verified:** CI green; crates.io Trusted Publishing green; FFI Release assets (linux/macos/windows) green; post-tag fuzz-smoke green (parse+mutate 60s). Weekly long fuzz dispatched for sustained gate. **1.0.0 not cut** — freeze still requires sustained low-churn window (policy). |
| 2026-08-09 | **0.6.2 prep:** weekly `url_mutate_fuzz` failure (`file:` + `PathSegmentsMut::push("h\|")` round-trip) fixed; WPT `relativeTo` harness; DX integration tests; broader idempotent setters. **Do not cut 1.0** — re-establish sustained green on daily smoke + weekly long + wpt-freshness after the patch lands on `main`. |
|| Re-check daily fuzz-smoke + weekly long fuzz + wpt-freshness for a sustained green window before cutting 1.0. |

## Freeze readiness procedure (verify at cut time)

1. `cargo test --workspace --all-features` and WPT badges match in-tree fixture counts.
2. Latest `fuzz-smoke.yml` and `fuzz-long.yml` runs on `main` are green; triage any new artifacts into `tests/fuzz_regressions.rs`.
3. No open GitHub issues labeled / titled `wpt-freshness`.
4. `CHANGELOG.md` has a `1.0.0` section; README semver note says breaking only in major.
5. Tag `v1.0.0` triggers Trusted Publishing + FFI Release; confirm both workflows succeed.
6. Confirm `ffi/Cargo.toml` still has `publish = false`.

## Explicit non-goals for 1.0

- Quirk parity with non-WHATWG parsers
- `unsafe` in the main crate for micro-wins
- ICU / `idna` crates
- Richer `ParseError` variants
- Hiding `Backing` or renaming host getters

## Cut procedure (when ready)

1. Confirm checklist above on `main`.
2. Bump to `1.0.0`, CHANGELOG entry, README semver note (“breaking only in major”).
3. Tag `v1.0.0` → Trusted Publishing + FFI release workflows.
4. Announce migration: 0.5+/cookbook is the upgrade path from rust-url.