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

Qiskit / qiskit / 36025562704
88%
main: 88%

Build:
Build:
LAST BUILD BRANCH: jeevan/16577
DEFAULT BRANCH: main
Ran 24 Sep 2026 04:35PM UTC
Jobs 1
Files 977
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

24 Sep 2026 04:10PM UTC coverage: 88.086% (+0.03%) from 88.061%
36025562704

push

github

web-flow
Add the `ShotLoop` node (#16933)

* Add a shot loop, the op that puts circuits into a program

A shot loop carries a list of circuits and a shot count, takes one operand per
circuit for that circuit's parameter values, and returns one tensor of outcomes
per classical register. Its results are the first an op derives from something
other than its operand types, so it writes its own inference rather than sharing
the catalogue's five: the register widths come from the circuits themselves, and
only the batch axes come from the operands.

An operand must be floating point with one value per parameter in its trailing
axis, so a mismatch is caught where it is made rather than when a backend rejects
the job. Axes ahead of that one are a batch prefix, carried through unchanged onto
that circuit's outcome shapes for any rank of prefix, which is how one program
sweeps many parameter sets. The shots axis is fixed, since a circuit's output
format is static even when the operations it runs are not.

Which register a result belongs to is naming, so it lives in a structure:
`output_structure` describes the results as one entry per circuit keyed by
register name, in the leaf order the results come back in, and a caller reads it
with the same vocabulary as any other structured value. A register whose name
cannot name a slot is rejected when the op is constructed, because such a result
could not be addressed at all.

This is the canonical work Qiskit cannot perform in process, so it reports no
built-in evaluation. A program containing one still builds and reports all its
types; evaluating one fails at the top, naming the instruction that needs a
backend, without computing anything first.

* Stop deriving Clone, PartialEq and Eq on ShotLoopError

These traits bind every future variant, and every error a variant nests, to
deriving them too; `InvalidName` no longer derives them, so this one cannot
either. Tests match on errors instead of comparing them or reading their
`Di... (continued)

284 of 296 new or added lines in 2 files covered. (95.95%)

15 existing lines in 3 files now uncovered.

121914 of 138404 relevant lines covered (88.09%)

944267.94 hits per line

Uncovered Changes

Lines Coverage ∆ File
10
94.57
-0.76% crates/providers/src/program/program_function.rs
2
99.15
crates/providers/src/ops/shot_loop.rs

Coverage Regressions

Lines Coverage ∆ File
6
92.29
0.51% crates/qasm2/src/lex.rs
6
97.66
0.94% crates/qasm2/src/parse.rs
3
96.38
-0.45% crates/providers/src/program/quantum_program.rs
Jobs
ID Job ID Ran Files Coverage
1 36025562704.1 24 Sep 2026 04:35PM UTC 977
88.09
GitHub Action Run
Source Files on build 36025562704
  • Tree
  • List 977
  • Changed 4
  • Source Changed 1
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #36025562704
  • a4b0ce3f on github
  • Prev Build on gh-readonly-queue/main/pr-16879-47fe66aaba93b3631cccb45b7e494455b20eec74 (#36003242370)
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