Skip to content

⚡ Fix test discovery and reduce build overhead - #2459

Merged
burgholzer merged 5 commits into
mainfrom
codex/build-test-performance
Sep 8, 2026
Merged

⚡ Fix test discovery and reduce build overhead#2459
burgholzer merged 5 commits into
mainfrom
codex/build-test-performance

Conversation

@burgholzer

@burgholzer burgholzer commented Sep 8, 2026

Copy link
Copy Markdown
Member

🤖 AI text below 🤖

Description

QDMI test discovery could report green while omitting 176 parameterized client cases. Defer discovery until runtime manifests have been copied, and address the build and test costs measured in the profiling audit.

  • Size sampling's DD package for the program, use CMake's normal debug-information policy, and disable unity only for the compiler test target.
  • Replace workload-based lifecycle timing with a test QIR barrier submitted through the public API to the actual shared device; all test machinery stays in the test tree. Check BUSY/IDLE before freeing the job, unavailable results, actual timeout, and blocking cancel/free; retain simulation integration tests.
  • Batch the 848 QC/QCO verifier cases into two processes with per-case XML, preserving other test isolation.
  • Eliminate wheel library duplicates while retaining native install versioning.
  • Pin the QDMI header-generation fix and shared workflow support for cached stubs. Nox keeps sequential environments and build reuse; pytest provides test parallelism.

QDMI #537 and Workflows #462 are merged; both dependencies are pinned to their merge commits. Installed QDMI 1.3.3 remains supported, while the fetched dependency uses the header-generation fix.

Local validation: full Release CTest suite (3,142 entries, one intentional skip, plus all individual cases in the two grouped XML reports); 63 DDSIM tests against the shared device in both Debug and Release, plus five shuffled Debug repetitions of all seven lifecycle/status tests; wheel compatibility across Python 3.11–3.14 with current/minimum dependencies and version-dependent skips; normal source-building Nox tests/minimums on Python 3.14; wheel-content checks without the duplicate exemption; 247 QDMI tests and a CMake consumer from a relocated wheel; required lint and whole-changed-file C++ lint. Reconfiguration preserves all eight generated headers and Ninja reports no work.

The local wheel shrank from about 119 MiB to 55 MiB. The controlled sampling experiment reduced serial Python test time from 28.9 to 10.6 seconds. These are local measurements, not hosted CI speedup claims. Hosted platform wheels and cache behavior are pending. The audit records the measurement boundaries and pre-existing warnings from a supplementary header scan.

GPT-6 via Codex implemented and validated this change at the maintainer's request. No standalone changelog entry was added for unreleased v4 functionality, following repository policy.

Checklist

  • The pull request only contains commits that are focused and relevant to this change.
  • I have added appropriate tests that cover the new/changed functionality.
  • I have updated the documentation to reflect these changes.
  • I have added entries to the changelog for any noteworthy additions, changes, fixes, or removals.
  • I have added migration instructions to the upgrade guide (if needed).
  • The changes follow the project's style guidelines and introduce no new warnings.
  • The changes are fully tested and pass the CI checks.
  • I have reviewed my own code changes.

If PR contains AI-assisted content:

  • Any agent that created, edited, or submitted GitHub content was explicitly authorized for that scope, as required by our AI Usage Guidelines.
  • Every agent-authored or agent-edited public text body begins with the visible disclosure 🤖 *AI text below* 🤖 (titles are exempt).
  • I have disclosed AI assistance in the PR description.
  • I confirm that I have personally reviewed and understood all AI-generated content, and accept full responsibility for it.

Restore runtime-dependent QDMI parameterized tests and replace workload-based lifecycle timing with controlled worker synchronization. Retain simulation and verifier coverage while reducing allocation, process, compiler, and wheel duplication costs.

Pin the QDMI timestamp fix and shared workflow changes for cached stubs and isolated Stable ABI wheel tests. Record local validation and the remaining hosted CI boundary.

Assisted-by: GPT-6 via Codex
@burgholzer burgholzer added continuous integration Anything related to the CI setup fix Fix for something that isn't working packaging Anything related to Python packaging MLIR Anything related to MLIR QDMI Anything related to QDMI labels Sep 8, 2026
@burgholzer burgholzer self-assigned this Sep 8, 2026
@codecov

codecov Bot commented Sep 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Remove the wheel matrix integration and restore standard Nox source installations. Retain pytest parallelism and stub sccache. Update the QDMI pin to the CMake policy regression fix.

Assisted-by: GPT-6 via Codex
Track the minimal QDMI header fix and the merged stub-cache workflow. Align the audit with the removed QDMI generation test.

Assisted-by: GPT-6 via Codex
Assisted-by: GPT-6 via Codex
Submit a QIR barrier through the public device API and restore shared-library test linkage. Remove production test friendship and object-target scaffolding, and drop additional CD file triggers.

Assisted-by: GPT-6 via Codex
@burgholzer
burgholzer enabled auto-merge (squash) September 8, 2026 01:45
@burgholzer burgholzer added this to the v4.0.0 - IEEE Quantum Week milestone Sep 8, 2026
@burgholzer
burgholzer merged commit ec799da into main Sep 8, 2026
27 checks passed
@burgholzer
burgholzer deleted the codex/build-test-performance branch September 8, 2026 01:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

continuous integration Anything related to the CI setup fix Fix for something that isn't working MLIR Anything related to MLIR packaging Anything related to Python packaging QDMI Anything related to QDMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant