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

Qiskit / qiskit / 36858156643
88%

Build:
DEFAULT BRANCH: main
Ran 01 Oct 2026 12:31PM UTC
Jobs 1
Files 985
Run time 5min
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

01 Oct 2026 11:29AM UTC coverage: 88.122% (+0.01%) from 88.11%
36858156643

push

github

web-flow
Expose the pass manager to C  (#16839)

* Basic implementation

A basic initial implementation of a pass, task and passmanager. Has a first test to show the execution model works, but has no worked out pass context and no callback infrastructure yet.

* add callback registry

* Add tests for callback and io_types

* More tests & clippy

* Low hanging fruit from first reviews

* Rm unnecessary submodule

* PassContext as execution handle

* Implement a global PassManagerContext

* Fix clippy warnings

* Rework callbacks as traits

This makes callbacks extensible in the future w/o breaking ABI compat for C

* clippy

* Allow deleting keys

* More ergonomics

- More default types
- Fix passing dyn Any into the callbacks
- Implement Debug for Task/PM

* Remove insert/remove

* Revert `value as _`

* Fix dev-dependencies

* Remove callback handling

We need to redesign how the callbacks will run in the future.  As
written, this changes the structure of the `PassManager::run` method,
but even if we expose that in this same release, we can still add a
`PassManager::run_with_callbacks` in the future, so we're not tying our
hands.

The problem with the current state was that we hadn't fully designed how
to handle callbacks at different execution points; the system for a
single callback at the end of an atomic task execution mostly worked,
but we hadn't fully designed what information about the pass and the
state should be given.  This extended to the callback methods that were
intended to be called at "structure" points (like after a task list).

* Fix tests with `cache_pygates`

`DAGCircuit::push_operation_back` has a conditional Python-gate object
in its argument list.  It's easier just to build the `CircuitData`.

* Simplify push-task interfaces

* Make `Debug` implementation idiomatic

Using the `Formatter` methods properly lets us integrate with the
linebreak infrastructure, and so on.

This also motivates adding a `Pass::name` method for human-readable
o... (continued)

238 of 259 new or added lines in 6 files covered. (91.89%)

23 existing lines in 3 files now uncovered.

122731 of 139274 relevant lines covered (88.12%)

939280.89 hits per line

Uncovered Changes

Lines Coverage ∆ File
9
88.16
crates/cext/src/passmanager/ir.rs
8
91.3
crates/cext/src/passmanager/pass.rs
3
82.35
crates/cext/src/passmanager/error.rs
1
91.03
-0.22% crates/passmanager/src/lib.rs

Coverage Regressions

Lines Coverage ∆ File
18
96.25
-0.94% crates/qasm2/src/parse.rs
4
92.29
0.26% 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 36858156643.1 01 Oct 2026 12:31PM UTC 985
88.12
GitHub Action Run
Source Files on build 36858156643
  • Tree
  • List 985
  • Changed 12
  • Source Changed 7
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #36858156643
  • 7fc196aa on github
  • Prev Build on gh-readonly-queue/main/pr-17091-51dd141c57baee0eaaf2072b99dd0c014cf19fa1 (#36644124918)
  • Next Build on main (#36882281753)
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