Skip to content

🧑‍💻 Base Example Device on Template#326

Merged
burgholzer merged 53 commits intodevelopfrom
example-device-template
Apr 21, 2026
Merged

🧑‍💻 Base Example Device on Template#326
burgholzer merged 53 commits intodevelopfrom
example-device-template

Conversation

@ystade
Copy link
Copy Markdown
Collaborator

@ystade ystade commented Feb 11, 2026

Description

This PR refactors the example device implementation by instantiating the device template for the example device. This adds a couple of convieniet features to the example device like install instructin and the packaging as a python package.

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.

@ystade ystade added this to the v1.3.0 milestone Feb 11, 2026
@ystade ystade self-assigned this Feb 11, 2026
@ystade ystade added enhancement Enhancement of existing functionality refactor Refactoring the code base usability Increasing usability of the library labels Feb 11, 2026
@ystade ystade changed the base branch from develop to install-all-header February 11, 2026 10:14
@ystade
Copy link
Copy Markdown
Collaborator Author

ystade commented Mar 6, 2026

@burgholzer THis should actually be enough, yes.

@burgholzer
Copy link
Copy Markdown
Contributor

Alright, I actually tried this out real quick (updated the QDMI ref, removed the qdmi::qdmi link target from the devices, compiled), and it does lead to problems at least in MQT Core; particularly because of https://github.com/munich-quantum-toolkit/core/blob/main/include/mqt-core/qdmi/common/Common.hpp where we define common, device independent helpers.

So something definitely needs to change.
An option here would be to also prefix the enum definitions. Then there would have to be some casting down the line somewhere between the generic enum and the prefixed one.

We could also try to work it out in MQT Core by restructuring the common helper (which eventually should be moved here) and compiling the devices we have over there as shared libraries.
Feels like this could work, but we would lose the ability to link devices statically.

@burgholzer burgholzer added the backport-potential Changes to be backported to the stable branch label Mar 14, 2026
@mergify mergify Bot added the conflict label Mar 14, 2026
@burgholzer
Copy link
Copy Markdown
Contributor

burgholzer commented Mar 14, 2026

@ystade Based on the latest changes from the docs update, this now needs to be updated to resolve the conflicts.

Edit: I also think that once we get this PR in, and we figured out how to proceed with the constants.h header, it is time for the v1.2.2 release.

burgholzer added a commit that referenced this pull request Apr 17, 2026
## Description

This PR updates the license headers for 2026 and cleans up some of the
configuration.
Cherry-picked and edited from #326

## 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.
- [x] 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: Yannick Stade <100073938+ystade@users.noreply.github.com>
mergify Bot pushed a commit that referenced this pull request Apr 17, 2026
## Description

This PR updates the license headers for 2026 and cleans up some of the
configuration.
Cherry-picked and edited from #326

## 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.
- [x] 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: Yannick Stade <100073938+ystade@users.noreply.github.com>
(cherry picked from commit 88305de)
# Conflicts:
#	CHANGELOG.md
#	cmake/GenerateTemplate.cmake
#	docs/guide.md
#	examples/device/CMakeLists.txt
#	templates/device/.license-tools-config.json
@mergify mergify Bot removed the conflict label Apr 17, 2026
burgholzer added a commit that referenced this pull request Apr 17, 2026
## Description

This PR updates the license headers for 2026 and cleans up some of the
configuration.
Cherry-picked and edited from #326

## Checklist:



- [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.
- [x] 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.



(cherry picked from commit 88305de)

Signed-off-by: burgholzer <burgholzer@me.com>
Co-authored-by: Lukas Burgholzer <burgholzer@me.com>
Co-authored-by: Yannick Stade <100073938+ystade@users.noreply.github.com>
burgholzer added a commit that referenced this pull request Apr 17, 2026
## Description

This PR cherry-picks selected improvements from #326 to reduce its size
and to get in improvements that do not need further review.

## 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.
- [x] 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>
Signed-off-by: Lukas Burgholzer <burgholzer@me.com>
Co-authored-by: Yannick Stade <100073938+ystade@users.noreply.github.com>
mergify Bot pushed a commit that referenced this pull request Apr 17, 2026
## Description

This PR cherry-picks selected improvements from #326 to reduce its size
and to get in improvements that do not need further review.

## 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.
- [x] 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>
Signed-off-by: Lukas Burgholzer <burgholzer@me.com>
Co-authored-by: Yannick Stade <100073938+ystade@users.noreply.github.com>
(cherry picked from commit 6c7723b)

# Conflicts:
#	cmake/GenerateTemplate.cmake
…plate

# Conflicts:
#	.github/codecov.yml
#	docs/CMakeLists.txt
#	templates/CMakeLists.txt
mergify Bot added a commit that referenced this pull request Apr 17, 2026
## Description

This PR cherry-picks selected improvements from #326 to reduce its size
and to get in improvements that do not need further review.

## Checklist:



- [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.
- [x] 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.



(cherry picked from commit 6c7723b)

---------

Signed-off-by: Lukas Burgholzer <burgholzer@me.com>
Co-authored-by: Lukas Burgholzer <burgholzer@me.com>
@burgholzer burgholzer mentioned this pull request Apr 21, 2026
8 tasks
@burgholzer burgholzer modified the milestones: v1.2.2, v1.3.0 Apr 21, 2026
burgholzer added a commit that referenced this pull request Apr 21, 2026
## Description

This PR prepares the next minor release of QDMI (`v1.3.0`).
The biggest change here is that QDMI device implementations can now be
distributed truly standalone, without actually linking to QDMI itself.
In addition, the QDMI device header now explicitly uses symbol exports
so that devices may limit symbol visibility to hidden by default.
See the upgrade guide for how to adapt device implementations.

While there are no further breaking changes on the `develop` branch,
development of the `v1.3.x` series will continue on the develop branch.

#326 may still make it into this release after this PR.

## 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.
- [x] 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: Lukas Burgholzer <burgholzer@me.com>
@burgholzer burgholzer added minor Changes that warrant a minor version release and removed backport-potential Changes to be backported to the stable branch labels Apr 21, 2026
Signed-off-by: Lukas Burgholzer <burgholzer@me.com>
Copy link
Copy Markdown
Contributor

@burgholzer burgholzer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright. I merged the develop branch into this multiple times over the last couple of weeks. Just pushed a couple of commits that align the example device with the template again.
This should be pretty much good to go now!
In the long run, we probably want to separate the example device from the interface code here and have a check that kind of syncs the template device with the example.
That's something for the future though.
Happy to see this in!

@burgholzer burgholzer merged commit b4b19d9 into develop Apr 21, 2026
20 checks passed
@burgholzer burgholzer deleted the example-device-template branch April 21, 2026 09:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Enhancement of existing functionality minor Changes that warrant a minor version release refactor Refactoring the code base usability Increasing usability of the library

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants