Skip to content

🎨 Reorganize QDMI Codebase (backport #1444)#1449

Merged
burgholzer merged 2 commits intov3.xfrom
mergify/bp/v3.x/pr-1444
Jan 13, 2026
Merged

🎨 Reorganize QDMI Codebase (backport #1444)#1449
burgholzer merged 2 commits intov3.xfrom
mergify/bp/v3.x/pr-1444

Conversation

@mergify
Copy link

@mergify mergify bot commented Jan 13, 2026

Description

This PR reorganizes the QDMI codebase to improve its structure and maintainability. It extracts and incorporates the best practices from #1347 (Refactor QDMI Devices and Fix Singleton Handling).

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.
    This is an automatic backport of pull request 🎨 Reorganize QDMI Codebase #1444 done by Mergify.

## Description

This PR reorganizes the QDMI codebase to improve its structure and
maintainability. It extracts and incorporates the best practices from
#1347 (Refactor QDMI Devices and Fix Singleton Handling).

## Checklist:

<!---
This checklist serves as a reminder of a couple of things that ensure
your pull request will be merged swiftly.
-->

- [x] The pull request only contains commits that are focused and
relevant to this change.
- [x] I have added appropriate tests that cover the new/changed
functionality.
- [x] I have updated the documentation to reflect these changes.
- [x] 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).
- [x] The changes follow the project's style guidelines and introduce no
new warnings.
- [x] The changes are fully tested and pass the CI checks.
- [x] I have reviewed my own code changes.

---------

Signed-off-by: burgholzer <burgholzer@me.com>
Co-authored-by: burgholzer <burgholzer@me.com>
(cherry picked from commit 42fb76c)

# Conflicts:
#	CHANGELOG.md
@mergify mergify bot added the conflicts PRs that currently have conflicts with their base branch label Jan 13, 2026
@mergify
Copy link
Author

mergify bot commented Jan 13, 2026

Cherry-pick of 42fb76c has failed:

On branch mergify/bp/v3.x/pr-1444
Your branch is up to date with 'origin/v3.x'.

You are currently cherry-picking commit 42fb76c3.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	modified:   bindings/fomac/fomac.cpp
	modified:   bindings/na/register_fomac.cpp
	modified:   include/mqt-core/fomac/FoMaC.hpp
	modified:   include/mqt-core/na/fomac/Device.hpp
	renamed:    include/mqt-core/qdmi/Common.hpp -> include/mqt-core/qdmi/common/Common.hpp
	renamed:    include/mqt-core/qdmi/dd/Device.hpp -> include/mqt-core/qdmi/devices/dd/Device.hpp
	renamed:    include/mqt-core/qdmi/na/Device.hpp -> include/mqt-core/qdmi/devices/na/Device.hpp
	renamed:    include/mqt-core/qdmi/na/Generator.hpp -> include/mqt-core/qdmi/devices/na/Generator.hpp
	renamed:    include/mqt-core/qdmi/sc/Device.hpp -> include/mqt-core/qdmi/devices/sc/Device.hpp
	renamed:    include/mqt-core/qdmi/sc/Generator.hpp -> include/mqt-core/qdmi/devices/sc/Generator.hpp
	renamed:    include/mqt-core/qdmi/Driver.hpp -> include/mqt-core/qdmi/driver/Driver.hpp
	modified:   src/fomac/FoMaC.cpp
	modified:   src/na/fomac/Device.cpp
	modified:   src/qdmi/CMakeLists.txt
	new file:   src/qdmi/common/CMakeLists.txt
	renamed:    src/qdmi/Common.cpp -> src/qdmi/common/Common.cpp
	new file:   src/qdmi/devices/CMakeLists.txt
	renamed:    src/qdmi/dd/CMakeLists.txt -> src/qdmi/devices/dd/CMakeLists.txt
	renamed:    src/qdmi/dd/Device.cpp -> src/qdmi/devices/dd/Device.cpp
	renamed:    src/qdmi/na/App.cpp -> src/qdmi/devices/na/App.cpp
	renamed:    src/qdmi/na/CMakeLists.txt -> src/qdmi/devices/na/CMakeLists.txt
	renamed:    src/qdmi/na/Device.cpp -> src/qdmi/devices/na/Device.cpp
	renamed:    src/qdmi/na/DynDevice.cpp -> src/qdmi/devices/na/DynDevice.cpp
	renamed:    src/qdmi/na/Generator.cpp -> src/qdmi/devices/na/Generator.cpp
	renamed:    src/qdmi/sc/App.cpp -> src/qdmi/devices/sc/App.cpp
	renamed:    src/qdmi/sc/CMakeLists.txt -> src/qdmi/devices/sc/CMakeLists.txt
	renamed:    src/qdmi/sc/Device.cpp -> src/qdmi/devices/sc/Device.cpp
	renamed:    src/qdmi/sc/DynDevice.cpp -> src/qdmi/devices/sc/DynDevice.cpp
	renamed:    src/qdmi/sc/Generator.cpp -> src/qdmi/devices/sc/Generator.cpp
	new file:   src/qdmi/driver/CMakeLists.txt
	renamed:    src/qdmi/Driver.cpp -> src/qdmi/driver/Driver.cpp
	modified:   test/fomac/test_fomac.cpp
	modified:   test/na/CMakeLists.txt
	modified:   test/qdmi/CMakeLists.txt
	new file:   test/qdmi/devices/CMakeLists.txt
	renamed:    test/qdmi/dd/CMakeLists.txt -> test/qdmi/devices/dd/CMakeLists.txt
	renamed:    test/qdmi/dd/concurrency_test.cpp -> test/qdmi/devices/dd/concurrency_test.cpp
	renamed:    test/qdmi/dd/device_properties_test.cpp -> test/qdmi/devices/dd/device_properties_test.cpp
	renamed:    test/qdmi/dd/device_status_test.cpp -> test/qdmi/devices/dd/device_status_test.cpp
	renamed:    test/qdmi/dd/error_handling_test.cpp -> test/qdmi/devices/dd/error_handling_test.cpp
	renamed:    test/qdmi/dd/helpers/circuits.hpp -> test/qdmi/devices/dd/helpers/circuits.hpp
	renamed:    test/qdmi/dd/helpers/test_utils.cpp -> test/qdmi/devices/dd/helpers/test_utils.cpp
	renamed:    test/qdmi/dd/helpers/test_utils.hpp -> test/qdmi/devices/dd/helpers/test_utils.hpp
	renamed:    test/qdmi/dd/job_lifecycle_test.cpp -> test/qdmi/devices/dd/job_lifecycle_test.cpp
	renamed:    test/qdmi/dd/job_parameters_test.cpp -> test/qdmi/devices/dd/job_parameters_test.cpp
	renamed:    test/qdmi/dd/results_probabilities_test.cpp -> test/qdmi/devices/dd/results_probabilities_test.cpp
	renamed:    test/qdmi/dd/results_sampling_test.cpp -> test/qdmi/devices/dd/results_sampling_test.cpp
	renamed:    test/qdmi/dd/results_statevector_test.cpp -> test/qdmi/devices/dd/results_statevector_test.cpp
	renamed:    test/qdmi/dd/session_lifecycle_test.cpp -> test/qdmi/devices/dd/session_lifecycle_test.cpp
	renamed:    test/na/device/CMakeLists.txt -> test/qdmi/devices/na/CMakeLists.txt
	renamed:    test/na/device/test_app.cpp -> test/qdmi/devices/na/test_app.cpp
	renamed:    test/na/device/test_device.cpp -> test/qdmi/devices/na/test_device.cpp
	renamed:    test/na/device/test_generator.cpp -> test/qdmi/devices/na/test_generator.cpp
	renamed:    test/qdmi/sc/CMakeLists.txt -> test/qdmi/devices/sc/CMakeLists.txt
	renamed:    test/qdmi/sc/test_app.cpp -> test/qdmi/devices/sc/test_app.cpp
	renamed:    test/qdmi/sc/test_device.cpp -> test/qdmi/devices/sc/test_device.cpp
	renamed:    test/qdmi/sc/test_generator.cpp -> test/qdmi/devices/sc/test_generator.cpp
	new file:   test/qdmi/driver/CMakeLists.txt
	renamed:    test/qdmi/test_driver.cpp -> test/qdmi/driver/test_driver.cpp

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   CHANGELOG.md

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

@mergify mergify bot mentioned this pull request Jan 13, 2026
8 tasks
@burgholzer burgholzer added the backport Changes that have been backported to a stable release branch label Jan 13, 2026
@codecov
Copy link

codecov bot commented Jan 13, 2026

Codecov Report

❌ Patch coverage is 80.00000% with 1 line in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
include/mqt-core/qdmi/common/Common.hpp 80.0% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

Signed-off-by: burgholzer <burgholzer@me.com>
@burgholzer burgholzer force-pushed the mergify/bp/v3.x/pr-1444 branch from 457c149 to 86773e3 Compare January 13, 2026 12:48
@burgholzer burgholzer enabled auto-merge (squash) January 13, 2026 12:51
@burgholzer burgholzer merged commit 4e4a84e into v3.x Jan 13, 2026
33 of 34 checks passed
@burgholzer burgholzer deleted the mergify/bp/v3.x/pr-1444 branch January 13, 2026 13:08
@denialhaag denialhaag added refactor Anything related to code refactoring Core Anything related to the Core library and IR c++ Anything related to C++ code and removed conflicts PRs that currently have conflicts with their base branch labels Feb 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport Changes that have been backported to a stable release branch c++ Anything related to C++ code Core Anything related to the Core library and IR refactor Anything related to code refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants