Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project follows Semantic Versioning.
[0.2.14] - 2026-07-31¶
Added¶
- Added a package-owned NumPy statevector simulator for exact, sampled, and statevector translation verification without relying on an SDK adapter.
- Added canonical neutral-circuit serialization helpers shared by
export --format internal-jsonandtranslate --to-format internal-json.
Changed¶
- Refocused the package on local quantum SDK comparison, translation, and semantic verification, and updated the project description, documentation, CI matrix, compatibility metadata, tests, and generated results accordingly.
- Consolidated five near-duplicate per-SDK notebooks into
04_compare_sdk_workflows.ipynb, then renumbered the translation notebooks as05through08. - Made committed reference results the single source for generated SDK audit documentation instead of tracking a second copy of the audit assets.
- Made NumPy a base dependency because neutral exact verification is part of the core package.
- Reduced
quantum_backend_bench.coreto foundational internal types; the package root remains the supported public API.
Removed¶
- Removed the QuTiP execution adapter and extra; neutral verification retains the useful simulator functionality.
- Removed discovery-only qBraid and Q# / QDK integrations and their optional dependency extras.
- Removed the hardware-preparation command and API, which were outside the local comparison and translation scope.
- Removed the
amplitude-estimation,phase-estimation,quantum-kernel, andvqe-ansatzworkloads because they did not strengthen SDK parity or translation coverage. - Removed the redundant
translate-observableCLI alias; usetranslate-hamiltonianfor both single-term observables and multi-term Pauli Hamiltonians. - Removed the empty
examples/translation/roadmap/placeholder and its stale notebook and test scaffolding after the formerly planned fixtures moved into supported coverage.
[0.2.13] - 2026-07-21¶
Added¶
- Added
translate-workflow --verify semanticwith exact neutral measurement-distribution TVD, Pauli expectation-value maximum absolute error, configurable distribution/expectation tolerances, result-schema validity, and report fields. - Added
roundtrip-audit --workflow-verifyplus optional-SDK execution fixtures that run generated Qiskit Aer, Cirq, PennyLane, and Braket LocalSimulator workflows and inspect their neutral results. - Added public neutral workflow evaluation and result-contract validation helpers.
- Added CI validation for every committed neutral JSON Schema and matching example, including local cross-schema
$refresolution.
Changed¶
- Generated Qiskit Aer, Cirq, PennyLane, and Braket LocalSimulator workflow scripts now emit schema-versioned runtime counts, normalized probabilities, and populated Pauli expectations instead of placeholder result fields.
- Updated workflow golden outputs, round-trip audit artifacts, semantic contracts, roadmap guidance, and translation/schema documentation for executable result fidelity.
- Repaired all neutral JSON Schemas with Draft 2020-12
$schemaand stable$iddeclarations;workflow-jsonnow references the sharedpauli-jsonschema.
Fixed¶
- Pinned the CI notebook PNG render stack and removed version-dependent Matplotlib metadata so committed documentation plots regenerate byte-for-byte.
- Golden translation generation now applies the repository's Black configuration so regeneration and
black .produce identical Python fixtures. - Result normalization now rejects invalid field types, count/shot mismatches, non-normalized probabilities, count/probability inconsistencies, non-finite expectations, and unsupported schema versions with structured diagnostics.
- Workflow emission now rejects multiple distinct distribution target sets, missing result requests, and explicit measurements without a portable distribution result request.
[0.2.12]¶
Added¶
- Added neutral
RESET,BARRIER, andDELAYcircuit annotations across internal JSON, OpenQASM import/export, static SDK importers, and target-aware SDK emitters where local syntax can preserve them. - Added
canonicalandstatevectorcircuit verification modes for neutral structure checks and small noiseless statevector comparison up to global phase. - Added accepted and rejected translation fixtures for annotation preservation, OpenQASM annotation import/export, nonliteral delay diagnostics, and nonliteral reset-target diagnostics.
Changed¶
- Updated the internal-circuit JSON Schema, schema example, translation semantic contract, migration-audit guidance, and circuit translation docs for reset/barrier/delay annotations.
- Tightened annotation diagnostics so SDK outputs warn when reset, barrier, or delay annotations are represented only as neutral comments.
- Extended
roundtrip-auditwith--verifyfor circuit round trips and reports canonical/statevector verification fields when selected. - Clarified the optional-SDK compatibility review cadence around the checked-in CI constraint bands.
[0.2.11] - 2026-07-14¶
Added¶
- Promoted the Braket
circuit.expectation(...)Pauli result-type fixture into the accepted workflow translation corpus with canonical reimport verification. - Extended the neutral
internal-circuitmodel with named quantum/classical register metadata, measurement keys, bit-order labels, global phase metadata, and optional neutral local noise-channel annotations. - Added richer neutral circuit gate coverage for
SX, phase/P,U,CCX, and controlled rotations (CRX,CRY,CRZ) across supported static import, emit, and exact-verification paths. - Added neutral local noise-channel emission for SDK targets where local channel syntax is available, while keeping provider-calibrated noise semantics outside the model.
Changed¶
- Updated translation semantic contracts,
translation-auditcapability rows, JSON schemas, schema examples, and migration/round-trip expected artifacts to describe the expanded neutral circuit contract. - Updated circuit translation and roadmap documentation to distinguish implemented neutral local noise annotations from provider-specific calibrated noise behavior.
- Clarified project scope across README, usage, compatibility, limitations, roadmap, and release policy docs, including core/peripheral workflows, discovery-only SDKs, hardware-preparation exports, benchmark expansion guardrails, and CLI command groups.
[0.2.10] - 2026-07-10¶
Added¶
- Added circuit translation SDK adapter modules for Qiskit Aer, Cirq, PennyLane, and Braket LocalSimulator with explicit import, emit, capability, and diagnostic hooks.
- Added
scripts/check_translation_artifacts.pyto regenerate migration-audit and roundtrip-audit expected artifacts in a temporary copy and fail when committed examples drift. - CI now runs the translation audit artifact drift checker alongside the existing translation corpus and golden-output checks.
- Promoted the PennyLane QNode Pauli-expectation workflow fixture into the accepted executable translation corpus.
- Added workflow support for arithmetic parameter expressions over declared parameters, such as
theta / 2. - Added tested optional-SDK version-band metadata to the compatibility report.
Changed¶
- Circuit translation import dispatch and SDK source emitters now route through the SDK adapter registry while preserving the existing neutral translation behavior.
translation-auditcapability rows now expose circuit adapter import, emit, and diagnostic hook metadata for each free local SDK target.
[0.2.9] - 2026-07-10¶
Added¶
- Translation reports now include an explicit semantic contract that states the lossless neutral-subset guarantee, preserved semantics, rewrites, rejected constructs, unmodeled behavior, verification modes, and free local SDK target scope.
quantum-bench translate-checknow supports--to-format,--explain, and--save-markdownfor target-aware migration-audit guidance covering preserved semantics, syntax rewrites, rejection categories, unmodeled behavior, and recommended verification.quantum-bench translate-allnow emits selected SDK target source files, neutralinternal-json, per-target JSON reports, a combined JSON report, and a compact Markdown summary in one artifact directory.- Translation examples now include migration-audit reports, realistic accepted SDK snippets, purpose-level workflow JSON, round-trip audit artifacts, portable rewrites for rejected patterns, roadmap-only intent examples, and result-normalization edge cases.
- Added a translation migration-audit notebook and refreshed the circuit/workflow translation notebooks to show semantic contracts, target-aware audit guidance, and purpose-level workflow examples.
Changed¶
- Translation documentation and SDK workflow guidance now describe the semantic-contract and migration-audit report fields so SDK portability checks are easier to use in CI and migration reviews.
[0.2.8] - 2026-07-09¶
Added¶
- Versioned neutral translation schemas for
internal-circuit,pauli-json,workflow-json, andresult-json, with JSON Schema files and example payloads. - Translation reports now include neutral schema metadata for supported input and output formats.
translation-auditnow reports a fuller SDK translation coverage matrix with supported gates, parameter forms, measurement/result shapes, diagnostics, caveats, and verification modes.
Changed¶
- Neutral JSON emitters now include
schema_version: "0.1"while remaining tolerant of existing unversioned local examples.
[0.2.7] - 2026-07-09¶
Added¶
- Project roadmap documenting the next SDK interop and translation stabilization track, including neutral schema versioning, translation coverage matrices, a planned
translate-allworkflow, conservative diagnostics, SDK adapter refactoring, and optional SDK compatibility hardening. - Generated documentation site entry and navigation link for the roadmap page.
Changed¶
- README and usage documentation now link to the roadmap alongside release notes and translation docs.
- Source distributions now include
ROADMAP.md. - The
devextra now includes the clean-venv dependencies needed by the default test suite. - Test coverage now avoids redundant generated-site builds and expensive SDK rendering in CLI dispatch tests while preserving draw and plot artifact coverage.
- Example scripts now use compact adaptive workloads and installed-backend selection for faster, more portable default runs.
[0.2.6] - 2026-06-05¶
Added¶
- Free local SDK audit commands for parity scorecards, semantic checks, broader noise model matrices and smoke execution, compilation/structure comparisons, and neutral-to-SDK-to-neutral round-trip translation verification, with JSON, CSV, and Markdown artifact outputs.
- Circuit audit coverage for rotation, CZ, SWAP, and controlled-phase gates, plus Hamiltonian and parameterized workflow round-trip audits.
- Public audit helpers for SDK parity, semantic audits, noise model audits, compilation audits, round-trip translation audits, and audit artifact writers.
- Generated SDK audit documentation page and committed reference audit artifacts.
Changed¶
- Documentation now reflects the broader local noise model support across Cirq, PennyLane, and Qiskit Aer.
[0.2.5] - 2026-06-05¶
Added¶
- Weighted Pauli observable and Hamiltonian translation across Qiskit Aer, Cirq, PennyLane, Braket LocalSimulator, and neutral
pauli-jsonformats. quantum-bench translate-hamiltonian,quantum-bench translate-observable, andquantum-bench translation-auditcommands for SDK migration beyond circuit construction.- Canonical Pauli-term and small dense-matrix verification, JSON reports, public Python API helpers, SDK-format Hamiltonian fixtures, golden outputs, rejected diagnostics, audit filters, and a tutorial notebook for observable/Hamiltonian translation workflows.
- Workflow-level translation for parameterized circuits, parameter bindings, measurement/expectation requests, local execution wrappers, neutral result-object normalization, and qubit-wise Pauli measurement grouping through
translate-workflow,translate-result, andgroup-pauli-terms. - Canonical workflow verification, golden expected outputs for parameterized workflow translations, first-pass static parameterized workflow importers for Qiskit/Cirq/PennyLane/Braket snippets, result-normalization fixtures, generated scripts that emit neutral result JSON, and a parameterized workflow translation notebook.
- Tutorial notebook polish for v0.2.5, including consistent Variables and Parameters blocks, clean standard Python 3 kernel metadata, a Hamiltonian coefficient plot with subscripted Pauli labels, result probability plots, and expanded translation fixture documentation.
[0.2.4] - 2026-06-04¶
Added¶
quantum-bench translatefor converting supported OpenQASM, internal JSON, and static SDK circuit snippets through the neutral circuit model into Cirq, Qiskit, PennyLane, Braket LocalSimulator, OpenQASM, or internal JSON outputs.quantum-bench translate-checkfor preflight inspection of translatable circuit sources, including--jsonstdout reports and--save-reportartifacts for CI workflows.- Exact and sample-based translation verification with total-variation-distance reporting, backend caveat diagnostics, runnable translated script output, and structured translation report helpers in the public Python API.
- Translation example corpus with expected outputs, rejected unsupported-construct fixtures, semantic verification, and golden-output maintenance scripts.
- Circuit translation documentation, generated-site page, and tutorial notebook covering supported SDK patterns, all-target local SDK translation, SDK-native visual circuit comparison, report artifacts, verification modes, caveats, and maintenance workflows.
Changed¶
- CI now verifies translation examples and checks generated expected outputs for drift.
- Source distributions now include circuit translation docs and translation example fixtures, including OpenQASM examples.
[0.2.3] - 2026-06-03¶
Added¶
- Shared notebook utility helpers for artifact paths, result summaries, top-state tables, measurement-series extraction, and tutorial verification checks.
- Generated notebook-results documentation pipeline that rebuilds
docs/RESULTS.md, JSON/CSV assets, and PNG plots from executed notebook artifacts. - CI stale-result checks for notebook-generated results and documentation assets.
- Packaging tests that keep moved docs and generated notebook result assets included in source distributions.
Changed¶
- Moved long-form project documentation from the repository root into
docs/and updated README, usage, Pages, packaging, and link validation paths. - Renumbered SDK workflow notebooks to keep tutorial notebook ordering unique and contiguous.
- Refactored tutorial notebooks to use the shared notebook helpers and keep committed notebooks output-free with standard Python kernel metadata.
- Updated the generated site build so
results.htmlis rendered from notebook-derived tables, plots, and raw artifacts. - Scrubbed reference-result bundles to remove volatile runtime, package, environment, and git metadata while preserving deterministic structural and quality metrics.
- Expanded CI and Pages workflows to lint docs scripts, install documentation plotting dependencies, watch moved docs paths, and validate generated notebook result freshness.
Fixed¶
- Adjusted the smoke-suite Grover case to use a valid single marked-state amplification iteration for the configured qubit count.
- Fixed documentation site imports so the Pages builder works both as a direct script and as an imported test module.
- Fixed clean-checkout documentation builds by falling back to committed notebook result assets when ignored local notebook artifacts are absent.
[0.2.2] - 2026-06-03¶
Added¶
- SDK utility CLI commands for circuit export, OpenQASM import, exact probability/amplitude inspection, result-parity diagnosis, and hardware-preparation artifact generation.
- Applied workload builders for
vqe-ansatz,phase-estimation,amplitude-estimation, andquantum-kernel. - Parameter-sweep support for
quantum-bench run,quantum-bench compare, and experiment manifests. - Noise model selection for
quantum-bench noise-sweep, including bit-flip, phase-flip, amplitude-damping, and readout-error modes where supported by backend adapters. - SDK workflow notebooks for Cirq, Qiskit Aer, PennyLane, Braket LocalSimulator, and QuTiP/statevector usage.
- Notebook result cells with readable benchmark tables, key metric summaries, top-state probability plots, saved artifacts, and verification checks.
Changed¶
- Result tables, CSV records, and Markdown reports now include compile/transpile metadata when backends provide it.
quantum-bench recommendnow supports constraint filters for noise support, exact statevectors, external runtimes, maximum qubits, and Python version notes.- Cirq, PennyLane, and Qiskit adapters now report richer compile metadata for supported executions.
- README and usage documentation now include the SDK utility workflows and new applied workloads.
- Tutorial notebooks now open with problem context, quantum-advantage notes, SDK/backend rationale, and variable/parameter definitions.
[0.2.1] - 2026-06-03¶
Added¶
- CI docs-link validation for Markdown sources and generated GitHub Pages output.
- CI Cirq smoke regression gate that compares deterministic quality and structure metrics against the checked-in reference bundle.
docsoptional dependency extra for local documentation build and validation tooling.- pyQuil package-level circuit-construction smoke coverage that does not require local
qvmorquilcexecutables.
Changed¶
- Optional-backend CI smoke jobs now fail when selected tests silently skip instead of reporting a false green run.
- Default local
pytestruns now focus on the core suite; optional SDK and generated-site docs checks are selected explicitly in CI or with pytest markers. - Generated Pages output now includes linked repository assets such as examples, notebooks, workflow files, devcontainer metadata, and the license.
[0.2.0] - 2026-06-03¶
Added¶
quantum-bench compatibilityfor reporting Python support, installed SDK integrations, account/runtime requirements, and CI coverage status.quantum-bench bundlefor creating reproducible result bundles with normalized JSON/CSV outputs, flattened records, Markdown reports, optional plots, environment metadata, and bundle READMEs.- Public
results_to_records(...)andresults_to_dataframe(...)helpers for notebook and pandas workflows. COMPATIBILITY.mddocumenting supported Python versions, optional SDK extras, local runtime requirements, CI coverage, and the free/local simulator scope.- Tutorial notebooks for a Cirq quickstart, local simulator comparison, and Hamiltonian simulation case study.
- A Cirq smoke reference result bundle under
examples/reference_results/for the two-minute first-run workflow. - GitHub Pages workflow and portfolio-style documentation landing page for the project website.
RESULTS.mdwith curated benchmark tables, reproduction commands, and generated plot assets for the website.- Live README badges for CI, Pages, PyPI, supported Python versions, license, and local simulator backends.
Changed¶
quantum-bench recommendnow explains installed backend recommendations and reports unavailable execution backends with install/runtime caveats.- README and usage documentation now emphasize the free, local, credential-free default execution path.
- Reference result artifacts are grouped under
examples/reference_results/and copied into the generated Pages site. - The source distribution now includes compatibility docs, tutorial notebooks, and reference result artifacts.
- Notebook and plot examples consistently use ordered ket notation for displayed computational-basis states.
[0.1.7] - 2026-04-29¶
Added¶
- QAOA MaxCut benchmark for single-layer line and ring graph optimization workloads.
- Packaged comparison presets for runtime, noise, algorithmic, and SDK smoke studies.
quantum-bench presetcommands for listing, exporting, and running packaged presets.quantum-bench reportfor Markdown reports from saved JSON, result bundles, or CSV exports.- Experiment manifest
outputs.reportsupport for Markdown report generation. - Qiskit Aer depolarizing-noise injection for noisy benchmark wrappers.
Changed¶
- Backend discovery and result metadata now report Qiskit Aer depolarizing noise support.
- The standard suite now includes a small QAOA MaxCut optimization workload.
- The
allextra now targets the practical Python-only comparison stack;fullincludes heavyweight and external-runtime-backed SDK extras. - Optional backend tests are marked by Python SDK, heavyweight SDK, and external runtime requirements.
[0.1.6] - 2026-04-29¶
Added¶
quantum-bench doctorfor local integration diagnostics and install hints.- CLI validation for positive
--shotsand--repeats, probability-bounded success thresholds, and noise levels. - Backend runtime metadata in result rows, including transpilation/runtime caveats, external-process usage, local-only status, noise support, and backend package versions.
- Best-effort deterministic simulator seeding for backends that expose seed controls.
- Packaging regression coverage for required source-distribution documentation.
- Python 3.11 and 3.12 CI coverage.
- Backend-selection guidance, result-interpretation notes, and a reproducibility checklist in the documentation.
Changed¶
- CI now runs the main test/build job across the supported Python version matrix.
[0.1.5] - 2026-04-29¶
Added¶
THEORY.mdwith conceptual background for qubits, circuits, shots, distributions, metrics, noise models, benchmark families, and backend comparability.- Tables of contents for long-form and reference Markdown documentation.
- Public benchmark factory helpers for CLI-style benchmark configuration.
Changed¶
- Experiment manifest execution now builds benchmarks through shared core factory helpers instead of importing CLI internals.
- The
alloptional dependency extra now includesqbraid. - Optional-backend CI coverage now includes CUDA-Q and pyQuil smoke jobs, with CUDA-Q marked experimental.
Fixed¶
run_benchmarknow rejects invalidshotsvalues before dispatching to backend adapters.
[0.1.4] - 2026-04-29¶
Added¶
quantum-bench difffor comparing saved JSON or CSV result files with metric thresholds.- Public result-diff helpers for loading saved outputs, comparing metric deltas, and formatting diff tables.
Fixed¶
- pyQuil QVM discovery now requires local
qvmandquilcexecutables in addition to the Python package.
[0.1.3] - 2026-04-24¶
Added¶
- Distribution, heatmap, noise-quality, and suite runtime plot outputs.
- Plot gallery and circuit diagram export examples.
- Bra-ket notation for computational basis states in plots.
- Backend legend for suite runtime plots.
- GHZ plot-gallery noise sweep now spans 0% to 5%.
- Bernstein-Vazirani benchmark with configurable hidden bitstring.
- Deutsch-Jozsa benchmark with constant and linear balanced oracle modes.
- Quantum-volume-style random layered benchmark.
- CLI and suite coverage for the new benchmark families.
quantum-bench listandquantum-bench infodiscovery commands.- Suite dry-run/listing support with JSON suite manifest export.
- Standardized result metadata fields for benchmark family, case labels, depth, seed, oracle type, and noise level.
- Optional Qiskit Aer, CUDA-Q, pyQuil QVM, and QuTiP local execution adapters.
- Optional qBraid and Q# integration discovery extras.
- Experiment manifest runner with JSON/YAML loading, output export, and bundled research-style manifests.
- Runtime repeat statistics and environment capture in result metadata.
- Result schema and benchmark methodology documentation.
- Research helper examples for capability matrices, manifest generation, repeated-runtime analysis, schema inspection, noise manifests, and Markdown reports.
examples/README.mdwith a recommended research example workflow and expected artifacts.quantum-bench validatefor installed-backend correctness and regression checks.quantum-bench recommendfor backend selection by use case.- Problem statement, limitations, and citation metadata.
- Example scripts for oracle benchmarks, quantum-volume-style execution, and suite artifact export.
- Tests for new benchmark builders, CLI execution, and Cirq Bernstein-Vazirani correctness.
Changed¶
- CSV exports now include case labels and benchmark families.
- Plot labels now use standardized result case labels.
- Backend CLI choices are now driven by the backend registry.
- CLI result tables and CSV exports include repeat-aware runtime fields.
Fixed¶
- Benchmark validation errors now report clearer expected lengths and invalid parameter constraints.
[0.1.2] - 2026-04-24¶
Added¶
- CI workflow for formatting, linting, tests, build, and distribution checks.
- Optional backend extras for Cirq, PennyLane, Braket, pytket, plotting, and all integrations.
--summaryresult ranking output for CLI benchmark result commands.--save-csvexport support for benchmark results.quantum-bench suitecommand withsmoke,standard, andscalingpresets.- Public exports for suite and summary helpers.
- Additional tests for backend bitstring consistency, Grover success metrics, QFT structure, noise metadata, suites, CSV export, summary output, and result ranking.
Changed¶
- Split backend SDKs and plotting dependencies into optional extras.
- Removed tracked local Codex metadata from the repository.
Fixed¶
- Missing backend and plotting dependencies now report the matching optional extra install command.
[0.1.1] - 2026-04-23¶
Added¶
- Native circuit drawing through Cirq, PennyLane, Amazon Braket, and pytket.
quantum-bench drawCLI command for rendering benchmark circuits and optionally saving diagrams.USAGE.mdwith task-oriented CLI, Python API, result schema, and development workflow guidance.MANIFEST.in,.gitignore, and.gitattributesfor cleaner source distributions and repository hygiene.
Changed¶
- Updated README badges, installation guidance, release build instructions, and circuit drawing examples.
- Configured writable local runtime cache directories for matplotlib and Numba in Codespaces-style environments.
- Updated PennyLane execution to use
qml.set_shots(...).
Fixed¶
- Replaced deprecated or removed pytket
Circuit.optypes()usage with command-based gate histogram analysis. - Avoided Braket
LocalSimulatorNumba cache failures in restricted local environments. - Removed generated artifacts, egg-info metadata, and Python bytecode caches from git tracking.
[0.1.0] - 2026-04-23¶
Initial public release of quantum-backend-bench.
Added¶
- Backend-agnostic benchmarking package structure with a shared
BenchmarkSpecabstraction and a unifiedrun_benchmark(...)API. - Local execution backends for Cirq, PennyLane, and Amazon Braket
LocalSimulator, with no cloud credentials required. pytket-based structural analysis for circuit depth, gate counts, and two-qubit gate metrics.- Built-in benchmark builders for GHZ, QFT, random circuits, Grover search, Hamiltonian simulation, and noise sensitivity sweeps.
- Standardized metric calculation for runtime, measurement distributions, success probability, and total variation distance.
quantum-benchCLI withrun,compare, andnoise-sweepcommands.- JSON export helpers, matplotlib plotting utilities, and example scripts for backend comparison and noise benchmarking.
- Automated tests covering benchmark builders, backend interfaces, metric helpers, and CLI execution.
- GitHub Codespaces development container configuration for Python 3.11+.
- PyPI publish workflow triggered from version tags.