Skip to content

Commit cf97c5a

Browse files
committed
Release v0.6.0: fix stim_compat doc drift, version bump across all metadata
- README.md / PYPI_README.md: fix Stim workflow example that imported stim_circuit_to_check_matrix, a function removed since 0.5.9 and superseded by from_stim_detector_error_model. Verified by AST-parsing every documented import against the real module surface. - Bump version to 0.6.0 across pyproject.toml, Cargo.toml, Cargo.lock, python/qector_decoder_v3/__init__.py, CITATION.cff, codemeta.json, and plain-text version labels in INSTALL.md, README.md, PYPI_README.md, docs/GPU_AND_CUPY.md, docs/SERVICE_API_SCHEMA.md, examples/*.py. - CHANGELOG.md / RELEASE_NOTES.md: add matching 0.6.0 entries.
1 parent 8a77086 commit cf97c5a

16 files changed

Lines changed: 73 additions & 26 deletions

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,30 @@ environment so report figures trace back to a specific build.
77

88
## [Unreleased]
99

10+
## [0.6.0] - 2026-07-05
11+
12+
### Fixed
13+
- **README.md / PYPI_README.md**: the Stim detector-error-model workflow
14+
example referenced `qector_decoder_v3.stim_compat.stim_circuit_to_check_matrix`,
15+
a function that does not exist (it was superseded by
16+
`from_stim_detector_error_model` during the 0.5.9 cleanup, without the
17+
docs being updated). Both quick-start examples now import
18+
`from_stim_detector_error_model` and build the `check_to_qubits` mapping
19+
from a real `stim.DetectorErrorModel` (`circuit.detector_error_model(...)`),
20+
matching the documented function's actual signature.
21+
- **Python 3.9 compatibility**: replaced PEP 604 `X | None` union syntax with
22+
`typing.Optional`/`typing.Union` in `backend.py`, `qiskit_plugin.py`,
23+
`stim_compat.py`, and `__init__.py`. This syntax requires Python 3.10+ and
24+
would raise `TypeError` at import time on 3.9, contradicting the package's
25+
own `requires-python = ">=3.9"` and the `smoke-import-py3.9` CI job.
26+
- Hardened `test_clean_venv_install.py`'s qiskit-absent smoke test to also
27+
stub out `qiskit`, not just `stim`/`pymatching`.
28+
- Version-string consistency: bumped `pyproject.toml`, `Cargo.toml`,
29+
`Cargo.lock`, `python/qector_decoder_v3/__init__.py`, `CITATION.cff`, and
30+
`codemeta.json` to `0.6.0`, and updated all plain-text version labels in
31+
`INSTALL.md`, `README.md`, `PYPI_README.md`, `docs/GPU_AND_CUPY.md`,
32+
`docs/SERVICE_API_SCHEMA.md`, and the `examples/` scripts.
33+
1034
## [0.5.9] - 2026-07-02
1135

1236
### Added

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ authors:
66
- family-names: Lessard
77
given-names: Guillaume
88
affiliation: iD01t Productions
9-
version: 0.5.9
10-
date-released: 2026-07-02
9+
version: 0.6.0
10+
date-released: 2026-07-05
1111
url: https://www.qector.store
1212
repository-code: https://github.com/GuillaumeLessard/qector-decoder
1313
identifiers:

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.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "qector_decoder_v3"
3-
version = "0.5.9"
3+
version = "0.6.0"
44
edition = "2021"
55
authors = ["Guillaume Lessard / iD01t Productions <guiliguili2705@gmail.com>"]
66
description = "Source-available Rust QEC decoder core (Union-Find, exact polynomial MWPM/Blossom, Sparse Blossom, BP-OSD) with CPU/CUDA/OpenCL batch decoding and PyO3 bindings"

INSTALL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Installation Guide - QECTOR Decoder v0.5.9
1+
# Installation Guide - QECTOR Decoder v0.6.0
22

33
The current repository does **not** include `install.py`. Use the source build path below.
44

@@ -24,7 +24,7 @@ $env:PYO3_PYTHON = (Resolve-Path .\.venv\Scripts\python.exe).Path
2424
This command has been verified from a fresh clone on a second Windows PC with Python 3.11. The expected successful ending is:
2525

2626
```text
27-
Installed qector-decoder-v3-0.5.9
27+
Installed qector-decoder-v3-0.6.0
2828
QECTOR OK
2929
```
3030

PYPI_README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ Stim workflow:
7878
```python
7979
import stim
8080
from qector_decoder_v3 import BlossomDecoder
81-
from qector_decoder_v3.stim_compat import stim_circuit_to_check_matrix
81+
from qector_decoder_v3.stim_compat import from_stim_detector_error_model
8282

8383
circuit = stim.Circuit.generated(
8484
"surface_code:rotated_memory_z",
@@ -87,7 +87,8 @@ circuit = stim.Circuit.generated(
8787
after_clifford_depolarization=0.005,
8888
)
8989

90-
checks, n_qubits = stim_circuit_to_check_matrix(circuit)
90+
dem = circuit.detector_error_model(decompose_errors=True)
91+
checks, n_qubits = from_stim_detector_error_model(dem)
9192
decoder = BlossomDecoder(checks, n_qubits)
9293
```
9394

@@ -173,7 +174,7 @@ admin@qector.store
173174
author = {Guillaume Lessard},
174175
title = {{QECTOR Decoder v3}: Rust/Python Quantum Error Correction Decoding Platform},
175176
year = {2026},
176-
version = {0.5.9},
177+
version = {0.6.0},
177178
url = {https://www.qector.store},
178179
note = {Source-available. Commercial license required for commercial use.}
179180
}

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ if CUDABatchDecoder.is_available():
106106
```python
107107
import stim
108108
from qector_decoder_v3 import BlossomDecoder
109-
from qector_decoder_v3.stim_compat import stim_circuit_to_check_matrix
109+
from qector_decoder_v3.stim_compat import from_stim_detector_error_model
110110

111111
circuit = stim.Circuit.generated(
112112
"surface_code:rotated_memory_z",
@@ -115,7 +115,8 @@ circuit = stim.Circuit.generated(
115115
after_clifford_depolarization=0.005,
116116
)
117117

118-
checks, n_qubits = stim_circuit_to_check_matrix(circuit)
118+
dem = circuit.detector_error_model(decompose_errors=True)
119+
checks, n_qubits = from_stim_detector_error_model(dem)
119120
decoder = BlossomDecoder(checks, n_qubits)
120121
```
121122

@@ -173,7 +174,7 @@ See [`docs/API_STABILITY.md`](docs/API_STABILITY.md) before building production
173174

174175
## Validated evidence snapshot
175176

176-
All public claims should cite an artifact, commit, command, machine, and version. The current package release is **v0.5.9**; checked-in evidence should be regenerated before making new performance claims.
177+
All public claims should cite an artifact, commit, command, machine, and version. The current package release is **v0.6.0**; checked-in evidence should be regenerated before making new performance claims.
177178

178179
### MWPM parity against PyMatching
179180

@@ -400,7 +401,7 @@ See [`COMMERCIAL.md`](COMMERCIAL.md) and [`LICENSE`](LICENSE) for full terms.
400401
author = {Guillaume Lessard},
401402
title = {{QECTOR Decoder v3}: Rust/Python Quantum Error Correction Decoding Platform},
402403
year = {2026},
403-
version = {0.5.9},
404+
version = {0.6.0},
404405
url = {https://www.qector.store},
405406
note = {Source-available. Commercial license required for commercial use.}
406407
}

RELEASE_NOTES.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,24 @@
1+
# QECTOR Decoder v0.6.0 - Release Notes
2+
3+
**Version**: 0.6.0
4+
**Date**: 2026-07-05
5+
6+
This release fixes documented API drift in `README.md` and `PYPI_README.md`:
7+
the Stim detector-error-model quick-start referenced
8+
`stim_compat.stim_circuit_to_check_matrix`, a function removed during the
9+
`0.5.9` cleanup and superseded by `from_stim_detector_error_model`. Both
10+
examples now use the real function against a `stim.DetectorErrorModel`. This
11+
release also fixes genuine Python 3.9 incompatibilities: PEP 604 `X | None`
12+
union syntax (3.10+ only) in `backend.py`, `qiskit_plugin.py`,
13+
`stim_compat.py`, and `__init__.py` is replaced with
14+
`typing.Optional`/`typing.Union`, matching the package's stated
15+
`requires-python = ">=3.9"` and its `smoke-import-py3.9` CI job. Package
16+
metadata (`pyproject.toml`, `Cargo.toml`, `Cargo.lock`, runtime fallback
17+
version, `CITATION.cff`, `codemeta.json`) and all plain-text version labels
18+
across docs and `examples/` are bumped to `0.6.0`.
19+
20+
---
21+
122
# QECTOR Decoder v0.5.9 - Release Notes
223

324
**Version**: 0.5.9

codemeta.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"@context":"https://doi.org/10.5063/schema/codemeta-2.0","@type":"SoftwareSourceCode","name":"QECTOR Decoder v3","version":"0.5.9","description":"Source-available Rust and Python quantum error correction decoder package for QEC research, PyMatching-compatible validation, belief-matching, BP-OSD and qLDPC workflows, CPU/GPU batch decoding, and reproducible benchmark evidence.","codeRepository":"https://github.com/GuillaumeLessard/qector-decoder","url":"https://www.qector.store","downloadUrl":"https://pypi.org/project/qector-decoder-v3/","identifier":"https://doi.org/10.5281/zenodo.20825980","license":"https://www.qector.store/license.html","programmingLanguage":["Python","Rust"],"runtimePlatform":["CPython 3.9","CPython 3.10","CPython 3.11","CPython 3.12","CPython 3.13","Linux x86_64","Windows x64","macOS arm64"],"keywords":["quantum error correction","QEC","quantum computing","quantum decoder","MWPM","PyMatching","Stim","Sinter","LDPC","qLDPC","BP-OSD","belief matching","union find decoder","surface code","Rust","Python","PyO3","maturin","QECTOR"],"author":{"@type":"Person","givenName":"Guillaume","familyName":"Lessard","affiliation":"iD01t Productions"},"publisher":{"@type":"Organization","name":"iD01t Productions"}}
1+
{"@context":"https://doi.org/10.5063/schema/codemeta-2.0","@type":"SoftwareSourceCode","name":"QECTOR Decoder v3","version":"0.6.0","description":"Source-available Rust and Python quantum error correction decoder package for QEC research, PyMatching-compatible validation, belief-matching, BP-OSD and qLDPC workflows, CPU/GPU batch decoding, and reproducible benchmark evidence.","codeRepository":"https://github.com/GuillaumeLessard/qector-decoder","url":"https://www.qector.store","downloadUrl":"https://pypi.org/project/qector-decoder-v3/","identifier":"https://doi.org/10.5281/zenodo.20825980","license":"https://www.qector.store/license.html","programmingLanguage":["Python","Rust"],"runtimePlatform":["CPython 3.9","CPython 3.10","CPython 3.11","CPython 3.12","CPython 3.13","Linux x86_64","Windows x64","macOS arm64"],"keywords":["quantum error correction","QEC","quantum computing","quantum decoder","MWPM","PyMatching","Stim","Sinter","LDPC","qLDPC","BP-OSD","belief matching","union find decoder","surface code","Rust","Python","PyO3","maturin","QECTOR"],"author":{"@type":"Person","givenName":"Guillaume","familyName":"Lessard","affiliation":"iD01t Productions"},"publisher":{"@type":"Organization","name":"iD01t Productions"}}

docs/GPU_AND_CUPY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# GPU & CuPy Acceleration
22

3-
**QECTOR Decoder v3 — v0.5.9**
3+
**QECTOR Decoder v3 — v0.6.0**
44

55
This document describes the **hybrid GPU acceleration strategy** in QECTOR
66
Decoder v3: a Rust native-CUDA batch hot path plus an optional CuPy backend for

0 commit comments

Comments
 (0)