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

Qiskit / qiskit / 36855765034
88%
main: 88%

Build:
Build:
LAST BUILD BRANCH: c/contributing
DEFAULT BRANCH: main
Ran 01 Oct 2026 12:03PM UTC
Jobs 1
Files 985
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

01 Oct 2026 11:29AM UTC coverage: 88.136% (+0.03%) from 88.11%
36855765034

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%)

4 existing lines in 1 file now uncovered.

122750 of 139274 relevant lines covered (88.14%)

939206.07 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
4
92.29
0.26% crates/qasm2/src/lex.rs
Jobs
ID Job ID Ran Files Coverage
1 36855765034.1 01 Oct 2026 12:03PM UTC 985
88.14
GitHub Action Run
Source Files on build 36855765034
  • Tree
  • List 985
  • Changed 11
  • Source Changed 7
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #36855765034
  • 7fc196aa on github
  • Prev Build on gh-readonly-queue/main/pr-17091-51dd141c57baee0eaaf2072b99dd0c014cf19fa1 (#36644124918)
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