Skip to content

🐛 Fix malformed include directories in exported nlohmann_json CMake targets for component-based installs (#1662)#1663

Open
burgholzer wants to merge 3 commits intomainfrom
fix-component-based-install
Open

🐛 Fix malformed include directories in exported nlohmann_json CMake targets for component-based installs (#1662)#1663
burgholzer wants to merge 3 commits intomainfrom
fix-component-based-install

Conversation

@burgholzer
Copy link
Copy Markdown
Member

Description

This PR fixes the problems observed with the 3.5.0 release while updating in dependent MQT repositories.
There was a malformed include directory install command, that did not even turn out to be necessary (through local testing with QCEC, QMAP, and DDSIM).

This is essentially the forward port of #1662 and the v3.5.1 release.

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:

  • I have disclosed the use of AI tools in the PR description as per our AI Usage
    Guidelines
    .
  • AI-assisted commits include an Assisted-by: [Model Name] via [Tool Name] footer.
  • I confirm that I have personally reviewed and understood all AI-generated content, and accept full responsibility for it.

… targets for component-based installs (#1662)

## Description

This PR fixes the problems observed with the 3.5.0 release while
updating in dependent MQT repositories.
There was a malformed include directory install command, that did not
even turn out to be necessary (through local testing with QCEC, QMAP,
and DDSIM).
After this is merged, I will tag the `v3.5.1` release and update the PRs
in the dependent repositories.

## 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.

**If PR contains AI-assisted content:**

- [x] I have disclosed the use of AI tools in the PR description as per
our [AI Usage
Guidelines](https://github.com/munich-quantum-toolkit/core/blob/main/docs/ai_usage.md).
- [x] AI-assisted commits include an `Assisted-by: [Model Name] via
[Tool Name]` footer.
- [x] I confirm that I have personally reviewed and understood all
AI-generated content, and accept full responsibility for it.

Signed-off-by: Lukas Burgholzer <burgholzer@me.com>
@burgholzer burgholzer added this to the MQT Core milestone Apr 23, 2026
@burgholzer burgholzer self-assigned this Apr 23, 2026
@burgholzer burgholzer added fix Fix for something that isn't working c++ Anything related to C++ code skip-changelog Changes that do not need to show up in the changelog labels Apr 23, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 23, 2026

Warning

Rate limit exceeded

@burgholzer has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 21 minutes and 48 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 21 minutes and 48 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: d8628526-ff5d-4fcd-a954-49a65492d21f

📥 Commits

Reviewing files that changed from the base of the PR and between f0d49c3 and 21ecb98.

📒 Files selected for processing (2)
  • CHANGELOG.md
  • UPGRADING.md
📝 Walkthrough

Walkthrough

Version 3.5.1 patch release is documented with a CMake packaging fix for nlohmann_json exports affecting find_package(mqt-core CONFIG). Upgrade guides are added for versions 3.5.1 and 3.4.0, and CMake installation logic for nlohmann_json is simplified by removing redundant target installation directives.

Changes

Cohort / File(s) Summary
Release documentation
CHANGELOG.md, UPGRADING.md
Added v3.5.1 release notes with CMake packaging fix, v3.4.0 ABI/SOVERSION guidance, and updated GitHub compare links.
CMake packaging
cmake/ExternalDependencies.cmake
Simplified nlohmann_json installation by removing explicit header handling from install(TARGETS ...) command; separate header directory installation remains unchanged.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~4 minutes

Possibly related PRs

  • PR #1247: Addresses CMake packaging and installation of nlohmann_json to resolve find_package(mqt-core CONFIG) discovery issues.

Suggested labels

packaging

Poem

🐰 A rabbit's ode to orderly exports:
Release notes neat, the versions aligned,
CMake's redundant calls, simplified and refined,
nlohmann_json headers now neatly installed,
The package is tidy—configuration enthralled!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main fix: correcting malformed include directories in exported nlohmann_json CMake targets for component-based installs, with specific issue reference.
Description check ✅ Passed The description covers the core issue, provides context about the 3.5.0 problems, mentions local testing validation, and includes a completed checklist with all required items marked.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix-component-based-install

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
UPGRADING.md (1)

242-248: ⚠️ Potential issue | 🟡 Minor

Missing version compare link for [3.5.1].

The [unreleased] link still points to v3.5.0...HEAD, and there is no [3.5.1] link definition in this file. Since the document now references ## [3.5.1], the compare link should be added and [unreleased] updated to start from v3.5.1 for the rendered links to resolve.

📝 Proposed fix
-[unreleased]: https://github.com/munich-quantum-toolkit/core/compare/v3.5.0...HEAD
+[unreleased]: https://github.com/munich-quantum-toolkit/core/compare/v3.5.1...HEAD
+[3.5.1]: https://github.com/munich-quantum-toolkit/core/compare/v3.5.0...v3.5.1
 [3.5.0]: https://github.com/munich-quantum-toolkit/core/compare/v3.4.0...v3.5.0
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@UPGRADING.md` around lines 242 - 248, Update the link definitions at the
bottom so the `[unreleased]` and new `[3.5.1]` references resolve: change
`[unreleased]` to start from `v3.5.1...HEAD` instead of `v3.5.0...HEAD`, and add
a new `[3.5.1]:` compare link (e.g.,
`https://github.com/munich-quantum-toolkit/core/compare/v3.5.0...v3.5.1`) so the
existing `## [3.5.1]` heading renders correctly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@CHANGELOG.md`:
- Around line 364-365: The changelog defines an unused markdown reference
`[`#1654`]`; remove the dangling link definition `[`#1654`]:
https://github.com/munich-quantum-toolkit/core/pull/1654` from the bottom of the
CHANGELOG.md or instead add the missing changelog entry that uses `[`#1654`]` in
the body so the reference is consumed; locate the `[`#1654`]` link definition and
either delete that line or insert the corresponding release note that references
`[`#1654`]`.

---

Outside diff comments:
In `@UPGRADING.md`:
- Around line 242-248: Update the link definitions at the bottom so the
`[unreleased]` and new `[3.5.1]` references resolve: change `[unreleased]` to
start from `v3.5.1...HEAD` instead of `v3.5.0...HEAD`, and add a new `[3.5.1]:`
compare link (e.g.,
`https://github.com/munich-quantum-toolkit/core/compare/v3.5.0...v3.5.1`) so the
existing `## [3.5.1]` heading renders correctly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 79448dda-1af1-4575-87e4-76262d9df1f3

📥 Commits

Reviewing files that changed from the base of the PR and between 6959a5e and f0d49c3.

📒 Files selected for processing (3)
  • CHANGELOG.md
  • UPGRADING.md
  • cmake/ExternalDependencies.cmake

Comment thread CHANGELOG.md Outdated
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Signed-off-by: Lukas Burgholzer <burgholzer@me.com>
Signed-off-by: Lukas Burgholzer <burgholzer@me.com>
@burgholzer burgholzer enabled auto-merge (squash) April 23, 2026 13:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c++ Anything related to C++ code fix Fix for something that isn't working skip-changelog Changes that do not need to show up in the changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant