Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ jobs:
[
ubuntu-24.04,
ubuntu-24.04-arm,
macos-15,
macos-15-intel,
macos-14,
windows-2022,
windows-2025,
windows-11-arm,
]
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@d6314c45667c131055a0389afc110e8dedc6da3f # v1.17.11
Expand All @@ -39,7 +39,7 @@ jobs:
deploy:
if: github.event_name == 'release' && github.event.action == 'published'
name: 🚀 Deploy to PyPI
runs-on: ubuntu-latest
runs-on: ubuntu-slim
environment:
name: pypi
url: https://pypi.org/p/mqt.ddsim
Expand Down
25 changes: 16 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,11 @@ jobs:
strategy:
fail-fast: false
matrix:
runs-on: [macos-15-intel, macos-14]
runs-on: [macos-15, macos-15-intel]
compiler: [clang]
config: [Release]
include:
- runs-on: macos-14
- runs-on: macos-15
compiler: clang
config: Debug
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-macos.yml@d6314c45667c131055a0389afc110e8dedc6da3f # v1.17.11
Expand All @@ -63,11 +63,11 @@ jobs:
strategy:
fail-fast: false
matrix:
runs-on: [windows-2022, windows-11-arm]
runs-on: [windows-2025, windows-11-arm]
compiler: [msvc]
config: [Release]
include:
- runs-on: windows-2022
- runs-on: windows-2025
compiler: msvc
config: Debug
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-windows.yml@d6314c45667c131055a0389afc110e8dedc6da3f # v1.17.11
Expand Down Expand Up @@ -161,7 +161,14 @@ jobs:
strategy:
fail-fast: false
matrix:
runs-on: [ubuntu-24.04, ubuntu-24.04-arm, macos-15-intel, windows-2022]
runs-on:
[
ubuntu-24.04,
ubuntu-24.04-arm,
macos-15,
macos-15-intel,
windows-2025,
]
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@d6314c45667c131055a0389afc110e8dedc6da3f # v1.17.11
with:
runs-on: ${{ matrix.runs-on }}
Expand All @@ -183,7 +190,7 @@ jobs:
strategy:
fail-fast: false
matrix:
runs-on: [macos-15, windows-2025]
runs-on: [macos-14, windows-2024]
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@d6314c45667c131055a0389afc110e8dedc6da3f # v1.17.11
with:
runs-on: ${{ matrix.runs-on }}
Expand Down Expand Up @@ -215,9 +222,9 @@ jobs:
[
ubuntu-24.04,
ubuntu-24.04-arm,
macos-15,
macos-15-intel,
macos-14,
windows-2022,
windows-2025,
windows-11-arm,
]
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@d6314c45667c131055a0389afc110e8dedc6da3f # v1.17.11
Expand All @@ -243,7 +250,7 @@ jobs:
- python-tests-extensive
- build-sdist
- build-wheel
runs-on: ubuntu-latest
runs-on: ubuntu-slim
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # v1.2.2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-drafter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
permissions:
contents: write
pull-requests: write
runs-on: ubuntu-latest
runs-on: ubuntu-slim
steps:
- uses: release-drafter/release-drafter@6db134d15f3909ccc9eefd369f02bd1e9cffdf97 # v6.2.0
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/templating.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
jobs:
render-template:
name: Render template
runs-on: ubuntu-latest
runs-on: ubuntu-slim
permissions:
contents: write
pull-requests: write
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/upstream.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
strategy:
fail-fast: false
matrix:
runs-on: [ubuntu-24.04, macos-14, windows-2022]
runs-on: [ubuntu-24.04, macos-15, windows-2025]
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-qiskit-upstream-tests.yml@d6314c45667c131055a0389afc110e8dedc6da3f # v1.17.11
with:
runs-on: ${{ matrix.runs-on }}
Expand Down
213 changes: 102 additions & 111 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,113 +1,157 @@
# To run all pre-commit checks, use:
#
# pre-commit run -a
# uvx prek run -a
#
# To install pre-commit hooks that run every time you commit:
#
# pre-commit install
# uv tool install prek
# prek install
#

ci:
autoupdate_commit_msg: "⬆️🪝 update pre-commit hooks"
autofix_commit_msg: "🎨 pre-commit fixes"
autoupdate_schedule: quarterly
autofix_commit_msg: "🎨 pre-commit fixes"
skip: [ty-check]

repos:
# Standard hooks
# Priority 0: Fast validation and independent fixers

## Standard hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: check-added-large-files
args: ["--maxkb=2048"]
- id: check-case-conflict
- id: check-vcs-permalinks
- id: check-merge-conflict
- id: check-symlinks
- id: check-json
- id: check-toml
- id: check-yaml
- id: debug-statements
priority: 0
- id: end-of-file-fixer
- id: mixed-line-ending
priority: 1
- id: trailing-whitespace
priority: 1

# Clean jupyter notebooks
- repo: https://github.com/srstevenson/nb-clean
rev: 4.0.1
## Check the pyproject.toml file
- repo: https://github.com/henryiii/validate-pyproject-schema-store
rev: 2026.01.22
hooks:
- id: nb-clean
args:
- --remove-empty-cells
- --preserve-cell-metadata
- raw_mimetype
- --

# Handling unwanted unicode characters
- repo: https://github.com/sirosen/texthooks
rev: 0.7.1
- id: validate-pyproject
priority: 0

## Check JSON schemata
- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.36.0
hooks:
- id: check-github-workflows
priority: 0
- id: check-readthedocs
priority: 0

## Catch common capitalization mistakes
- repo: local
hooks:
- id: fix-ligatures
- id: fix-smartquotes
- id: disallow-caps
name: Disallow improper capitalization
language: pygrep
entry: Nanobind|Numpy|Cmake|CCache|Github|PyTest|Mqt|Tum|MQTopt|MQTref
exclude: .pre-commit-config.yaml
priority: 0

# Check for common mistakes
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.10.0
## Check for spelling
- repo: https://github.com/adhtruong/mirrors-typos
rev: v1.42.1
hooks:
- id: rst-backticks
- id: rst-directive-colons
- id: rst-inline-touching-normal
- id: typos
priority: 0

# Check for license headers
## Check best practices for scientific Python code
- repo: https://github.com/scientific-python/cookie
rev: 2025.11.21
hooks:
- id: sp-repo-review
additional_dependencies: ["repo-review[cli]"]
priority: 0

## Check for license headers
- repo: https://github.com/emzeat/mz-lictools
rev: v2.9.0
hooks:
- id: license-tools
priority: 0

# Ensure uv lock file is up-to-date
## Ensure uv lock file is up-to-date
- repo: https://github.com/astral-sh/uv-pre-commit
rev: 0.9.26
hooks:
- id: uv-lock
priority: 0

# Python linting using ruff
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.14
## Tidy up BibTeX files
- repo: https://github.com/FlamingTempura/bibtex-tidy
rev: v1.14.0
hooks:
- id: ruff-check
- id: ruff-format
- id: bibtex-tidy
args:
[
"--align=20",
"--curly",
"--months",
"--blank-lines",
"--sort",
"--strip-enclosing-braces",
"--sort-fields",
"--trailing-commas",
"--remove-empty-fields",
]
priority: 0

# Also run Black on examples in the documentation
- repo: https://github.com/adamchainz/blacken-docs
rev: 1.20.0
# Priority 1: Second-pass fixers

## Clang-format the C++ part of the code base automatically
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v21.1.8
hooks:
- id: blacken-docs
additional_dependencies: [black==25.*]
- id: clang-format
types_or: [c++, c, cuda]
priority: 1

# CMake format and lint the CMakeLists.txt files
## CMake format and lint the CMakeLists.txt files
- repo: https://github.com/cheshirekow/cmake-format-precommit
rev: v0.6.13
hooks:
- id: cmake-format
additional_dependencies: [pyyaml]
types: [file]
files: (\.cmake|CMakeLists.txt)(.in)?$
priority: 1

# Clang-format the C++ part of the code base automatically
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v21.1.8
hooks:
- id: clang-format
types_or: [c++, c, cuda]

# Format configuration files with prettier
## Format configuration files with prettier
- repo: https://github.com/rbubley/mirrors-prettier
rev: v3.8.1
hooks:
- id: prettier
types_or: [yaml, markdown, html, css, scss, javascript, json]
priority: 1

## Python linting using ruff
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.14
hooks:
- id: ruff-format
priority: 1
- id: ruff-check
require_serial: true
priority: 2

## Static type checking using ty
# Priority 2+: Final checks and fixers

## Also run Black on examples in the documentation (needs to run after ruff format)
- repo: https://github.com/adamchainz/blacken-docs
rev: 1.20.0
hooks:
- id: blacken-docs
language: python
additional_dependencies: [black==26.*]
priority: 2

## Static type checking using ty (needs to run after lockfile update/ruff format, and ruff lint)
- repo: local
hooks:
- id: ty-check
Expand All @@ -117,57 +161,4 @@ repos:
require_serial: true
types_or: [python, pyi, jupyter]
exclude: ^(docs/)

# Check for spelling
- repo: https://github.com/adhtruong/mirrors-typos
rev: v1.42.1
hooks:
- id: typos

# Catch common capitalization mistakes
- repo: local
hooks:
- id: disallow-caps
name: Disallow improper capitalization
language: pygrep
entry: Nanobind|Numpy|Cmake|CCache|Github|PyTest|Mqt|Tum
exclude: .pre-commit-config.yaml

# Check best practices for scientific Python code
- repo: https://github.com/scientific-python/cookie
rev: 2025.11.21
hooks:
- id: sp-repo-review
additional_dependencies: ["repo-review[cli]"]

# Check JSON schemata
- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.36.0
hooks:
- id: check-dependabot
- id: check-github-workflows
- id: check-readthedocs

# Check the pyproject.toml file
- repo: https://github.com/henryiii/validate-pyproject-schema-store
rev: 2026.01.22
hooks:
- id: validate-pyproject

# Tidy up BibTeX files
- repo: https://github.com/FlamingTempura/bibtex-tidy
rev: v1.14.0
hooks:
- id: bibtex-tidy
args:
[
"--align=20",
"--curly",
"--months",
"--blank-lines",
"--sort",
"--strip-enclosing-braces",
"--sort-fields",
"--trailing-commas",
"--remove-empty-fields",
]
priority: 3
Loading
Loading