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

Qiskit / qiskit / 32119509814
88%

Build:
DEFAULT BRANCH: main
Ran 18 Aug 2026 09:35AM 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

18 Aug 2026 08:37AM UTC coverage: 87.766% (-0.03%) from 87.795%
32119509814

push

github

web-flow
Qpy v18 big endian (#16707)

* 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.ibm.com>

* Address Gadi's review comments

- Inline endian.resolve() ... (continued)

100 of 122 new or added lines in 7 files covered. (81.97%)

36 existing lines in 5 files now uncovered.

113816 of 129681 relevant lines covered (87.77%)

995403.75 hits per line

Uncovered Changes

Lines Coverage ∆ File
9
76.15
-0.05% crates/qpy/src/circuit_reader.rs
8
92.35
-0.28% crates/qpy/src/circuit_writer.rs
2
70.39
0.15% crates/qpy/src/value.rs
2
65.0
-0.54% qiskit/qpy/binary_io/circuits.py
1
68.08
0.08% crates/qpy/src/params.rs

Coverage Regressions

Lines Coverage ∆ File
24
96.21
-1.89% crates/qasm2/src/parse.rs
5
91.26
-1.03% crates/qasm2/src/lex.rs
4
65.0
-0.54% qiskit/qpy/binary_io/circuits.py
2
70.39
0.15% crates/qpy/src/value.rs
1
77.96
0.08% crates/circuit/src/parameter/symbol_expr.rs
Jobs
ID Job ID Ran Files Coverage
1 32119509814.1 18 Aug 2026 09:35AM UTC 955
87.77
GitHub Action Run
Source Files on build 32119509814
  • Tree
  • List 955
  • Changed 12
  • Source Changed 9
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32119509814
  • 81cce778 on github
  • Prev Build on gh-readonly-queue/main/pr-16295-23f9e8f7aee57465cd757a16312f735531c1fce4 (#32004438243)
  • Next Build on main (#32230360919)
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