Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
4507b61
experiment with dependabot + precommit
mgovers Jul 27, 2026
9d8ebce
Refresh lock and linter dependencies
power-grid-model-ci-bot[bot] Jul 27, 2026
12fedb5
Refresh lock and linter dependencies
mgovers Jul 27, 2026
bd8b537
Merge pull request #1500 from PowerGridModel/dependencies/refresh-loc…
mgovers Jul 27, 2026
c7d6eae
Merge branch 'main' into pgm/feature/dependabot-on-specific-day
mgovers Jul 27, 2026
38a2b6a
use pymarkdownlnt
mgovers Jul 28, 2026
79f85fa
lock upgrade exclude newer
mgovers Jul 29, 2026
f9178a0
exclude newer in uv config
mgovers Jul 29, 2026
c90bea1
Refresh lock and linter dependencies
power-grid-model-ci-bot[bot] Jul 29, 2026
c2da57e
uv tool exclude newer
mgovers Jul 29, 2026
63e1fa3
Merge pull request #1508 from PowerGridModel/dependencies/refresh-loc…
mgovers Jul 29, 2026
52d33ec
Merge branch 'pgm/feature/dependabot-on-specific-day' into pgm/featur…
mgovers Jul 29, 2026
60bfca1
uv sync locked and frozen in correct places
mgovers Jul 29, 2026
66fde6c
Merge branch 'pgm/feature/dependabot-on-specific-day' into pgm/featur…
mgovers Jul 29, 2026
ab62582
Refresh lock and linter dependencies
power-grid-model-ci-bot[bot] Jul 29, 2026
18f8d1d
Merge pull request #1510 from PowerGridModel/dependencies/refresh-loc…
mgovers Jul 29, 2026
758869d
Merge branch 'pgm/feature/dependabot-on-specific-day' into pgm/featur…
mgovers Jul 29, 2026
80b3af6
remove markdownlint-cli from package.json
mgovers Jul 29, 2026
85ef0c9
Refresh lock and linter dependencies
power-grid-model-ci-bot[bot] Jul 29, 2026
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
3 changes: 1 addition & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
// cache pip installs
"mounts": ["type=volume,source=dev-pip-cache,target=/root/.cache/uv"],

"postCreateCommand": "uv sync && uv run pre-commit install || true && npm ci",
"postCreateCommand": "uv sync --frozen && uv run pre-commit install || true && npm ci",

"customizations": {
"vscode": {
Expand All @@ -35,7 +35,6 @@
"ms-vscode.test-adapter-converter",
"njpwerner.autodocstring",
"cschlosser.doxdocgen",
"davidanson.vscode-markdownlint",
// version pinned (for now) since an old version (1.6.2) is installed otherwise
"biomejs.biome@3.3.0"
],
Expand Down
21 changes: 20 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,23 @@ updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
interval: "cron"
cronjob: "0 8 * * 1" # Every Monday at 8:00 UTC
groups:
all-dependencies:
patterns:
- "*"
cooldown:
default-days: 7

- package-ecosystem: "uv"
directory: "/"
schedule:
interval: "cron"
cronjob: "0 8 * * 1" # Every Monday at 8:00 UTC
groups:
all-dependencies:
patterns:
- "*"
cooldown:
default-days: 7
26 changes: 13 additions & 13 deletions .github/workflows/check-code-quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,34 +32,34 @@ jobs:

- name: Install most linters from uv
run: |
CC=gcc-14 CXX=g++-14 uv sync --group lint
CC=gcc-14 CXX=g++-14 uv sync --locked --group lint

- name: Run mypy
run: |
uv run mypy .
uv run --frozen mypy .

- name: Run ruff
run: |
uv run ruff check .
uv run ruff format .
uv run --frozen ruff check .
uv run --frozen ruff format .
git restore README.md

- name: Run clang-format
run: |
git ls-files -z -- '*.h' '*.c' '*.cpp' '*.hpp' '*.cc' '*.cxx' | xargs -0 -r uv run clang-format -style=file -i
git ls-files -z -- '*.h' '*.c' '*.cpp' '*.hpp' '*.cc' '*.cxx' | xargs -0 -r uv run --frozen clang-format -style=file -i

- name: Run cmake-linter
run: |
uv run gersemi -i --warnings-as-errors src/ tests/ cmake/
uv run --frozen gersemi -i --warnings-as-errors src/ tests/ cmake/

- name: Install npm packages
- name: Run pymarkdown
run: |
npm ci
echo "Running pymarkdown"
git ls-files -z -- '*.md' | xargs -0 -r uv run --frozen pymarkdown fix

- name: Run markdownlint
- name: Install npm packages
run: |
echo "Running markdownlint"
npx markdownlint --fix .
npm ci

- name: Run Biome
run: |
Expand All @@ -77,8 +77,8 @@ jobs:
- name: Check generated code
if: success()
run: |
uv sync --group code-generation
uv run code_generation/code_gen.py
uv sync --locked --group code-generation
uv run --frozen code_generation/code_gen.py
if [ -n "$(git status --porcelain)" ]; then
echo
echo "The following files are outdated or were manually updated:"
Expand Down
6 changes: 2 additions & 4 deletions .github/workflows/refresh-lock-and-linter-dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,11 @@ jobs:
uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0

- name: upgrade uv lock
run: uv lock --upgrade
run: uv lock --upgrade

- name: Install linters from uv
run: |
uv sync --only-group lint
uv sync --locked --only-group lint

- name: retrieve uv package versions
id: versions_uv
Expand Down Expand Up @@ -78,7 +78,6 @@ jobs:
echo "${nospecialchars_pkg}=$version" >> "$GITHUB_OUTPUT"
}
grab_installed_version_npm "@biomejs/biome"
grab_installed_version_npm "markdownlint-cli"

- name: Update .pre-commit-config.yaml
uses: cuchi/jinja2-action@8bd801365a8d36a0b20f45ee969161685de7785a # v1.3.0
Expand All @@ -91,7 +90,6 @@ jobs:
mypy=${{ steps.versions_uv.outputs.mypy }}
gersemi=${{ steps.versions_uv.outputs.gersemi }}
biome=${{ steps.versions_npm.outputs.biomejsbiome }}
markdownlint_cli=${{ steps.versions_npm.outputs.markdownlint-cli }}

- name: show changed files
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/sonar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ jobs:

- name: Python test and coverage
run: |
CC=clang CXX=clang++ uv sync --no-default-groups --group test
uv run pytest
CC=clang CXX=clang++ uv sync --locked --no-default-groups --group test
uv run --frozen pytest

- name: Run build-wrapper for C++
run: |
Expand Down
16 changes: 0 additions & 16 deletions .markdownlint.yaml

This file was deleted.

14 changes: 0 additions & 14 deletions .markdownlintignore

This file was deleted.

84 changes: 50 additions & 34 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,54 +3,70 @@
# SPDX-License-Identifier: MPL-2.0

repos:
- repo: https://github.com/fsfe/reuse-tool # outside pypi
rev: v6.2.0
- repo: local
hooks:
- id: reuse
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.15.22
hooks:
# Run the linter.
- id: ruff-check
name: ruff-check
args: [ --fix ]
# Run the formatter.
name: reuse
entry: uv run --frozen reuse lint
language: system
pass_filenames: false
- id: pytest
name: pytest
entry: uv run --frozen pytest
language: system
pass_filenames: false
types_or: [ python, c++, c ]
- id: ruff-format
name: ruff-format
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v2.3.0
hooks:
entry: uv run --frozen ruff format
language: system
pass_filenames: false
types: [ python ]
- id: ruff-check
name: ruff-check
entry: uv run --frozen ruff check
language: system
pass_filenames: false
types: [ python ]
- id: mypy
additional_dependencies:
- numpy
- repo: local
hooks:
- id: pytest
name: pytest
entry: uv run pytest
name: mypy
entry: uv run --frozen mypy .
language: system
pass_filenames: false
always_run: true
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v18.1.8
hooks:
types: [ python ]
- id: clang-format
name: clang-format
entry: uv run --frozen clang-format -style=file -i
language: system
pass_filenames: true
types_or: [ c++, c ]
- repo: https://github.com/BlankSpruce/gersemi-pre-commit
rev: 0.27.7
hooks:
- id: gersemi
name: cmake-linter
alias: cmake-linter
- repo: https://github.com/igorshubovych/markdownlint-cli # outside pypi
rev: v0.49.1
hooks:
- id: markdownlint
args: ["--fix"]
entry: uv run --frozen gersemi -i --warnings-as-errors
language: system
pass_filenames: true
types: [ cmake ]
- id: pymarkdown-fix
name: pymarkdown-fix
alias: markdown-fix
entry: uv run --frozen pymarkdown fix
language: system
pass_filenames: true
types: [ markdown ]
require_serial: true
- id: pymarkdown-scan
name: pymarkdown-scan
alias: markdown-check
entry: uv run --frozen pymarkdown scan
language: system
pass_filenames: true
types: [ markdown ]
require_serial: true
# format .json and .jsonc files
# format .json and .jsonc files
- repo: https://github.com/biomejs/pre-commit # outside pypi
rev: v2.5.4
rev: v2.5.6
hooks:
# configuration is located in biome.jsonc
- id: biome-format
Expand Down
82 changes: 49 additions & 33 deletions .pre-commit-config.yaml.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -3,51 +3,67 @@
# SPDX-License-Identifier: MPL-2.0

repos:
- repo: https://github.com/fsfe/reuse-tool # outside pypi
rev: v6.2.0
- repo: local
hooks:
- id: reuse
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v{{ ruff }}
hooks:
# Run the linter.
- id: ruff-check
name: ruff-check
args: [ --fix ]
# Run the formatter.
name: reuse
entry: uv run --frozen reuse lint
language: system
pass_filenames: false
- id: pytest
name: pytest
entry: uv run --frozen pytest
language: system
pass_filenames: false
types_or: [ python, c++, c ]
- id: ruff-format
name: ruff-format
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v{{ mypy }}
hooks:
entry: uv run --frozen ruff format
language: system
pass_filenames: false
types: [ python ]
- id: ruff-check
name: ruff-check
entry: uv run --frozen ruff check
language: system
pass_filenames: false
types: [ python ]
- id: mypy
additional_dependencies:
- numpy
- repo: local
hooks:
- id: pytest
name: pytest
entry: uv run pytest
name: mypy
entry: uv run --frozen mypy .
language: system
pass_filenames: false
always_run: true
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v{{ clang_format }}
hooks:
types: [ python ]
- id: clang-format
name: clang-format
entry: uv run --frozen clang-format -style=file -i
language: system
pass_filenames: true
types_or: [ c++, c ]
- repo: https://github.com/BlankSpruce/gersemi-pre-commit
rev: {{ gersemi }}
hooks:
- id: gersemi
name: cmake-linter
alias: cmake-linter
- repo: https://github.com/igorshubovych/markdownlint-cli # outside pypi
rev: v{{ markdownlint_cli }}
hooks:
- id: markdownlint
args: ["--fix"]
entry: uv run --frozen gersemi -i --warnings-as-errors
language: system
pass_filenames: true
types: [ cmake ]
- id: pymarkdown-fix
name: pymarkdown-fix
alias: markdown-fix
entry: uv run --frozen pymarkdown fix
language: system
pass_filenames: true
types: [ markdown ]
require_serial: true
- id: pymarkdown-scan
name: pymarkdown-scan
alias: markdown-check
entry: uv run --frozen pymarkdown scan
language: system
pass_filenames: true
types: [ markdown ]
require_serial: true
# format .json and .jsonc files
# format .json and .jsonc files
- repo: https://github.com/biomejs/pre-commit # outside pypi
rev: v{{ biome }}
Expand Down
2 changes: 1 addition & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ build:
create_environment:
- uv venv "${READTHEDOCS_VIRTUALENV_PATH}"
install:
- CC=gcc-14 CXX=g++-14 UV_PROJECT_ENVIRONMENT="${READTHEDOCS_VIRTUALENV_PATH}" uv sync --frozen --group doc
- CC=gcc-14 CXX=g++-14 UV_PROJECT_ENVIRONMENT="${READTHEDOCS_VIRTUALENV_PATH}" uv sync --locked --group doc
post_install:
# remove API DLL define in header
- find power_grid_model_c/power_grid_model_c/include -name *.h -exec sed -i -r "s/#define PGM.*//g" {} \;
Expand Down
Loading
Loading