Skip to content

Conversation

@denialhaag
Copy link
Member

Description

This PR improves uv build caching. For more details, see munich-quantum-toolkit/core#1412.

Furthermore, this PR updates the license headers to 2026.

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.
  • 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 Jan 8, 2026
@denialhaag denialhaag added documentation Improvements or additions to documentation python Anything related to python code labels Jan 8, 2026
@coderabbitai
Copy link

coderabbitai bot commented Jan 8, 2026

📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Updated copyright year ranges across all project files to extend through 2026, reflecting expanded collaboration.
    • Updated licensing tool configuration with new force_license flag in project settings.
    • Adjusted pre-commit hook provider for typos validation.
    • Updated project metadata and copyright information in documentation configuration.

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

Walkthrough

This PR extends copyright year ranges to 2026 across the codebase for two entities and updates project metadata. It adds a force_license configuration flag in the license tool configuration, updates build tool settings in pyproject.toml, and changes the typos pre-commit hook source to a mirror repository.

Changes

Cohort / File(s) Summary
Configuration & License Metadata
\.license-tools-config.json, \.pre-commit-config.yaml, LICENSE\.md, docs/conf\.py, pyproject\.toml
Updated copyright year ranges (2025 → 2026) in license metadata; added force_license: true flag; swapped typos hook source to adhtruong/mirrors-typos; updated build tool configuration with new [tool.uv] cache-keys, [tool.repo-review] ignore list, and Python 3.14+ symengine dependency.
C++ Source & Header Files
app/testDDSimDebugger\.cpp, bindings/.*\.cpp, bindings/dd/DDSimDebugBindings\.cpp, cmake/.*, include/.*\.h*, src/.*\.cpp
Updated copyright header year ranges from "2024 - 2025" / "2025" to "2024 - 2026" / "2025 - 2026"; no functional changes.
Python Source Files
python/mqt/debugger/.*\.py, python/mqt/debugger/.*\.pyi, noxfile\.py, sitecustomize\.py
Updated copyright header year ranges from "2024 - 2025" / "2025" to "2024 - 2026" / "2025 - 2026"; no functional changes.
Python Test Files
test/python/.*\.py
Updated copyright header year ranges from "2024 - 2025" / "2025" to "2024 - 2026" / "2025 - 2026"; no functional changes.
C++ Test & Utility Files
test/.*\.cpp, test/utils/.*\.hpp
Updated copyright header year ranges from "2024 - 2025" / "2025" to "2024 - 2026" / "2025 - 2026"; no functional changes.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • DRovara

Poem

🐰 With whiskers twitching, I hop through the code,
Copyright strings dancing along the new road,
From twenty-twenty-five to twenty-twenty-six,
Fresh configuration, a copyright mix!
The force is with licensing now, I decree,
A very fine update this certainly be! 🎉

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main changes: improving uv build caching and updating license headers to 2026.
Description check ✅ Passed The description covers the main changes with a reference to related work, though it marks documentation and test updates as not applicable.
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.

✨ Finishing touches
  • 📝 Generate docstrings

📜 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 4f02710 and 521cf23.

📒 Files selected for processing (100)
  • .license-tools-config.json
  • .pre-commit-config.yaml
  • LICENSE.md
  • app/testDDSimDebugger.cpp
  • bindings/InterfaceBindings.cpp
  • bindings/bindings.cpp
  • bindings/dd/DDSimDebugBindings.cpp
  • cmake/ExternalDependencies.cmake
  • cmake/cmake_uninstall.cmake.in
  • docs/conf.py
  • include/backend/dd/DDSimDebug.hpp
  • include/backend/dd/DDSimDiagnostics.hpp
  • include/backend/debug.h
  • include/backend/diagnostics.h
  • include/common.h
  • include/common/ComplexMathematics.hpp
  • include/common/Span.hpp
  • include/common/parsing/AssertionParsing.hpp
  • include/common/parsing/AssertionTools.hpp
  • include/common/parsing/CodePreprocessing.hpp
  • include/common/parsing/ParsingError.hpp
  • include/common/parsing/Utils.hpp
  • include/frontend/cli/CliFrontEnd.hpp
  • include/python/InterfaceBindings.hpp
  • include/python/dd/DDSimDebugBindings.hpp
  • noxfile.py
  • pyproject.toml
  • python/mqt/debugger/__init__.py
  • python/mqt/debugger/_version.pyi
  • python/mqt/debugger/check/__init__.py
  • python/mqt/debugger/check/__main__.py
  • python/mqt/debugger/check/calibration.py
  • python/mqt/debugger/check/result_checker.py
  • python/mqt/debugger/check/run_preparation.py
  • python/mqt/debugger/check/runtime_check.py
  • python/mqt/debugger/dap/__init__.py
  • python/mqt/debugger/dap/adapter.py
  • python/mqt/debugger/dap/dap_server.py
  • python/mqt/debugger/dap/messages/__init__.py
  • python/mqt/debugger/dap/messages/capabilities_dap_event.py
  • python/mqt/debugger/dap/messages/change_amplitude_dap_message.py
  • python/mqt/debugger/dap/messages/change_bit_dap_message.py
  • python/mqt/debugger/dap/messages/configuration_done_dap_message.py
  • python/mqt/debugger/dap/messages/continue_dap_message.py
  • python/mqt/debugger/dap/messages/dap_event.py
  • python/mqt/debugger/dap/messages/dap_message.py
  • python/mqt/debugger/dap/messages/disconnect_dap_message.py
  • python/mqt/debugger/dap/messages/exception_info_message.py
  • python/mqt/debugger/dap/messages/exited_dap_event.py
  • python/mqt/debugger/dap/messages/gray_out_event.py
  • python/mqt/debugger/dap/messages/initialize_dap_message.py
  • python/mqt/debugger/dap/messages/initialized_dap_event.py
  • python/mqt/debugger/dap/messages/launch_dap_message.py
  • python/mqt/debugger/dap/messages/next_dap_message.py
  • python/mqt/debugger/dap/messages/output_dap_event.py
  • python/mqt/debugger/dap/messages/pause_dap_message.py
  • python/mqt/debugger/dap/messages/restart_dap_message.py
  • python/mqt/debugger/dap/messages/restart_frame_dap_message.py
  • python/mqt/debugger/dap/messages/reverse_continue_dap_message.py
  • python/mqt/debugger/dap/messages/scopes_dap_message.py
  • python/mqt/debugger/dap/messages/set_breakpoints_dap_message.py
  • python/mqt/debugger/dap/messages/set_exception_breakpoints_dap_message.py
  • python/mqt/debugger/dap/messages/stack_trace_dap_message.py
  • python/mqt/debugger/dap/messages/step_back_dap_message.py
  • python/mqt/debugger/dap/messages/step_in_dap_message.py
  • python/mqt/debugger/dap/messages/step_out_dap_message.py
  • python/mqt/debugger/dap/messages/stopped_dap_event.py
  • python/mqt/debugger/dap/messages/terminate_dap_message.py
  • python/mqt/debugger/dap/messages/terminated_dap_event.py
  • python/mqt/debugger/dap/messages/threads_dap_message.py
  • python/mqt/debugger/dap/messages/utils.py
  • python/mqt/debugger/dap/messages/variables_dap_message.py
  • python/mqt/debugger/pydebugger.pyi
  • sitecustomize.py
  • src/backend/dd/DDSimDebug.cpp
  • src/backend/dd/DDSimDiagnostics.cpp
  • src/common/ComplexMathematics.cpp
  • src/common/parsing/AssertionParsing.cpp
  • src/common/parsing/AssertionTools.cpp
  • src/common/parsing/CodePreprocessing.cpp
  • src/common/parsing/ParsingError.cpp
  • src/common/parsing/Utils.cpp
  • src/frontend/cli/CliFrontEnd.cpp
  • test/python/test_compilation.py
  • test/python/test_diagnosis.py
  • test/python/test_end_to_end.py
  • test/python/test_python_bindings.py
  • test/test_assertion_creation.cpp
  • test/test_assertion_movement.cpp
  • test/test_compilation_projective_measurements.cpp
  • test/test_compilation_statistical_slices.cpp
  • test/test_custom_code.cpp
  • test/test_data_retrieval.cpp
  • test/test_diagnostics.cpp
  • test/test_parsing.cpp
  • test/test_simulation.cpp
  • test/test_utility.cpp
  • test/utils/common_fixtures.hpp
  • test/utils/utils_test.hpp
  • test/utils_test.cpp
🧰 Additional context used
🧠 Learnings (14)
📚 Learning: 2025-12-07T09:10:31.836Z
Learnt from: burgholzer
Repo: munich-quantum-toolkit/core PR: 1355
File: src/qdmi/sc/Device.cpp:97-102
Timestamp: 2025-12-07T09:10:31.836Z
Learning: In the munich-quantum-toolkit/core repository, duplication of QDMI-related macros (such as IS_INVALID_ARGUMENT) across device implementations (e.g., in src/qdmi/sc/Device.cpp and src/qdmi/dd/Device.cpp) is acceptable as a temporary measure. The preferred long-term solution is to upstream these macros to the QDMI repository rather than creating local shared headers, so they can be reused across all dependent projects.

Applied to files:

  • src/frontend/cli/CliFrontEnd.cpp
  • python/mqt/debugger/dap/messages/restart_frame_dap_message.py
  • test/test_assertion_movement.cpp
  • python/mqt/debugger/dap/messages/stopped_dap_event.py
  • python/mqt/debugger/check/__main__.py
  • python/mqt/debugger/check/__init__.py
  • src/backend/dd/DDSimDiagnostics.cpp
  • python/mqt/debugger/dap/messages/change_bit_dap_message.py
  • python/mqt/debugger/dap/messages/initialize_dap_message.py
  • bindings/bindings.cpp
  • python/mqt/debugger/dap/messages/initialized_dap_event.py
  • include/common.h
  • python/mqt/debugger/dap/messages/reverse_continue_dap_message.py
  • python/mqt/debugger/dap/messages/next_dap_message.py
  • python/mqt/debugger/dap/messages/set_breakpoints_dap_message.py
  • test/test_assertion_creation.cpp
  • include/backend/debug.h
  • python/mqt/debugger/dap/messages/terminated_dap_event.py
  • python/mqt/debugger/dap/messages/scopes_dap_message.py
  • src/backend/dd/DDSimDebug.cpp
  • python/mqt/debugger/dap/messages/configuration_done_dap_message.py
  • python/mqt/debugger/dap/messages/exception_info_message.py
  • python/mqt/debugger/dap/messages/launch_dap_message.py
  • python/mqt/debugger/dap/messages/step_back_dap_message.py
  • test/test_compilation_projective_measurements.cpp
  • python/mqt/debugger/check/result_checker.py
  • python/mqt/debugger/dap/messages/utils.py
  • python/mqt/debugger/dap/messages/exited_dap_event.py
  • include/common/parsing/AssertionParsing.hpp
  • include/common/ComplexMathematics.hpp
  • test/test_diagnostics.cpp
  • python/mqt/debugger/dap/messages/disconnect_dap_message.py
  • include/backend/diagnostics.h
  • src/common/parsing/CodePreprocessing.cpp
  • include/python/InterfaceBindings.hpp
  • python/mqt/debugger/dap/messages/dap_event.py
  • python/mqt/debugger/dap/messages/step_in_dap_message.py
  • test/python/test_compilation.py
  • test/test_parsing.cpp
  • test/utils/common_fixtures.hpp
  • python/mqt/debugger/dap/messages/__init__.py
  • src/common/parsing/ParsingError.cpp
  • sitecustomize.py
  • python/mqt/debugger/dap/messages/set_exception_breakpoints_dap_message.py
  • include/common/parsing/CodePreprocessing.hpp
  • python/mqt/debugger/check/calibration.py
  • python/mqt/debugger/dap/messages/pause_dap_message.py
  • python/mqt/debugger/dap/messages/stack_trace_dap_message.py
  • src/common/parsing/AssertionTools.cpp
  • python/mqt/debugger/_version.pyi
  • src/common/ComplexMathematics.cpp
  • include/common/Span.hpp
  • include/common/parsing/Utils.hpp
  • src/common/parsing/AssertionParsing.cpp
  • python/mqt/debugger/dap/messages/variables_dap_message.py
  • test/test_compilation_statistical_slices.cpp
  • python/mqt/debugger/dap/messages/change_amplitude_dap_message.py
  • python/mqt/debugger/check/runtime_check.py
  • bindings/InterfaceBindings.cpp
  • python/mqt/debugger/check/run_preparation.py
  • test/test_custom_code.cpp
  • python/mqt/debugger/dap/messages/continue_dap_message.py
  • python/mqt/debugger/dap/messages/threads_dap_message.py
  • python/mqt/debugger/__init__.py
  • test/utils_test.cpp
  • include/backend/dd/DDSimDebug.hpp
  • include/frontend/cli/CliFrontEnd.hpp
  • cmake/ExternalDependencies.cmake
  • python/mqt/debugger/dap/adapter.py
  • python/mqt/debugger/pydebugger.pyi
  • test/test_utility.cpp
  • test/test_simulation.cpp
  • python/mqt/debugger/dap/messages/terminate_dap_message.py
  • include/common/parsing/ParsingError.hpp
  • python/mqt/debugger/dap/messages/restart_dap_message.py
  • python/mqt/debugger/dap/messages/dap_message.py
  • test/utils/utils_test.hpp
  • test/python/test_end_to_end.py
  • cmake/cmake_uninstall.cmake.in
  • test/python/test_python_bindings.py
  • app/testDDSimDebugger.cpp
  • python/mqt/debugger/dap/messages/output_dap_event.py
  • test/python/test_diagnosis.py
  • bindings/dd/DDSimDebugBindings.cpp
  • include/common/parsing/AssertionTools.hpp
  • python/mqt/debugger/dap/messages/capabilities_dap_event.py
  • python/mqt/debugger/dap/__init__.py
  • include/backend/dd/DDSimDiagnostics.hpp
  • docs/conf.py
  • include/python/dd/DDSimDebugBindings.hpp
  • src/common/parsing/Utils.cpp
  • test/test_data_retrieval.cpp
  • python/mqt/debugger/dap/messages/step_out_dap_message.py
  • python/mqt/debugger/dap/messages/gray_out_event.py
  • python/mqt/debugger/dap/dap_server.py
  • pyproject.toml
📚 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:

  • src/frontend/cli/CliFrontEnd.cpp
  • python/mqt/debugger/dap/messages/restart_frame_dap_message.py
  • test/test_assertion_movement.cpp
  • python/mqt/debugger/dap/messages/stopped_dap_event.py
  • python/mqt/debugger/check/__main__.py
  • python/mqt/debugger/check/__init__.py
  • src/backend/dd/DDSimDiagnostics.cpp
  • python/mqt/debugger/dap/messages/change_bit_dap_message.py
  • python/mqt/debugger/dap/messages/initialize_dap_message.py
  • bindings/bindings.cpp
  • python/mqt/debugger/dap/messages/initialized_dap_event.py
  • include/common.h
  • python/mqt/debugger/dap/messages/reverse_continue_dap_message.py
  • python/mqt/debugger/dap/messages/next_dap_message.py
  • python/mqt/debugger/dap/messages/set_breakpoints_dap_message.py
  • test/test_assertion_creation.cpp
  • include/backend/debug.h
  • python/mqt/debugger/dap/messages/terminated_dap_event.py
  • python/mqt/debugger/dap/messages/scopes_dap_message.py
  • src/backend/dd/DDSimDebug.cpp
  • python/mqt/debugger/dap/messages/configuration_done_dap_message.py
  • python/mqt/debugger/dap/messages/exception_info_message.py
  • python/mqt/debugger/dap/messages/launch_dap_message.py
  • python/mqt/debugger/dap/messages/step_back_dap_message.py
  • test/test_compilation_projective_measurements.cpp
  • python/mqt/debugger/check/result_checker.py
  • python/mqt/debugger/dap/messages/utils.py
  • python/mqt/debugger/dap/messages/exited_dap_event.py
  • include/common/parsing/AssertionParsing.hpp
  • include/common/ComplexMathematics.hpp
  • test/test_diagnostics.cpp
  • python/mqt/debugger/dap/messages/disconnect_dap_message.py
  • include/backend/diagnostics.h
  • src/common/parsing/CodePreprocessing.cpp
  • include/python/InterfaceBindings.hpp
  • python/mqt/debugger/dap/messages/dap_event.py
  • python/mqt/debugger/dap/messages/step_in_dap_message.py
  • test/python/test_compilation.py
  • test/test_parsing.cpp
  • test/utils/common_fixtures.hpp
  • python/mqt/debugger/dap/messages/__init__.py
  • src/common/parsing/ParsingError.cpp
  • sitecustomize.py
  • python/mqt/debugger/dap/messages/set_exception_breakpoints_dap_message.py
  • include/common/parsing/CodePreprocessing.hpp
  • python/mqt/debugger/check/calibration.py
  • python/mqt/debugger/dap/messages/pause_dap_message.py
  • python/mqt/debugger/dap/messages/stack_trace_dap_message.py
  • src/common/parsing/AssertionTools.cpp
  • python/mqt/debugger/_version.pyi
  • src/common/ComplexMathematics.cpp
  • include/common/Span.hpp
  • include/common/parsing/Utils.hpp
  • src/common/parsing/AssertionParsing.cpp
  • python/mqt/debugger/dap/messages/variables_dap_message.py
  • test/test_compilation_statistical_slices.cpp
  • python/mqt/debugger/dap/messages/change_amplitude_dap_message.py
  • python/mqt/debugger/check/runtime_check.py
  • bindings/InterfaceBindings.cpp
  • python/mqt/debugger/check/run_preparation.py
  • test/test_custom_code.cpp
  • python/mqt/debugger/dap/messages/continue_dap_message.py
  • python/mqt/debugger/dap/messages/threads_dap_message.py
  • python/mqt/debugger/__init__.py
  • test/utils_test.cpp
  • include/backend/dd/DDSimDebug.hpp
  • include/frontend/cli/CliFrontEnd.hpp
  • cmake/ExternalDependencies.cmake
  • python/mqt/debugger/dap/adapter.py
  • python/mqt/debugger/pydebugger.pyi
  • test/test_utility.cpp
  • test/test_simulation.cpp
  • python/mqt/debugger/dap/messages/terminate_dap_message.py
  • include/common/parsing/ParsingError.hpp
  • python/mqt/debugger/dap/messages/restart_dap_message.py
  • python/mqt/debugger/dap/messages/dap_message.py
  • test/utils/utils_test.hpp
  • test/python/test_end_to_end.py
  • cmake/cmake_uninstall.cmake.in
  • test/python/test_python_bindings.py
  • app/testDDSimDebugger.cpp
  • python/mqt/debugger/dap/messages/output_dap_event.py
  • test/python/test_diagnosis.py
  • bindings/dd/DDSimDebugBindings.cpp
  • include/common/parsing/AssertionTools.hpp
  • python/mqt/debugger/dap/messages/capabilities_dap_event.py
  • python/mqt/debugger/dap/__init__.py
  • include/backend/dd/DDSimDiagnostics.hpp
  • docs/conf.py
  • include/python/dd/DDSimDebugBindings.hpp
  • src/common/parsing/Utils.cpp
  • test/test_data_retrieval.cpp
  • python/mqt/debugger/dap/messages/step_out_dap_message.py
  • python/mqt/debugger/dap/messages/gray_out_event.py
  • python/mqt/debugger/dap/dap_server.py
  • pyproject.toml
📚 Learning: 2025-11-04T14:28:32.371Z
Learnt from: marcelwa
Repo: munich-quantum-toolkit/core PR: 1243
File: test/python/qdmi/qiskit/test_qdmi_qiskit_backend.py:0-0
Timestamp: 2025-11-04T14:28:32.371Z
Learning: In the munich-quantum-toolkit/core repository, at least one FoMaC device is always available during testing, so skip logic for missing devices in QDMI Qiskit backend tests is not necessary.

Applied to files:

  • src/frontend/cli/CliFrontEnd.cpp
  • python/mqt/debugger/dap/messages/restart_frame_dap_message.py
  • test/test_assertion_movement.cpp
  • python/mqt/debugger/dap/messages/stopped_dap_event.py
  • python/mqt/debugger/check/__main__.py
  • python/mqt/debugger/check/__init__.py
  • src/backend/dd/DDSimDiagnostics.cpp
  • python/mqt/debugger/dap/messages/change_bit_dap_message.py
  • python/mqt/debugger/dap/messages/initialize_dap_message.py
  • bindings/bindings.cpp
  • python/mqt/debugger/dap/messages/initialized_dap_event.py
  • include/common.h
  • python/mqt/debugger/dap/messages/reverse_continue_dap_message.py
  • python/mqt/debugger/dap/messages/next_dap_message.py
  • python/mqt/debugger/dap/messages/set_breakpoints_dap_message.py
  • test/test_assertion_creation.cpp
  • include/backend/debug.h
  • python/mqt/debugger/dap/messages/terminated_dap_event.py
  • python/mqt/debugger/dap/messages/scopes_dap_message.py
  • src/backend/dd/DDSimDebug.cpp
  • python/mqt/debugger/dap/messages/configuration_done_dap_message.py
  • python/mqt/debugger/dap/messages/exception_info_message.py
  • python/mqt/debugger/dap/messages/launch_dap_message.py
  • python/mqt/debugger/dap/messages/step_back_dap_message.py
  • test/test_compilation_projective_measurements.cpp
  • python/mqt/debugger/check/result_checker.py
  • python/mqt/debugger/dap/messages/utils.py
  • python/mqt/debugger/dap/messages/exited_dap_event.py
  • include/common/parsing/AssertionParsing.hpp
  • include/common/ComplexMathematics.hpp
  • test/test_diagnostics.cpp
  • python/mqt/debugger/dap/messages/disconnect_dap_message.py
  • include/backend/diagnostics.h
  • src/common/parsing/CodePreprocessing.cpp
  • include/python/InterfaceBindings.hpp
  • python/mqt/debugger/dap/messages/dap_event.py
  • python/mqt/debugger/dap/messages/step_in_dap_message.py
  • test/python/test_compilation.py
  • test/test_parsing.cpp
  • test/utils/common_fixtures.hpp
  • python/mqt/debugger/dap/messages/__init__.py
  • src/common/parsing/ParsingError.cpp
  • sitecustomize.py
  • python/mqt/debugger/dap/messages/set_exception_breakpoints_dap_message.py
  • include/common/parsing/CodePreprocessing.hpp
  • python/mqt/debugger/check/calibration.py
  • python/mqt/debugger/dap/messages/pause_dap_message.py
  • python/mqt/debugger/dap/messages/stack_trace_dap_message.py
  • src/common/parsing/AssertionTools.cpp
  • python/mqt/debugger/_version.pyi
  • src/common/ComplexMathematics.cpp
  • include/common/Span.hpp
  • include/common/parsing/Utils.hpp
  • src/common/parsing/AssertionParsing.cpp
  • python/mqt/debugger/dap/messages/variables_dap_message.py
  • test/test_compilation_statistical_slices.cpp
  • python/mqt/debugger/dap/messages/change_amplitude_dap_message.py
  • python/mqt/debugger/check/runtime_check.py
  • bindings/InterfaceBindings.cpp
  • python/mqt/debugger/check/run_preparation.py
  • test/test_custom_code.cpp
  • python/mqt/debugger/dap/messages/continue_dap_message.py
  • python/mqt/debugger/dap/messages/threads_dap_message.py
  • python/mqt/debugger/__init__.py
  • test/utils_test.cpp
  • include/backend/dd/DDSimDebug.hpp
  • include/frontend/cli/CliFrontEnd.hpp
  • cmake/ExternalDependencies.cmake
  • python/mqt/debugger/dap/adapter.py
  • python/mqt/debugger/pydebugger.pyi
  • test/test_utility.cpp
  • test/test_simulation.cpp
  • python/mqt/debugger/dap/messages/terminate_dap_message.py
  • include/common/parsing/ParsingError.hpp
  • python/mqt/debugger/dap/messages/restart_dap_message.py
  • python/mqt/debugger/dap/messages/dap_message.py
  • test/utils/utils_test.hpp
  • test/python/test_end_to_end.py
  • cmake/cmake_uninstall.cmake.in
  • test/python/test_python_bindings.py
  • app/testDDSimDebugger.cpp
  • python/mqt/debugger/dap/messages/output_dap_event.py
  • test/python/test_diagnosis.py
  • bindings/dd/DDSimDebugBindings.cpp
  • include/common/parsing/AssertionTools.hpp
  • python/mqt/debugger/dap/messages/capabilities_dap_event.py
  • python/mqt/debugger/dap/__init__.py
  • include/backend/dd/DDSimDiagnostics.hpp
  • docs/conf.py
  • include/python/dd/DDSimDebugBindings.hpp
  • src/common/parsing/Utils.cpp
  • test/test_data_retrieval.cpp
  • python/mqt/debugger/dap/messages/step_out_dap_message.py
  • python/mqt/debugger/dap/messages/gray_out_event.py
  • python/mqt/debugger/dap/dap_server.py
  • pyproject.toml
📚 Learning: 2025-12-09T00:55:11.926Z
Learnt from: denialhaag
Repo: munich-quantum-toolkit/core PR: 1264
File: mlir/lib/Dialect/Flux/IR/Operations/StandardGates/BarrierOp.cpp:45-54
Timestamp: 2025-12-09T00:55:11.926Z
Learning: In the Flux dialect (mlir/lib/Dialect/Flux), qubits follow single-user/linear-type semantics where each qubit value can only be consumed once, similar to MQTOpt. This invariant makes it safe to dereference getUsers().begin() in canonicalization patterns like MergeSubsequentBarrier in BarrierOp.cpp, as there will be at most one user per qubit output.

Applied to files:

  • src/frontend/cli/CliFrontEnd.cpp
  • test/test_assertion_movement.cpp
  • src/backend/dd/DDSimDiagnostics.cpp
  • bindings/bindings.cpp
  • include/common.h
  • test/test_assertion_creation.cpp
  • include/backend/debug.h
  • src/backend/dd/DDSimDebug.cpp
  • test/test_compilation_projective_measurements.cpp
  • include/common/parsing/AssertionParsing.hpp
  • include/common/ComplexMathematics.hpp
  • test/test_diagnostics.cpp
  • include/backend/diagnostics.h
  • src/common/parsing/CodePreprocessing.cpp
  • include/python/InterfaceBindings.hpp
  • test/test_parsing.cpp
  • test/utils/common_fixtures.hpp
  • src/common/parsing/ParsingError.cpp
  • include/common/parsing/CodePreprocessing.hpp
  • src/common/parsing/AssertionTools.cpp
  • src/common/ComplexMathematics.cpp
  • include/common/Span.hpp
  • include/common/parsing/Utils.hpp
  • src/common/parsing/AssertionParsing.cpp
  • test/test_compilation_statistical_slices.cpp
  • bindings/InterfaceBindings.cpp
  • test/test_custom_code.cpp
  • test/utils_test.cpp
  • include/backend/dd/DDSimDebug.hpp
  • include/frontend/cli/CliFrontEnd.hpp
  • test/test_utility.cpp
  • test/test_simulation.cpp
  • include/common/parsing/ParsingError.hpp
  • test/utils/utils_test.hpp
  • app/testDDSimDebugger.cpp
  • bindings/dd/DDSimDebugBindings.cpp
  • include/common/parsing/AssertionTools.hpp
  • include/backend/dd/DDSimDiagnostics.hpp
  • include/python/dd/DDSimDebugBindings.hpp
  • src/common/parsing/Utils.cpp
  • test/test_data_retrieval.cpp
📚 Learning: 2025-10-09T13:14:10.178Z
Learnt from: DRovara
Repo: munich-quantum-toolkit/core PR: 1108
File: mlir/lib/Dialect/MQTOpt/Transforms/ReplaceBasisStateControlsWithIfPattern.cpp:219-221
Timestamp: 2025-10-09T13:14:10.178Z
Learning: The MQT Core project (munich-quantum-toolkit/core repository) uses the C++20 standard, not C++17. C++20 features such as abbreviated function templates (e.g., `const auto&` parameters) are supported and valid in this codebase.

Applied to files:

  • src/frontend/cli/CliFrontEnd.cpp
  • test/test_assertion_movement.cpp
  • src/backend/dd/DDSimDiagnostics.cpp
  • bindings/bindings.cpp
  • include/common.h
  • test/test_assertion_creation.cpp
  • include/backend/debug.h
  • src/backend/dd/DDSimDebug.cpp
  • test/test_compilation_projective_measurements.cpp
  • include/common/parsing/AssertionParsing.hpp
  • include/common/ComplexMathematics.hpp
  • test/test_diagnostics.cpp
  • include/backend/diagnostics.h
  • src/common/parsing/CodePreprocessing.cpp
  • include/python/InterfaceBindings.hpp
  • test/test_parsing.cpp
  • test/utils/common_fixtures.hpp
  • src/common/parsing/ParsingError.cpp
  • include/common/parsing/CodePreprocessing.hpp
  • src/common/parsing/AssertionTools.cpp
  • src/common/ComplexMathematics.cpp
  • include/common/Span.hpp
  • include/common/parsing/Utils.hpp
  • src/common/parsing/AssertionParsing.cpp
  • test/test_compilation_statistical_slices.cpp
  • bindings/InterfaceBindings.cpp
  • test/test_custom_code.cpp
  • test/utils_test.cpp
  • include/backend/dd/DDSimDebug.hpp
  • include/frontend/cli/CliFrontEnd.hpp
  • test/test_utility.cpp
  • test/test_simulation.cpp
  • include/common/parsing/ParsingError.hpp
  • test/utils/utils_test.hpp
  • app/testDDSimDebugger.cpp
  • bindings/dd/DDSimDebugBindings.cpp
  • include/common/parsing/AssertionTools.hpp
  • include/backend/dd/DDSimDiagnostics.hpp
  • include/python/dd/DDSimDebugBindings.hpp
  • src/common/parsing/Utils.cpp
  • test/test_data_retrieval.cpp
📚 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:

  • python/mqt/debugger/dap/messages/restart_frame_dap_message.py
  • python/mqt/debugger/dap/messages/stopped_dap_event.py
  • python/mqt/debugger/check/__main__.py
  • python/mqt/debugger/check/__init__.py
  • python/mqt/debugger/dap/messages/change_bit_dap_message.py
  • python/mqt/debugger/dap/messages/initialize_dap_message.py
  • python/mqt/debugger/dap/messages/initialized_dap_event.py
  • python/mqt/debugger/dap/messages/reverse_continue_dap_message.py
  • python/mqt/debugger/dap/messages/next_dap_message.py
  • python/mqt/debugger/dap/messages/set_breakpoints_dap_message.py
  • python/mqt/debugger/dap/messages/terminated_dap_event.py
  • python/mqt/debugger/dap/messages/scopes_dap_message.py
  • python/mqt/debugger/dap/messages/configuration_done_dap_message.py
  • python/mqt/debugger/dap/messages/exception_info_message.py
  • python/mqt/debugger/dap/messages/launch_dap_message.py
  • python/mqt/debugger/dap/messages/step_back_dap_message.py
  • python/mqt/debugger/check/result_checker.py
  • python/mqt/debugger/dap/messages/utils.py
  • python/mqt/debugger/dap/messages/exited_dap_event.py
  • python/mqt/debugger/dap/messages/disconnect_dap_message.py
  • python/mqt/debugger/dap/messages/dap_event.py
  • LICENSE.md
  • python/mqt/debugger/dap/messages/step_in_dap_message.py
  • test/python/test_compilation.py
  • python/mqt/debugger/dap/messages/__init__.py
  • sitecustomize.py
  • python/mqt/debugger/dap/messages/set_exception_breakpoints_dap_message.py
  • python/mqt/debugger/check/calibration.py
  • python/mqt/debugger/dap/messages/pause_dap_message.py
  • python/mqt/debugger/dap/messages/stack_trace_dap_message.py
  • python/mqt/debugger/_version.pyi
  • python/mqt/debugger/dap/messages/variables_dap_message.py
  • python/mqt/debugger/dap/messages/change_amplitude_dap_message.py
  • python/mqt/debugger/check/runtime_check.py
  • python/mqt/debugger/check/run_preparation.py
  • python/mqt/debugger/dap/messages/continue_dap_message.py
  • python/mqt/debugger/dap/messages/threads_dap_message.py
  • python/mqt/debugger/__init__.py
  • cmake/ExternalDependencies.cmake
  • python/mqt/debugger/dap/adapter.py
  • python/mqt/debugger/pydebugger.pyi
  • .license-tools-config.json
  • python/mqt/debugger/dap/messages/terminate_dap_message.py
  • python/mqt/debugger/dap/messages/restart_dap_message.py
  • python/mqt/debugger/dap/messages/dap_message.py
  • test/python/test_end_to_end.py
  • cmake/cmake_uninstall.cmake.in
  • test/python/test_python_bindings.py
  • python/mqt/debugger/dap/messages/output_dap_event.py
  • test/python/test_diagnosis.py
  • python/mqt/debugger/dap/messages/capabilities_dap_event.py
  • python/mqt/debugger/dap/__init__.py
  • docs/conf.py
  • python/mqt/debugger/dap/messages/step_out_dap_message.py
  • python/mqt/debugger/dap/messages/gray_out_event.py
  • python/mqt/debugger/dap/dap_server.py
  • pyproject.toml
📚 Learning: 2025-12-15T01:59:17.023Z
Learnt from: denialhaag
Repo: munich-quantum-toolkit/core PR: 1383
File: python/mqt/core/ir/operations.pyi:9-16
Timestamp: 2025-12-15T01:59:17.023Z
Learning: In the munich-quantum-toolkit/core repository, stub files (.pyi) are auto-generated by nanobind's stubgen tool and should not be manually modified for style preferences, as changes would be overwritten during regeneration.

Applied to files:

  • python/mqt/debugger/dap/messages/restart_frame_dap_message.py
  • python/mqt/debugger/dap/messages/stopped_dap_event.py
  • python/mqt/debugger/check/__main__.py
  • python/mqt/debugger/check/__init__.py
  • python/mqt/debugger/dap/messages/change_bit_dap_message.py
  • python/mqt/debugger/dap/messages/initialize_dap_message.py
  • python/mqt/debugger/dap/messages/initialized_dap_event.py
  • python/mqt/debugger/dap/messages/reverse_continue_dap_message.py
  • python/mqt/debugger/dap/messages/next_dap_message.py
  • python/mqt/debugger/dap/messages/set_breakpoints_dap_message.py
  • python/mqt/debugger/dap/messages/terminated_dap_event.py
  • python/mqt/debugger/dap/messages/scopes_dap_message.py
  • python/mqt/debugger/dap/messages/configuration_done_dap_message.py
  • python/mqt/debugger/dap/messages/exception_info_message.py
  • python/mqt/debugger/dap/messages/launch_dap_message.py
  • python/mqt/debugger/dap/messages/step_back_dap_message.py
  • python/mqt/debugger/check/result_checker.py
  • python/mqt/debugger/dap/messages/utils.py
  • python/mqt/debugger/dap/messages/exited_dap_event.py
  • python/mqt/debugger/dap/messages/disconnect_dap_message.py
  • python/mqt/debugger/dap/messages/dap_event.py
  • python/mqt/debugger/dap/messages/step_in_dap_message.py
  • test/python/test_compilation.py
  • python/mqt/debugger/dap/messages/__init__.py
  • sitecustomize.py
  • python/mqt/debugger/dap/messages/set_exception_breakpoints_dap_message.py
  • python/mqt/debugger/check/calibration.py
  • python/mqt/debugger/dap/messages/pause_dap_message.py
  • python/mqt/debugger/dap/messages/stack_trace_dap_message.py
  • python/mqt/debugger/_version.pyi
  • python/mqt/debugger/dap/messages/variables_dap_message.py
  • python/mqt/debugger/dap/messages/change_amplitude_dap_message.py
  • python/mqt/debugger/check/runtime_check.py
  • python/mqt/debugger/check/run_preparation.py
  • python/mqt/debugger/dap/messages/continue_dap_message.py
  • python/mqt/debugger/dap/messages/threads_dap_message.py
  • python/mqt/debugger/__init__.py
  • cmake/ExternalDependencies.cmake
  • python/mqt/debugger/dap/adapter.py
  • python/mqt/debugger/pydebugger.pyi
  • python/mqt/debugger/dap/messages/terminate_dap_message.py
  • python/mqt/debugger/dap/messages/restart_dap_message.py
  • python/mqt/debugger/dap/messages/dap_message.py
  • test/python/test_end_to_end.py
  • cmake/cmake_uninstall.cmake.in
  • test/python/test_python_bindings.py
  • python/mqt/debugger/dap/messages/output_dap_event.py
  • test/python/test_diagnosis.py
  • python/mqt/debugger/dap/messages/capabilities_dap_event.py
  • python/mqt/debugger/dap/__init__.py
  • docs/conf.py
  • python/mqt/debugger/dap/messages/step_out_dap_message.py
  • python/mqt/debugger/dap/messages/gray_out_event.py
  • python/mqt/debugger/dap/dap_server.py
  • pyproject.toml
📚 Learning: 2025-12-15T01:54:22.129Z
Learnt from: denialhaag
Repo: munich-quantum-toolkit/core PR: 1383
File: bindings/dd/register_matrix_dds.cpp:64-109
Timestamp: 2025-12-15T01:54:22.129Z
Learning: In the munich-quantum-toolkit/core repository, after migrating to nanobind, docstrings for Python bindings are now added directly in the C++ binding code (using R"pb(...)pb" syntax) and stub files (.pyi) are auto-generated using the `bindings/generate-stubs.sh` script. This replaces the previous pybind11 approach where docstrings were manually maintained in stub files.

Applied to files:

  • include/python/InterfaceBindings.hpp
📚 Learning: 2025-12-07T01:21:27.544Z
Learnt from: burgholzer
Repo: munich-quantum-toolkit/core PR: 1355
File: bindings/fomac/fomac.cpp:227-264
Timestamp: 2025-12-07T01:21:27.544Z
Learning: In the munich-quantum-toolkit/core repository, docstrings for Python bindings are added to the corresponding stub files (.pyi) rather than directly in the pybind11 C++ bindings code. This practice may change if the project adopts nanobind with automatic stub generation.

Applied to files:

  • include/python/InterfaceBindings.hpp
📚 Learning: 2025-12-13T20:08:45.549Z
Learnt from: burgholzer
Repo: munich-quantum-toolkit/qmap PR: 862
File: pyproject.toml:65-66
Timestamp: 2025-12-13T20:08:45.549Z
Learning: In the qmap project (pyproject.toml), maintain broad compatibility with dependencies across supported Python versions. Avoid artificially raising minimum version requirements unless there's a specific need (e.g., to guarantee binary wheel availability for certain Python versions, or to access required features). The goal is to keep the software as broadly compatible as possible with the rest of the ecosystem.

Applied to files:

  • pyproject.toml
📚 Learning: 2025-10-13T00:03:08.078Z
Learnt from: denialhaag
Repo: munich-quantum-toolkit/debugger PR: 160
File: pyproject.toml:252-256
Timestamp: 2025-10-13T00:03:08.078Z
Learning: In uv's `override-dependencies`, multiple entries for the same package with different environment markers (or one without a marker and one with a specific marker) can coexist. uv correctly resolves these by applying the appropriate constraint based on the active Python version. For example, `["symengine>=0.11,<0.14", "symengine>=0.14.1; python_version >= '3.14'"]` is valid and will apply the second constraint on Python 3.14+.

Applied to files:

  • pyproject.toml
📚 Learning: 2025-11-27T21:22:11.330Z
Learnt from: burgholzer
Repo: munich-quantum-toolkit/qmap PR: 846
File: pyproject.toml:213-214
Timestamp: 2025-11-27T21:22:11.330Z
Learning: In the qmap project (pyproject.toml), the maintainers intentionally enable `unsafe-fixes = true` in the ruff configuration. This is an established practice that has worked well for the project, with the expectation that PR authors review any automated fixes.

Applied to files:

  • pyproject.toml
📚 Learning: 2025-11-28T14:33:15.199Z
Learnt from: burgholzer
Repo: munich-quantum-toolkit/core PR: 1337
File: pyproject.toml:351-351
Timestamp: 2025-11-28T14:33:15.199Z
Learning: In the munich-quantum-toolkit/core repository, the dev dependency "ty==0.0.1a27" is intentionally pinned to an exact pre-release version. This dependency is used by the `ty-check` pre-commit hook (via `uv run --only-dev ty check`), and the exact pin ensures all developers run the same version, preventing unexpected issues from updates since ty is in alpha and changing rapidly.

Applied to files:

  • pyproject.toml
📚 Learning: 2025-11-04T15:22:19.558Z
Learnt from: marcelwa
Repo: munich-quantum-toolkit/core PR: 1243
File: test/python/qdmi/qiskit/conftest.py:155-157
Timestamp: 2025-11-04T15:22:19.558Z
Learning: The munich-quantum-toolkit/core repository requires Python 3.10 or later, so Python 3.10+ features (such as `zip(..., strict=...)`, pattern matching, etc.) are acceptable and should not be flagged as compatibility issues.

Applied to files:

  • pyproject.toml

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.

Signed-off-by: Daniel Haag <[email protected]>
@denialhaag denialhaag merged commit a10773c into main Jan 8, 2026
26 checks passed
@denialhaag denialhaag deleted the update-licenses branch January 8, 2026 23:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation python Anything related to python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants