From ed8a5769a6a8ccd3661b8107bec770da93232579 Mon Sep 17 00:00:00 2001 From: "mqt-app[bot]" <219534693+mqt-app[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2026 11:52:53 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=93=9D=20Update=20templated=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contributing.md | 35 ++++++++++++++++++++--------------- docs/installation.md | 13 +++++++------ docs/tooling.md | 3 ++- 3 files changed, 29 insertions(+), 22 deletions(-) diff --git a/docs/contributing.md b/docs/contributing.md index 53f0403d59..2d99a4c536 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -6,8 +6,9 @@ Thank you for your interest in contributing to MQT Core! This document outlines the development guidelines and how to contribute. -We use GitHub to [host code](https://github.com/munich-quantum-toolkit/core), -to [track issues and feature requests][issues], as well as accept +We use GitHub to +[host code](https://github.com/munich-quantum-toolkit/core), to +[track issues and feature requests][issues], as well as accept [pull requests](https://github.com/munich-quantum-toolkit/core/pulls). See for a general introduction to working with GitHub and contributing to projects. @@ -331,11 +332,13 @@ ctest --preset release :::{tip} If you want to disable configuring and building the C++ tests, -you can pass {code}`-DBUILD_MQT_CORE_TESTS=OFF` to the CMake configure step. +you can pass {code}`-DBUILD_MQT_CORE_TESTS=OFF` to the CMake +configure step. ::: Our CI pipeline on GitHub also collects code coverage information -and uploads it to [Codecov](https://codecov.io/gh/munich-quantum-toolkit/core). +and uploads it to +[Codecov](https://codecov.io/gh/munich-quantum-toolkit/core). Our goal is to have new contributions at least maintain the current code coverage level, while striving for covering as much of the code as possible. Try to write meaningful tests that actually test the correctness of the code @@ -446,7 +449,8 @@ directory. :::{tip} To build only the Python bindings, -pass {code}`-DBUILD_MQT_CORE_BINDINGS=ON` to the CMake configure step. +pass {code}`-DBUILD_MQT_CORE_BINDINGS=ON` to the CMake configure +step. CMake will then try to find Python and the necessary dependencies ({code}`nanobind`) on your system and configure the respective targets. @@ -460,12 +464,13 @@ configure step to point CMake to a specific Python installation. ::: -The Python package itself lives in the {code}`python/mqt/core` directory. +The Python package itself lives in the {code}`python/mqt/core` +directory. The package lives in the {code}`src/mqt/core` directory. -We recommend using [{code}`nox`][nox] for development. -{code}`nox` is a Python automation tool +We recommend using [{code}`nox`][nox] +for development. {code}`nox` is a Python automation tool that allows you to define tasks in a {code}`noxfile.py` file and then run them with a single command. If you have not installed it yet, @@ -572,15 +577,15 @@ prek run --all-files The Python code is documented using [Google-style docstrings](https://google.github.io/styleguide/pyguide.html#s3.8-comments-and-docstrings). Every public function, class, -and module should have a docstring that explains what it does and how to use it. -{code}`ruff` will check for missing docstrings and will explicitly warn you -if you forget to add one. +and module should have a docstring that explains what it does +and how to use it. {code}`ruff` will check for missing docstrings +and will explicitly warn you if you forget to add one. We heavily rely on [type hints](https://docs.python.org/3/library/typing.html) to document the expected types of function arguments and return values. For the compiled parts of the code base, -we provide type hints in the form of stub files in the {code}`python/mqt/core` -directory. +we provide type hints in the form of stub files in the +{code}`python/mqt/core` directory. These stub files are auto-generated. Do not edit them directly. Instead, you can use the {code}`nox` session {code}`stubs` to regenerate them @@ -767,8 +772,8 @@ minor or major release. This does not mean that the dependency update itself is a breaking change for MQT Core. If you are sure that the dependency update does not introduce any breaking -changes for MQT Core, you can remove the {code}`minor` or {code}`major` label -from the PR. +changes for MQT Core, you can remove the {code}`minor` or {code}`major` +label from the PR. This will ensure that the respective PR does not influence the type of an upcoming release. diff --git a/docs/installation.md b/docs/installation.md index 581bd059ba..2c658e5d4d 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -4,8 +4,9 @@ # Installation MQT Core is primarily developed as a C++20 library with Python bindings. -The Python package is available on [PyPI](https://pypi.org/project/mqt.core/) -and can be installed on all major operating systems with all +The Python package is available on +[PyPI](https://pypi.org/project/mqt.core/) and can be installed on all +major operating systems with all [officially supported Python versions](https://devguide.python.org/versions/). :::::{tip} @@ -67,7 +68,6 @@ python -m pip install mqt.core ::: :::: - In most cases, no compilation is required; a platform-specific prebuilt wheel is downloaded and installed. @@ -388,7 +388,8 @@ For detailed guidelines and workflows, see {doc}`contributing`. prek install ``` -6. If you plan to contribute to MQT Core, you will also need to install MLIR. +6. If you plan to contribute to MQT Core, + you will also need to install MLIR. The section below describes how to do this. (setting-up-mlir)= @@ -517,8 +518,8 @@ $env:MLIR_DIR = "C:\path\to\installation\lib\cmake\mlir" ### Disabling MLIR If you do not need MLIR-based functionality, -you can disable it by setting the {code}`BUILD_MQT_CORE_MLIR` option to -{code}`OFF`. +you can disable it by setting the {code}`BUILD_MQT_CORE_MLIR` option +to {code}`OFF`. This disables all MLIR-related features in MQT Core and removes the dependency on MLIR. diff --git a/docs/tooling.md b/docs/tooling.md index 4fff9978a1..fd1a9a33ef 100644 --- a/docs/tooling.md +++ b/docs/tooling.md @@ -3,7 +3,8 @@ # Tooling -This page summarizes the main tools, software, and standards used in MQT Core. +This page summarizes the main tools, software, +and standards used in MQT Core. It serves as a quick reference for new contributors and users who want to understand the project's ecosystem. From 14a0adf0c655e0075b7923be6c96e94f289668d5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2026 11:53:26 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=8E=A8=20pre-commit=20fixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contributing.md | 35 +++++++++++++++-------------------- docs/installation.md | 13 ++++++------- docs/tooling.md | 3 +-- 3 files changed, 22 insertions(+), 29 deletions(-) diff --git a/docs/contributing.md b/docs/contributing.md index 2d99a4c536..53f0403d59 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -6,9 +6,8 @@ Thank you for your interest in contributing to MQT Core! This document outlines the development guidelines and how to contribute. -We use GitHub to -[host code](https://github.com/munich-quantum-toolkit/core), to -[track issues and feature requests][issues], as well as accept +We use GitHub to [host code](https://github.com/munich-quantum-toolkit/core), +to [track issues and feature requests][issues], as well as accept [pull requests](https://github.com/munich-quantum-toolkit/core/pulls). See for a general introduction to working with GitHub and contributing to projects. @@ -332,13 +331,11 @@ ctest --preset release :::{tip} If you want to disable configuring and building the C++ tests, -you can pass {code}`-DBUILD_MQT_CORE_TESTS=OFF` to the CMake -configure step. +you can pass {code}`-DBUILD_MQT_CORE_TESTS=OFF` to the CMake configure step. ::: Our CI pipeline on GitHub also collects code coverage information -and uploads it to -[Codecov](https://codecov.io/gh/munich-quantum-toolkit/core). +and uploads it to [Codecov](https://codecov.io/gh/munich-quantum-toolkit/core). Our goal is to have new contributions at least maintain the current code coverage level, while striving for covering as much of the code as possible. Try to write meaningful tests that actually test the correctness of the code @@ -449,8 +446,7 @@ directory. :::{tip} To build only the Python bindings, -pass {code}`-DBUILD_MQT_CORE_BINDINGS=ON` to the CMake configure -step. +pass {code}`-DBUILD_MQT_CORE_BINDINGS=ON` to the CMake configure step. CMake will then try to find Python and the necessary dependencies ({code}`nanobind`) on your system and configure the respective targets. @@ -464,13 +460,12 @@ configure step to point CMake to a specific Python installation. ::: -The Python package itself lives in the {code}`python/mqt/core` -directory. +The Python package itself lives in the {code}`python/mqt/core` directory. The package lives in the {code}`src/mqt/core` directory. -We recommend using [{code}`nox`][nox] -for development. {code}`nox` is a Python automation tool +We recommend using [{code}`nox`][nox] for development. +{code}`nox` is a Python automation tool that allows you to define tasks in a {code}`noxfile.py` file and then run them with a single command. If you have not installed it yet, @@ -577,15 +572,15 @@ prek run --all-files The Python code is documented using [Google-style docstrings](https://google.github.io/styleguide/pyguide.html#s3.8-comments-and-docstrings). Every public function, class, -and module should have a docstring that explains what it does -and how to use it. {code}`ruff` will check for missing docstrings -and will explicitly warn you if you forget to add one. +and module should have a docstring that explains what it does and how to use it. +{code}`ruff` will check for missing docstrings and will explicitly warn you +if you forget to add one. We heavily rely on [type hints](https://docs.python.org/3/library/typing.html) to document the expected types of function arguments and return values. For the compiled parts of the code base, -we provide type hints in the form of stub files in the -{code}`python/mqt/core` directory. +we provide type hints in the form of stub files in the {code}`python/mqt/core` +directory. These stub files are auto-generated. Do not edit them directly. Instead, you can use the {code}`nox` session {code}`stubs` to regenerate them @@ -772,8 +767,8 @@ minor or major release. This does not mean that the dependency update itself is a breaking change for MQT Core. If you are sure that the dependency update does not introduce any breaking -changes for MQT Core, you can remove the {code}`minor` or {code}`major` -label from the PR. +changes for MQT Core, you can remove the {code}`minor` or {code}`major` label +from the PR. This will ensure that the respective PR does not influence the type of an upcoming release. diff --git a/docs/installation.md b/docs/installation.md index 2c658e5d4d..581bd059ba 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -4,9 +4,8 @@ # Installation MQT Core is primarily developed as a C++20 library with Python bindings. -The Python package is available on -[PyPI](https://pypi.org/project/mqt.core/) and can be installed on all -major operating systems with all +The Python package is available on [PyPI](https://pypi.org/project/mqt.core/) +and can be installed on all major operating systems with all [officially supported Python versions](https://devguide.python.org/versions/). :::::{tip} @@ -68,6 +67,7 @@ python -m pip install mqt.core ::: :::: + In most cases, no compilation is required; a platform-specific prebuilt wheel is downloaded and installed. @@ -388,8 +388,7 @@ For detailed guidelines and workflows, see {doc}`contributing`. prek install ``` -6. If you plan to contribute to MQT Core, - you will also need to install MLIR. +6. If you plan to contribute to MQT Core, you will also need to install MLIR. The section below describes how to do this. (setting-up-mlir)= @@ -518,8 +517,8 @@ $env:MLIR_DIR = "C:\path\to\installation\lib\cmake\mlir" ### Disabling MLIR If you do not need MLIR-based functionality, -you can disable it by setting the {code}`BUILD_MQT_CORE_MLIR` option -to {code}`OFF`. +you can disable it by setting the {code}`BUILD_MQT_CORE_MLIR` option to +{code}`OFF`. This disables all MLIR-related features in MQT Core and removes the dependency on MLIR. diff --git a/docs/tooling.md b/docs/tooling.md index fd1a9a33ef..4fff9978a1 100644 --- a/docs/tooling.md +++ b/docs/tooling.md @@ -3,8 +3,7 @@ # Tooling -This page summarizes the main tools, software, -and standards used in MQT Core. +This page summarizes the main tools, software, and standards used in MQT Core. It serves as a quick reference for new contributors and users who want to understand the project's ecosystem.