Skip to content

Conversation

@denialhaag
Copy link
Member

@denialhaag denialhaag commented Dec 23, 2025

Description

This PR updates munich-quantum-software/setup-mlir to v1.0.0.

Furthermore, this PR prepares the release of v1.17.7.

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.

@denialhaag denialhaag self-assigned this Dec 23, 2025
@denialhaag denialhaag added the dependencies Pull requests that update a dependency file label Dec 23, 2025
Copy link
Member

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

LGTM !

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 23, 2025

📝 Walkthrough

Summary by CodeRabbit

  • Chores

    • Updated default LLVM version from 21.1.7 to 21.1.8 in all build workflows.
    • Updated MLIR setup action reference to v1.0.0 release tag.
  • Documentation

    • Added new changelog entry (v1.17.7) documenting infrastructure updates.
    • Corrected documentation formatting and updated version examples to match current toolchain.

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

Walkthrough

This PR updates CI/CD workflows to use LLVM 21.1.8 and upgrades the setup-mlir action reference from a specific commit hash to the v1.0.0 release tag across all reusable workflow files. Documentation is updated to reflect these changes.

Changes

Cohort / File(s) Summary
Workflow LLVM & Setup-MLIR Updates
.github/workflows/reusable-cpp-coverage.yml, reusable-cpp-linter.yml, reusable-cpp-tests-macos.yml, reusable-cpp-tests-ubuntu.yml, reusable-cpp-tests-windows.yml, reusable-python-linter.yml, reusable-python-packaging-wheel-cibuildwheel.yml, reusable-python-tests.yml, reusable-qiskit-upstream-tests.yml
Updates default LLVM version from 21.1.7 to 21.1.8; upgrades munich-quantum-software/setup-mlir action reference from commit hash 78e8f61... to fe382b2b... with v1.0.0 tag
Documentation Updates
CHANGELOG.md
Adds new unreleased entry for v1.17.7 documenting setup-mlir upgrade to v1.0.0; fixes casing in v1.17.6 entry; updates comparison links and PR references
Documentation Updates
UPGRADING.md
Corrects wording ("newly-created" to "newly created"); updates LLVM example version from 21.1.7 to 21.1.8; updates workflow reference from v1.17.4 to v1.17.5

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Suggested labels

enhancement

Suggested reviewers

  • burgholzer

Poem

🐰 With LLVM bumped to point-eight-one,
Our setup-mlir action's now v1!
From commit hashes to release tags so fine,
Nine workflows aligned, all working in time. ✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: updating setup-mlir to v1.0.0, which aligns with the changeset across all workflow files.
Description check ✅ Passed The description provides a clear summary of the change and includes a completed checklist. However, some checkbox items are marked as not applicable (crossed out) without explicit justification.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch update-setup-mlir

📜 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 f3d551f and 2d3038a.

📒 Files selected for processing (11)
  • .github/workflows/reusable-cpp-coverage.yml
  • .github/workflows/reusable-cpp-linter.yml
  • .github/workflows/reusable-cpp-tests-macos.yml
  • .github/workflows/reusable-cpp-tests-ubuntu.yml
  • .github/workflows/reusable-cpp-tests-windows.yml
  • .github/workflows/reusable-python-linter.yml
  • .github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml
  • .github/workflows/reusable-python-tests.yml
  • .github/workflows/reusable-qiskit-upstream-tests.yml
  • CHANGELOG.md
  • UPGRADING.md
🧰 Additional context used
🧠 Learnings (8)
📓 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: burgholzer
Repo: munich-quantum-toolkit/workflows PR: 270
File: .github/workflows/reusable-python-linter.yml:29-36
Timestamp: 2025-12-06T22:21:27.586Z
Learning: The munich-quantum-software/setup-mlir GitHub Action expects the llvm-version input in X.Y.Z format (e.g., 21.1.7), not in git tag format (e.g., llvmorg-21.1.7). The action internally manages the llvmorg- prefix when checking out the LLVM repository.
📚 Learning: 2025-12-06T22:21:27.586Z
Learnt from: burgholzer
Repo: munich-quantum-toolkit/workflows PR: 270
File: .github/workflows/reusable-python-linter.yml:29-36
Timestamp: 2025-12-06T22:21:27.586Z
Learning: The munich-quantum-software/setup-mlir GitHub Action expects the llvm-version input in X.Y.Z format (e.g., 21.1.7), not in git tag format (e.g., llvmorg-21.1.7). The action internally manages the llvmorg- prefix when checking out the LLVM repository.

Applied to files:

  • .github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml
  • .github/workflows/reusable-python-linter.yml
  • .github/workflows/reusable-cpp-tests-macos.yml
  • .github/workflows/reusable-qiskit-upstream-tests.yml
  • .github/workflows/reusable-python-tests.yml
  • .github/workflows/reusable-cpp-linter.yml
  • .github/workflows/reusable-cpp-tests-ubuntu.yml
  • .github/workflows/reusable-cpp-tests-windows.yml
  • CHANGELOG.md
  • .github/workflows/reusable-cpp-coverage.yml
  • UPGRADING.md
📚 Learning: 2025-12-14T16:51:52.504Z
Learnt from: burgholzer
Repo: munich-quantum-toolkit/core-plugins-catalyst PR: 23
File: .readthedocs.yaml:13-18
Timestamp: 2025-12-14T16:51:52.504Z
Learning: In the munich-quantum-toolkit/core-plugins-catalyst repository, LLVM and MLIR toolchains are required for the documentation build because `uv run` includes a full build of the package, which compiles C++/MLIR extensions using scikit-build-core.

Applied to files:

  • .github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml
  • .github/workflows/reusable-python-linter.yml
  • .github/workflows/reusable-cpp-tests-macos.yml
  • .github/workflows/reusable-qiskit-upstream-tests.yml
  • .github/workflows/reusable-python-tests.yml
  • .github/workflows/reusable-cpp-linter.yml
  • .github/workflows/reusable-cpp-tests-ubuntu.yml
  • .github/workflows/reusable-cpp-tests-windows.yml
  • CHANGELOG.md
  • .github/workflows/reusable-cpp-coverage.yml
📚 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:

  • .github/workflows/reusable-cpp-tests-macos.yml
  • .github/workflows/reusable-qiskit-upstream-tests.yml
  • .github/workflows/reusable-python-tests.yml
  • .github/workflows/reusable-cpp-linter.yml
  • .github/workflows/reusable-cpp-tests-ubuntu.yml
  • .github/workflows/reusable-cpp-tests-windows.yml
  • CHANGELOG.md
  • .github/workflows/reusable-cpp-coverage.yml
  • UPGRADING.md
📚 Learning: 2025-12-17T11:32:53.683Z
Learnt from: denialhaag
Repo: munich-quantum-toolkit/core PR: 1264
File: mlir/lib/Dialect/MQTOpt/Transforms/Transpilation/LayeredUnit.cpp:83-86
Timestamp: 2025-12-17T11:32:53.683Z
Learning: In the mlir directory of the munich-quantum-toolkit/core repository, the clang-tidy configuration (mlir/.clang-tidy) prefers marking free functions as `static` over placing them in anonymous namespaces. The configuration enables `llvm-prefer-static-over-anonymous-namespace` and disables `misc-use-anonymous-namespace`. Types/classes should still use anonymous namespaces, but free functions should use explicit `static` linkage.

Applied to files:

  • .github/workflows/reusable-cpp-linter.yml
  • .github/workflows/reusable-cpp-coverage.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
📚 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:

  • CHANGELOG.md
📚 Learning: 2025-11-24T10:19:41.147Z
Learnt from: burgholzer
Repo: munich-quantum-toolkit/core PR: 1326
File: python/mqt/core/__init__.py:22-22
Timestamp: 2025-11-24T10:19:41.147Z
Learning: In the munich-quantum-toolkit/core repository, Ruff is configured with 'ALL' rules enabled by default, and only specific rules are selectively disabled. When reviewing changes that enable previously-disabled rules (like PLC0415), noqa directives for those rules become necessary and should be retained.

Applied to files:

  • CHANGELOG.md
🪛 LanguageTool
CHANGELOG.md

[typographical] ~12-~12: To join two clauses or introduce examples, consider using an em dash.
Context: ...g changes. ## [Unreleased] ## [1.17.7] - 2025-12-23 ### Changed - 🔧 Update [mu...

(DASH_RULE)


[typographical] ~18-~18: To join two clauses or introduce examples, consider using an em dash.
Context: ...[#290]) ([@denialhaag]) ## [1.17.6] - 2025-12-21 _If you are upgrading: pleas...

(DASH_RULE)

🔇 Additional comments (16)
.github/workflows/reusable-python-linter.yml (2)

35-35: LGTM! LLVM version updated to 21.1.8.

The version bump from 21.1.7 to 21.1.8 follows the correct X.Y.Z format. Based on learnings, patch releases are validated by CI checks.


61-63: Verification complete: v1.0.0 tag and LLVM 21.1.8 are available.

The commit hash fe382b2b7f0fbe38d64ad72ddc83cbb7697b6765 correctly matches the v1.0.0 tag, and LLVM 21.1.8 is available in the LLVM repository. The workflow passes the llvm-version input in the correct X.Y.Z format expected by the setup-mlir action.

.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml (1)

32-32: LGTM! Consistent version updates.

The LLVM version and setup-mlir action updates are consistent with the PR objectives and align with changes in other workflow files.

Also applies to: 53-55

.github/workflows/reusable-cpp-tests-macos.yml (1)

54-54: LGTM! Consistent version updates.

The LLVM version and setup-mlir action updates are consistent with the PR objectives and align with changes in other workflow files.

Also applies to: 79-81

.github/workflows/reusable-python-tests.yml (1)

31-31: LGTM! Consistent version updates.

The LLVM version and setup-mlir action updates are consistent with the PR objectives and align with changes in other workflow files.

Also applies to: 77-79

.github/workflows/reusable-cpp-tests-windows.yml (1)

52-52: LGTM! Consistent version updates.

The LLVM version and setup-mlir action updates are consistent with the PR objectives and align with changes in other workflow files.

Also applies to: 81-83

.github/workflows/reusable-qiskit-upstream-tests.yml (1)

31-31: LGTM! Consistent version updates.

The LLVM version and setup-mlir action updates are consistent with the PR objectives and align with changes in other workflow files.

Also applies to: 55-57

UPGRADING.md (2)

74-74: LGTM! Grammar correction.

The change from "newly-created" to "newly created" is correct.


76-84: LGTM! Documentation updated to reflect version changes.

The examples have been updated to use LLVM 21.1.8 and reference workflow version v1.17.5, aligning with the code changes in this PR.

.github/workflows/reusable-cpp-linter.yml (1)

59-59: LGTM! Consistent version updates.

The LLVM version and setup-mlir action updates are consistent with the PR objectives and align with changes in other workflow files.

Also applies to: 82-84

.github/workflows/reusable-cpp-tests-ubuntu.yml (1)

54-54: LGTM! Changes are consistent with other workflow files.

The LLVM version and setup-mlir action reference updates are consistent with the changes in other workflow files across this PR.

Also applies to: 79-79

CHANGELOG.md (3)

12-17: LGTM! Changelog entry follows the correct format.

The new version entry is properly formatted and includes all necessary information. The reference to setup-mlir is appropriately linked at the bottom of the file.


24-24: Nice catch on the casing consistency!

The capitalization fix improves consistency across changelog entries.


213-214: LGTM! All links are properly updated.

The version comparison link, release link, PR reference, and the new external reference for setup-mlir are all correctly formatted and follow the established patterns in the changelog.

Also applies to: 237-237, 279-279

.github/workflows/reusable-cpp-coverage.yml (2)

31-31: LLVM 21.1.8 is a valid release and the version update is correct.


59-59: Good practice to use a tagged release reference. The action update from a commit hash to the v1.0.0 tag is correct and improves maintainability.


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.

@denialhaag denialhaag merged commit 7f8eeed into main Dec 23, 2025
5 checks passed
@denialhaag denialhaag deleted the update-setup-mlir branch December 23, 2025 13:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants