Skip to content

v2.0.0-beta.1 - #47

Merged
jianjian01 merged 38 commits into
release/2.0from
develop
Sep 28, 2026
Merged

jianjian01 merged 38 commits into
release/2.0from
develop

Conversation

@jianjian01

Copy link
Copy Markdown
Collaborator

No description provided.

jianjian01 and others added 30 commits September 7, 2026 14:37
- Run Rust workspace, Python, C binding, formatting, and Clippy checks on PRs
- Build wheels and C SDKs for five Windows, Linux, and macOS targets on tags
- Use abi3-py310 and validate installed wheels with pytest and import checks
- Generate Python sdist and independently verify the cqlib-core crate package
- Store build artifacts without publishing to registries or Releases
Apply the pinned Ruff formatting to Python type stubs, remove an unused
import, and move QIS imports before module-level assignments. Collapse
the nested native-cleanup pattern matches without changing evaluation
order or checkpoint selection.

Upgrade release artifact uploads to upload-artifact v7 for Node.js 24,
preserving artifact names, paths, and the default archive behavior.
Assert native workflow stage execution and final circuit correctness
instead of requiring mutations that depend on earlier lowering and tiny
floating-point global-phase residuals. Retain exact CZ counts, supported
basis, unitary equivalence, device validation, and quality diagnostics.

Share a bounded GIL-release probe across Python compiler, canonicalization,
and simulation tests. Retry short calls without fixed sleeps or minimum
progress counts, suppress automatic bytecode switching while observing,
and verify that the probe rejects an action that holds the GIL.
Rasterize generated SVGs with the same pinned, SHA-256-verified font in
Rust and Python tests while retaining public PNG export smoke checks.
Download and cache the font from the test helpers, with an offline path
override, so no font binaries or replacement reference images are needed.

Fail on missing references and dimension changes, package the existing
Rust references, and upload visual diagnostics when CI tests fail. Install
the pinned Python rasterizer for both source and isolated wheel tests.
ci: add cross-platform checks and release builds with stable regression tests
Resolve measurement IDs to storage positions across simulators and keep readout noise lookup keyed by original IDs. Reject incompatible circuit mappings and commit mappings only after successful execution.

Cover sparse and reordered IDs, failure paths, state copies, and routed SWAP layouts. Verified 348 Rust state tests and 724 Python QIS tests.
Add optional keyword-only seeds to state sampling across all four Python
backends. Assign per-shot random streams before parallel execution so explicit
seeds reproduce ordered shots and projected counts independently of scheduling.
Preserve existing unseeded calls and Rust sampling signatures.

Allow ErrorMitigation.get_mitigated() to reuse collected estimates with different
processing arguments and recover from post-processing errors. Keep run() single
use and retain only the statistics required for subsequent processing.

Update type stubs and documentation, and cover seeded sampling, concurrency,
measurement projection, seed validation, and repeated mitigation in regressions.

Validation: 83 focused Python tests passed in final review; prior full suites
passed with 1830 Python tests and 3488 Rust tests (8 ignored). Clippy with warnings
denied, Ruff, formatting, and git diff checks passed.
feat(binding-c): add binding-c interface and document
Restructure docs/ into mirrored Chinese and English trees and fill in the
chapters that were missing.

- documentation/{cn,en}/ and api/{cn,en}/ hold the two trees, and index.rst
  wires both into the Sphinx toctree.
- New chapters cover quantum information, visualization, error mitigation,
  OpenQASM 3 and the C API, alongside the existing circuit, IR, device and
  compilation chapters.
- API reference pages are written by hand rather than generated, and the
  build configuration lives under docs/.
- Code blocks are identical between the two trees, comments included.
Correct the SABRE target type name in the layout pages, add the missing
stdgates include to the C QASM3 example, note the origin of the backend
and zne objects, and fence the pip verification command as bash.
Use add_native_instruction() instead of appending to the read-only
native_instructions property, correct the pauli validation and virtual
distillation width descriptions, unify the unitary terminology, restore
the dropped "optimization" in the English compilation wording, and fix
several imprecise statements, a missing cross-reference and a heading
that did not match its section.
The home page heading repeated the docset name, so the page title read
"Cqlib 文档 — Cqlib 文档". Rename the heading to keep the docset name as
the title suffix only.
Translate the Chinese comments, print labels and diagram labels that
remained in the English code blocks, correct expected values that did
not match the actual output, normalise the arrows in the compiler
diagrams, and split the home page into separate Chinese and English
entry points.
Compute Z parity from the source amplitude index in expectation and variance calculations.

Add Rust, Python, and C regression tests for Pauli phases, Y parity, and mixed Hamiltonians.
Score source blocks, primary candidates and numerical fallbacks after one local cleanup round. Keep single-qubit scoring lowering-only to avoid recursion, and retain the source block when costs are equal.

Use conservative pruning bounds for native interactions outside CX/CY/CZ. Correct global phases in controlled-Pauli-to-RZZ decomposition rules.

  Add regression tests for cost reversal, phase preservation, fallback
  scoring, and selection consistency across pruning and cache states.
feat(binding-c): complete binding-c interface and document
feat: add reproducible sampling and improve simulation and synthesis correctness
@jianjian01
jianjian01 merged commit 84ac489 into release/2.0 Sep 28, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants