Skip to content

Conversation

@burgholzer
Copy link
Member

Description

This PR removes the dedicated run-mlir output from the change detection workflow and merges it with the C++ workflow checks.
This is in anticipation for munich-quantum-toolkit/core#1356, which enables MLIR by default (at least for C++).

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.

…merge with C++ checks

Signed-off-by: burgholzer <burgholzer@me.com>
@burgholzer burgholzer self-assigned this Jan 7, 2026
@burgholzer burgholzer added the continuous integration Anything related to the CI setup label Jan 7, 2026
Signed-off-by: burgholzer <burgholzer@me.com>
@burgholzer burgholzer marked this pull request as ready for review January 7, 2026 08:30
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 7, 2026

📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Integrated MLIR paths into the standard C++ change-detection so MLIR file changes are now considered by general C++ workflows.
    • Removed the dedicated MLIR change-detection trigger/output; MLIR will be handled by the default flow rather than a separate MLIR-only step.
    • MLIR-specific test run remains separate and is not automatically triggered by the old MLIR-only mechanism.

✏️ Tip: You can customize this high-level summary in your review settings.

Walkthrough

Removed the dedicated run-mlir output and MLIR-specific change-detection steps from the reusable CI workflow; added mlir/** to the C++ file-change filters and updated docs (CHANGELOG, UPGRADING) to reflect the workflow consolidation.

Changes

Cohort / File(s) Change Summary
GitHub Workflow Configuration
​.github/workflows/reusable-change-detection.yml
Removed run-mlir workflow output and the MLIR-specific change-detection job steps; integrated mlir/** into the C++/linter files-changed filters and removed the separate MLIR detection block.
Documentation — Changelog
CHANGELOG.md
Added Unreleased entries documenting inclusion of mlir/** in C++ change detection and removal of the run-mlir output; added PR link reference for the change.
Documentation — Upgrade Notes
UPGRADING.md
Added note describing removal of run-mlir output, that MLIR will be enabled by default in the next release, and that mlir/** is now included in regular C++ file filters.

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

c++

Suggested reviewers

  • denialhaag

Poem

🐰 I hopped through workflows, tidy and spry,
Folded MLIR under C++'s sky.
No lone flag now, just one tidy trail—
CI hums along, light as a tail. ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the main change: removing the dedicated MLIR option and merging it with C++ checks in the reusable-change-detection.yml workflow.
Description check ✅ Passed The description covers the main change and context, includes a reference to related work, and all checklist items are marked as completed.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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


📜 Recent review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 50236e2 and c8c4f44.

📒 Files selected for processing (1)
  • .github/workflows/reusable-change-detection.yml
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: denialhaag
Repo: munich-quantum-toolkit/core PR: 1360
File: .github/workflows/reusable-mlir-tests.yml:40-43
Timestamp: 2025-12-05T17:45:37.602Z
Learning: In the munich-quantum-toolkit/core repository, patch releases of LLVM dependencies don't require documentation updates, changelog entries, or additional tests beyond what's validated by passing CI checks.
Learnt from: burgholzer
Repo: munich-quantum-toolkit/yaqs PR: 212
File: CHANGELOG.md:12-15
Timestamp: 2025-10-14T14:37:38.047Z
Learning: In the munich-quantum-toolkit/yaqs project, changelog entries follow the template: "- $TITLE ([#$NUMBER]($URL)) ([**AUTHOR**](https://github.com/$AUTHOR))". Issue references should not be included in changelog entries; the PR number is sufficient for traceability.
Learnt from: denialhaag
Repo: munich-quantum-toolkit/ddsim PR: 674
File: .github/workflows/cd.yml:56-56
Timestamp: 2025-10-11T13:21:15.212Z
Learning: In the ddsim repository, modifying .github/workflows/cd.yml intentionally triggers CD workflow testing in CI through a change-detection mechanism in ci.yml. The change-detection job outputs a run-cd flag that controls whether build-sdist and build-wheel jobs execute in CI, allowing testing of the CD workflow (including wheel building and testing) before actual releases.
📚 Learning: 2025-10-11T13:21:15.212Z
Learnt from: denialhaag
Repo: munich-quantum-toolkit/ddsim PR: 674
File: .github/workflows/cd.yml:56-56
Timestamp: 2025-10-11T13:21:15.212Z
Learning: In the ddsim repository, modifying .github/workflows/cd.yml intentionally triggers CD workflow testing in CI through a change-detection mechanism in ci.yml. The change-detection job outputs a run-cd flag that controls whether build-sdist and build-wheel jobs execute in CI, allowing testing of the CD workflow (including wheel building and testing) before actual releases.

Applied to files:

  • .github/workflows/reusable-change-detection.yml
🔇 Additional comments (2)
.github/workflows/reusable-change-detection.yml (2)

55-69: LGTM!

The addition of mlir/** to the C++ tests filter is correctly placed and aligns with the consolidation of MLIR detection into C++ workflows. The filter pattern is valid and will properly match all files under the mlir directory.


82-91: LGTM!

Consistent addition of mlir/** to the C++ linter filter, mirroring the change in the C++ tests filter. This ensures MLIR files are properly detected for both testing and linting workflows.


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
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: 0

Caution

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

⚠️ Outside diff range comments (2)
.github/workflows/reusable-change-detection.yml (2)

28-30: Critical: Remove orphaned run-mlir workflow output.

The workflow-level output run-mlir (lines 28-30) references jobs.change-detection.outputs.run-mlir, but this job output is no longer defined in the change-detection job outputs section (lines 44-48). This inconsistency will cause the run-mlir output to always evaluate to false, breaking any consumers that depend on it.

Since the PR objective is to remove the dedicated MLIR output, lines 28-30 should be deleted entirely.

🔥 Proposed fix
      run-cd:
        description: Whether to run the continuous deployment job
        value: ${{ jobs.change-detection.outputs.run-cd || false }}
-      run-mlir:
-        description: Whether to run the MLIR tests
-        value: ${{ jobs.change-detection.outputs.run-mlir || false }}

84-95: Remove duplicate mlir/** entry in the C++ linter filter.

The mlir/** path appears twice in the file filter: once at line 88 (newly added) and again at line 92 (existing). This duplication is redundant and should be cleaned up by removing line 92.

♻️ Proposed fix
        with:
          filter: |
            bindings/**
            include/**
            mlir/**
            src/**
            test/**
            !test/python/**
-            mlir/**
            .clang-tidy
            .github/workflows/reusable-cpp-linter.yml
            .github/workflows/ci.yml
📜 Review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9917004 and 50236e2.

📒 Files selected for processing (3)
  • .github/workflows/reusable-change-detection.yml
  • CHANGELOG.md
  • UPGRADING.md
🧰 Additional context used
🧠 Learnings (6)
📓 Common learnings
Learnt from: denialhaag
Repo: munich-quantum-toolkit/core PR: 1360
File: .github/workflows/reusable-mlir-tests.yml:40-43
Timestamp: 2025-12-05T17:45:37.602Z
Learning: In the munich-quantum-toolkit/core repository, patch releases of LLVM dependencies don't require documentation updates, changelog entries, or additional tests beyond what's validated by passing CI checks.
Learnt from: burgholzer
Repo: munich-quantum-toolkit/yaqs PR: 212
File: CHANGELOG.md:12-15
Timestamp: 2025-10-14T14:37:38.047Z
Learning: In the munich-quantum-toolkit/yaqs project, changelog entries follow the template: "- $TITLE ([#$NUMBER]($URL)) ([**AUTHOR**](https://github.com/$AUTHOR))". Issue references should not be included in changelog entries; the PR number is sufficient for traceability.
Learnt from: denialhaag
Repo: munich-quantum-toolkit/ddsim PR: 674
File: .github/workflows/cd.yml:56-56
Timestamp: 2025-10-11T13:21:15.212Z
Learning: In the ddsim repository, modifying .github/workflows/cd.yml intentionally triggers CD workflow testing in CI through a change-detection mechanism in ci.yml. The change-detection job outputs a run-cd flag that controls whether build-sdist and build-wheel jobs execute in CI, allowing testing of the CD workflow (including wheel building and testing) before actual releases.
📚 Learning: 2025-12-05T17:45:37.602Z
Learnt from: denialhaag
Repo: munich-quantum-toolkit/core PR: 1360
File: .github/workflows/reusable-mlir-tests.yml:40-43
Timestamp: 2025-12-05T17:45:37.602Z
Learning: In the munich-quantum-toolkit/core repository, patch releases of LLVM dependencies don't require documentation updates, changelog entries, or additional tests beyond what's validated by passing CI checks.

Applied to files:

  • UPGRADING.md
  • .github/workflows/reusable-change-detection.yml
  • CHANGELOG.md
📚 Learning: 2025-12-01T11:00:40.342Z
Learnt from: flowerthrower
Repo: munich-quantum-toolkit/core-plugins-catalyst PR: 1
File: CHANGELOG.md:18-18
Timestamp: 2025-12-01T11:00:40.342Z
Learning: In the munich-quantum-toolkit/core-plugins-catalyst repository, the CHANGELOG.md intentionally references the parent MQT Core repository's release notes (https://github.com/munich-quantum-toolkit/core/releases) because the plugin repository is based on work performed in the parent repository.

Applied to files:

  • UPGRADING.md
📚 Learning: 2026-01-04T21:41:30.252Z
Learnt from: burgholzer
Repo: munich-quantum-toolkit/core PR: 1356
File: cmake/SetupMLIR.cmake:32-33
Timestamp: 2026-01-04T21:41:30.252Z
Learning: In the munich-quantum-toolkit/core repository, the project provides its own pre-built LLVM/MLIR distributions that are compiled with LLVM_ENABLE_RTTI=ON and LLVM_ENABLE_EH=ON. Users are directed to these distributions via the upgrade guide and installation instructions to avoid ABI compatibility issues. The mid-term goal is to eliminate RTTI and exception handling dependencies entirely.

Applied to files:

  • UPGRADING.md
📚 Learning: 2025-10-11T13:21:15.212Z
Learnt from: denialhaag
Repo: munich-quantum-toolkit/ddsim PR: 674
File: .github/workflows/cd.yml:56-56
Timestamp: 2025-10-11T13:21:15.212Z
Learning: In the ddsim repository, modifying .github/workflows/cd.yml intentionally triggers CD workflow testing in CI through a change-detection mechanism in ci.yml. The change-detection job outputs a run-cd flag that controls whether build-sdist and build-wheel jobs execute in CI, allowing testing of the CD workflow (including wheel building and testing) before actual releases.

Applied to files:

  • .github/workflows/reusable-change-detection.yml
📚 Learning: 2025-10-14T14:37:38.047Z
Learnt from: burgholzer
Repo: munich-quantum-toolkit/yaqs PR: 212
File: CHANGELOG.md:12-15
Timestamp: 2025-10-14T14:37:38.047Z
Learning: In the munich-quantum-toolkit/yaqs project, changelog entries follow the template: "- $TITLE ([#$NUMBER]($URL)) ([**AUTHOR**](https://github.com/$AUTHOR))". Issue references should not be included in changelog entries; the PR number is sufficient for traceability.

Applied to files:

  • CHANGELOG.md
🔇 Additional comments (3)
CHANGELOG.md (1)

12-18: LGTM! Changelog entries follow project conventions.

The changelog entries are properly structured and follow the project's template format. Both the "Changed" and "Removed" sections accurately document the consolidation of MLIR detection into C++ workflows.

Also applies to: 271-271

.github/workflows/reusable-change-detection.yml (1)

60-60: LGTM! MLIR detection properly consolidated with C++ filters.

Adding mlir/** to both the C++ tests and C++ linter file filters correctly implements the consolidation described in the PR objectives.

Also applies to: 88-88

UPGRADING.md (1)

7-12: LGTM! Clear upgrade documentation.

The upgrade note clearly explains the removal of the run-mlir output, the rationale behind the change, and its limited scope to the MQT Core repository.

Signed-off-by: burgholzer <burgholzer@me.com>
@burgholzer burgholzer merged commit ddb9e48 into main Jan 7, 2026
5 checks passed
@burgholzer burgholzer deleted the update-change-detection branch January 7, 2026 09:01
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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants