Skip to content

Commit b7dd6c8

Browse files
committed
docs: update README/PYPI_README/CHANGELOG for v0.6.5 release
- Fixed stale 'version = {0.6.4}' citation blocks in both README.md and PYPI_README.md (pyproject.toml/Cargo.toml/CITATION.cff/codemeta.json were already correctly at 0.6.5). - Added 'New in v0.6.5' / 'v0.6.5 Highlights' sections to both files, documenting only verified fixes: mypy clean, test NameError fix, PredecodedDecoder backend name fix, ruff clean, example_batch.py fix. - Added missing decoder-family table rows present in the actual compiled module but undocumented: LERBenchmark, HybridDecoder, SlidingWindowDecoder, StreamingDecoder, NeuralPredecoder, GNNPredecoder, GNNTrainer, LookupTableDecoder. Verified every name via runtime hasattr() check against the actual v0.6.5 wheel, not assumed. - Verified all existing PYPI_README.md code samples (quick start, batch decoding, stim workflow, GPU availability check) still execute correctly against the real compiled module -- no functional doc fixes needed there. - CHANGELOG.md [0.6.5]: appended today's additional verified fixes (test NameError, ruff clean, example_batch.py, CI secret injection) alongside the existing entry. - Cargo.lock: picked up the 0.6.4->0.6.5 version bump from Cargo.toml.
1 parent 5e107ea commit b7dd6c8

4 files changed

Lines changed: 48 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ environment so report figures trace back to a specific build.
1414
- **Test imports**: `test_comprehensive_suite.py` now correctly imports `DecoderPool`, `get_decoder`, `clear_decoder_cache`, `get_decoder_pool` from the local source.
1515
- **CI resilience**: Ensured v0.6.5 Python layer matches the Rust source — no more version skew between wheel metadata and runtime API.
1616
- **API consistency**: Fixed `PredecodedDecoder` backend validation to accept `"union_find"` (with underscore) matching the canonical decoder names.
17+
- **Test suite NameError**: `test_comprehensive_suite.py::_run_pool_test` had a genuine bug (`syndrome` referenced instead of `syndromes`) — a live crash risk on any machine where Windows spawn multiprocessing succeeds. Fixed and verified: full suite run 1005 passed, 83 skipped, 0 failed (excluding one unrelated example-script issue, also fixed below).
18+
- **ruff clean**: Full repo now passes `ruff format --check` and `ruff check` with zero errors; `.venv`, `.venv_clean_test`, `target`, `dist`, `lib`, `proto` excluded from lint scope; per-file ignores added for `cpu_benchmark_report.py` and `test_exports.py`.
19+
- **`examples/example_batch.py`**: was constructing `CPUBatchDecoder`/`OpenCLBatchDecoder`/`CUDABatchDecoder` (Union-Find-based, weight ≤2 checks only) against a weight-4 surface code, which the decoders correctly reject at construction. Switched to `generate_ring_code_checks()`, the correct weight-2 graph-like code family for this decoder class. Verified: `python/tests/test_examples.py` passes (1 passed in 154.39s), and the script runs end-to-end.
20+
- **CI secret injection**: Regenerated and verified the `RUST_SRC_B64_1/2/3` GitHub Actions secrets (byte-identical round-trip checked before upload). Confirmed full 15-platform wheel build (Linux/Windows/macOS x86_64/aarch64 x Python 3.9-3.13) succeeds end-to-end.
1721

1822
### Changed
1923
- Bumped package, crate, runtime fallback, citation, and metadata versions to `0.6.5` across `pyproject.toml`, `Cargo.toml`, `python/qector_decoder_v3/__init__.py`, `CITATION.cff`, `codemeta.json`, `README.md`, `PYPI_README.md`, docs, and examples.

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

PYPI_README.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,14 @@ decoder = BlossomDecoder(checks, n_qubits)
120120
| `DecodeResult` | Structured decode result | Stable public API |
121121
| `decode_with_diagnostics` | Decode with diagnostics | Stable public API |
122122
| `Workbench` | High-level orchestration | Stable public API |
123+
| `SlidingWindowDecoder` | Multi-round streaming workflows | Experimental |
124+
| `StreamingDecoder` | Continuous streaming decode session | Experimental |
125+
| `HybridDecoder` | Combined Union-Find + Blossom fallback routing | Experimental |
126+
| `LookupTableDecoder` | Precomputed small-code lookup decoding | Experimental |
127+
| `NeuralPredecoder` | Learned predecoder front-end | Research/experimental |
128+
| `GNNPredecoder` | Graph neural network predecoder | Research/experimental |
129+
| `GNNTrainer` | Training harness for `GNNPredecoder` | Research/experimental |
130+
| `LERBenchmark` | Logical error rate benchmarking harness | Experimental |
123131
| `stim_compat` | Stim circuit and DEM conversion | Stable utility |
124132
| `sinter_compat` | Sinter custom decoder integration | Stable utility |
125133
| `rest_api` | Local decoding service | Local/partner review only |
@@ -165,6 +173,18 @@ Do this before making any hardware-specific performance claim.
165173

166174
---
167175

176+
## v0.6.5 Highlights
177+
178+
| Fix | Description |
179+
| --- | --- |
180+
| mypy clean | Resolved all 8 type errors across `decode_mmap.py`, `decoder_pool.py`, and `belief_matching.py` |
181+
| Test suite fix | Genuine `NameError` (`syndrome``syndromes`) in the comprehensive test suite's multiprocessing pool test |
182+
| `PredecodedDecoder` fix | Backend validation now accepts `"union_find"` (with underscore), matching canonical decoder names |
183+
| ruff clean | Full repo passes `ruff format --check` and `ruff check` with zero errors |
184+
| `examples/example_batch.py` fix | Was using a weight-4 surface code against Union-Find-only batch decoders (weight ≤2 only); switched to a ring code |
185+
186+
---
187+
168188
## v0.6.4 Highlights
169189

170190
| Feature | Description |
@@ -204,7 +224,7 @@ Contact:
204224
author = {Guillaume Lessard},
205225
title = {{QECTOR Decoder v3}: Rust/Python Quantum Error Correction Decoding Platform},
206226
year = {2026},
207-
version = {0.6.4},
227+
version = {0.6.5},
208228
url = {https://www.qector.store},
209229
note = {Source-available. Commercial license required for commercial use.}
210230
}

README.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,13 @@ correction = decoder.decode(syndrome)
180180
| `decode_with_diagnostics` | Decode with detailed diagnostic info | Stable public API |
181181
| `Workbench` | High-level workbench orchestration | Stable public API |
182182
| `SlidingWindowDecoder` | Multi-round streaming workflows | Experimental |
183+
| `StreamingDecoder` | Continuous streaming decode session | Experimental |
184+
| `HybridDecoder` | Combined Union-Find + Blossom fallback routing | Experimental |
185+
| `LookupTableDecoder` | Precomputed small-code lookup decoding | Experimental |
186+
| `NeuralPredecoder` | Learned predecoder front-end | Research/experimental |
187+
| `GNNPredecoder` | Graph neural network predecoder | Research/experimental |
188+
| `GNNTrainer` | Training harness for `GNNPredecoder` | Research/experimental |
189+
| `LERBenchmark` | Logical error rate benchmarking harness | Experimental |
183190
| `stim_compat` | Stim circuit / DEM conversion | Stable utility |
184191
| `sinter_compat` | Sinter custom decoder integration | Stable utility |
185192
| `rest_api` | Local service endpoint | Local/partner review only |
@@ -188,6 +195,19 @@ See the public API regression coverage in [python/tests](python/tests) before bu
188195

189196
---
190197

198+
## New in v0.6.5
199+
200+
| Fix | Description |
201+
| --- | --- |
202+
| mypy clean | Resolved all 8 type errors across `decode_mmap.py`, `decoder_pool.py`, and `belief_matching.py` — strict type checking passes on the full Python layer |
203+
| Test suite fix | Genuine `NameError` (`syndrome``syndromes`) in `test_comprehensive_suite.py::_run_pool_test` fixed — was a live crash risk on any machine where Windows spawn multiprocessing succeeds |
204+
| `PredecodedDecoder` fix | Backend validation now accepts `"union_find"` (with underscore), matching the canonical decoder names |
205+
| ruff clean | Full repo passes `ruff format --check` and `ruff check` with zero errors; `.venv`/`.venv_clean_test`/`target`/`dist`/`lib`/`proto` excluded from lint scope |
206+
| `examples/example_batch.py` fix | Was constructing `CPUBatchDecoder`/`OpenCLBatchDecoder`/`CUDABatchDecoder` (Union-Find-based, weight ≤2 only) against a weight-4 surface code; switched to `generate_ring_code_checks()`, the correct weight-2 code family for this decoder class |
207+
| CI reliability | Verified full 15-platform wheel build (Linux/Windows/macOS × Python 3.9–3.13) and full test suite (1005 passed, 83 skipped) against the release build |
208+
209+
---
210+
191211
## New in v0.6.4
192212

193213
| Feature | Description |
@@ -214,7 +234,7 @@ If you need the full desktop GUI, hosted automation stack, or additional documen
214234

215235
## Validated evidence snapshot
216236

217-
All public claims should cite an artifact, commit, command, machine, and version. The current package release is **v0.6.4**; checked-in evidence should be regenerated before making new performance claims.
237+
All public claims should cite an artifact, commit, command, machine, and version. The current package release is **v0.6.5**; checked-in evidence below was generated under v0.6.4 and is labeled accordingly — regenerate before making new performance claims against v0.6.5.
218238

219239
> **v0.6.4 additions**: AVX2 SIMD transpose (CPU batch 1.1M shots/s), BP-OSD convergence cap (`decode_timed`), Blossom intra-decode Rayon parallelism, DecoderPool auto-Rayon on Windows.
220240
@@ -428,7 +448,7 @@ See [LICENSE](LICENSE) for the repository terms and contact the commercial team
428448
author = {Guillaume Lessard},
429449
title = {{QECTOR Decoder v3}: Rust/Python Quantum Error Correction Decoding Platform},
430450
year = {2026},
431-
version = {0.6.4},
451+
version = {0.6.5},
432452
url = {https://www.qector.store},
433453
note = {Source-available. Commercial license required for commercial use.}
434454
}

0 commit comments

Comments
 (0)