• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Qiskit / qiskit / 32233300677
88%

Build:
DEFAULT BRANCH: main
Ran 19 Aug 2026 09:40AM UTC
Jobs 1
Files 955
Run time 3min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

19 Aug 2026 07:33AM UTC coverage: 87.779% (+0.003%) from 87.776%
32233300677

push

github

web-flow
QPY 18: give the register/clbit payload a tag byte instead of a "\x00"-prefixed string (#16765)

* QPY: bump to version 18 and drop CalibrationsPack from format

Pulse gate calibrations were removed in Qiskit 2.0. Since then the
CalibrationsPack field in the QPY circuit payload has always been written
as an empty placeholder (num_cals=0). Version 18 removes it entirely.

- Bump QPY_VERSION to 18 in qiskit/qpy/common.py
- Gate CalibrationsPack field in QPYCircuit on version < 18 (binrw
  Option + if attribute covers both reader and writer)
- Guard Python writer and reader paths with version < 18 / 5 <= version < 18
- Add regression test asserting v18 output is 2 bytes smaller than v17
- Add reno release note and Version 18 docstring section

Signed-off-by: Elad Venezian <eladv@il.ibm.com>

* QPY: use big-endian instruction parameters in v18+

QPY format versions 1–17 mistakenly serialised integer and float
INSTRUCTION_PARAM values in little-endian byte order. Version 18
corrects this to big-endian, consistent with the rest of the format.

The fix is fully backward-compatible: files written at version ≤ 17
are still read correctly via the LittleForV17AndBelow path. The Python
read/write path (circuits.py) only handles versions ≤ 16 and is
unchanged — the little-endian encoding there remains correct for those
versions.

Key implementation points:
- New ValueEndian enum (Big / Little / LittleForV17AndBelow) replaces
  binrw::Endian at every QPY value call site; ValueEndian::resolve(version)
  is the single place where the version-to-endian mapping lives.
- GenericValue::as_little_for_v17_and_below(&self, version) consolidates
  the remaining as_le() call sites that work directly with GenericValue.
- Regression tests in test/python/qpy/test_v18_big_endian_params.py verify
  that v17 and v18 bytes differ for float params, for-loop integer lists,
  and switch-case labels, and that both versions round-trip correctly.

Signed-off-by: Elad Venezian <eladv@il.ib... (continued)

73 of 95 new or added lines in 4 files covered. (76.84%)

12 existing lines in 3 files now uncovered.

113894 of 129751 relevant lines covered (87.78%)

993708.33 hits per line

Uncovered Changes

Lines Coverage ∆ File
21
63.72
-1.28% qiskit/qpy/binary_io/circuits.py
1
73.53
3.75% crates/qpy/src/value.rs

Coverage Regressions

Lines Coverage ∆ File
6
96.21
-0.47% crates/qasm2/src/parse.rs
5
91.77
-1.03% crates/qasm2/src/lex.rs
1
90.32
0.0% crates/circuit/src/parameter/parameter_expression.rs
Jobs
ID Job ID Ran Files Coverage
1 32233300677.1 19 Aug 2026 09:40AM UTC 955
87.78
GitHub Action Run
Source Files on build 32233300677
  • Tree
  • List 955
  • Changed 12
  • Source Changed 6
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32233300677
  • 2268a179 on github
  • Prev Build on gh-readonly-queue/main/pr-16795-9583472d944914ddb0a2b8a5bc5a211b2940bf88 (#32228359484)
  • Next Build on main (#32262663312)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc