Skip to content

Commit da294e4

Browse files
committed
Import configuration enhancements from python-project-template
Signed-off-by: Gaëtan Lehmann <[email protected]>
1 parent feec8ba commit da294e4

File tree

10 files changed

+130
-53
lines changed

10 files changed

+130
-53
lines changed

.github/workflows/code-checkers.yml

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,17 @@ name: Static code checkers
22

33
on: [push]
44

5+
permissions: {}
6+
57
jobs:
68
mypy:
79
runs-on: ubuntu-latest
810
steps:
911
- uses: actions/checkout@v2
12+
with:
13+
persist-credentials: false
1014
- name: Install uv
11-
uses: astral-sh/setup-uv@v6
15+
uses: astral-sh/setup-uv@bd01e18f51369d5a26f1651c3cb451d3417e3bba # v6.3.1
1216
with:
1317
version: "0.7.x"
1418
- name: Install dependencies
@@ -22,8 +26,10 @@ jobs:
2226
runs-on: ubuntu-latest
2327
steps:
2428
- uses: actions/checkout@v2
29+
with:
30+
persist-credentials: false
2531
- name: Install uv
26-
uses: astral-sh/setup-uv@v6
32+
uses: astral-sh/setup-uv@bd01e18f51369d5a26f1651c3cb451d3417e3bba # v6.3.1
2733
with:
2834
version: "0.7.x"
2935
- name: Install dependencies
@@ -35,15 +41,38 @@ jobs:
3541

3642
ruff:
3743
runs-on: ubuntu-latest
44+
permissions:
45+
security-events: write # needed for SARIF uploads
3846
steps:
3947
- uses: actions/checkout@v2
48+
with:
49+
persist-credentials: false
4050
- name: Install uv
41-
uses: astral-sh/setup-uv@v6
51+
uses: astral-sh/setup-uv@bd01e18f51369d5a26f1651c3cb451d3417e3bba # v6.3.1
4252
with:
4353
version: "0.7.x"
4454
- name: Install dependencies
4555
run: uv sync --frozen
4656
- name: Create a dummy data.py
4757
run: cp data.py-dist data.py
4858
- name: Check with ruff
49-
run: uv run ruff check lib/ tests/
59+
run: uv run ruff check lib/ tests/ --output-format sarif > results.sarif
60+
- uses: github/codeql-action/upload-sarif@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
61+
with:
62+
sarif_file: results.sarif
63+
category: ruff
64+
65+
flake8:
66+
runs-on: ubuntu-latest
67+
steps:
68+
- uses: actions/checkout@v2
69+
with:
70+
persist-credentials: false
71+
- name: Install uv
72+
uses: astral-sh/setup-uv@bd01e18f51369d5a26f1651c3cb451d3417e3bba # v6.3.1
73+
with:
74+
version: "0.7.x"
75+
- name: Install dependencies
76+
run: uv sync --frozen
77+
- name: flake8
78+
run: uv run flake8

.github/workflows/format.yml

Lines changed: 0 additions & 30 deletions
This file was deleted.

.github/workflows/jobs-check.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,22 @@ name: Check jobs consistency
22

33
on: [push]
44

5+
permissions: {}
6+
57
jobs:
68
jobs-check:
79
runs-on: ubuntu-latest
810
steps:
911
- uses: actions/checkout@v2
12+
with:
13+
persist-credentials: false
1014
- name: Install uv
11-
uses: astral-sh/setup-uv@v6
15+
uses: astral-sh/setup-uv@bd01e18f51369d5a26f1651c3cb451d3417e3bba # v6.3.1
1216
with:
1317
version: "0.7.x"
1418
- name: Install dependencies
15-
run: uv sync --frozen
19+
run: uv sync --frozen --no-dev
1620
- name: Create a dummy data.py
1721
run: cp data.py-dist data.py
1822
- name: jobs-check
19-
run: uv run ./jobs.py check
23+
run: uv run --no-dev ./jobs.py check

.github/workflows/requirements-check.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,20 @@ name: Check requirements file consistency
22

33
on: [push]
44

5+
permissions: {}
6+
57
jobs:
68
requirements-check:
79
runs-on: ubuntu-latest
810
steps:
911
- uses: actions/checkout@v2
12+
with:
13+
persist-credentials: false
1014
- name: Install uv
11-
uses: astral-sh/setup-uv@v6
15+
uses: astral-sh/setup-uv@bd01e18f51369d5a26f1651c3cb451d3417e3bba # v6.3.1
1216
with:
1317
version: "0.7.x"
1418
- name: Install dependencies
15-
run: uv sync --frozen
16-
- run: uv run ./requirements/update_requirements.py
19+
run: uv sync --frozen --no-dev
20+
- run: uv run --no-dev ./requirements/update_requirements.py
1721
- run: git diff --exit-code

.github/workflows/test-sequences.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,28 @@ name: Check test-sequences consistency
22

33
on: [push]
44

5+
permissions: {}
6+
57
jobs:
68
jobs-check:
79
runs-on: ubuntu-latest
810
steps:
911
- uses: actions/checkout@v2
12+
with:
13+
persist-credentials: false
1014
- name: Install uv
11-
uses: astral-sh/setup-uv@v6
15+
uses: astral-sh/setup-uv@bd01e18f51369d5a26f1651c3cb451d3417e3bba # v6.3.1
1216
with:
1317
version: "0.7.x"
1418
- name: Install dependencies
15-
run: uv sync --frozen
19+
run: uv sync --frozen --no-dev
1620
- name: Create a dummy data.py
1721
run: cp data.py-dist data.py
1822
- name: jobs-check
1923
run: |
2024
FAILURES=""
2125
for seq in $(find -name "*.lst"); do
22-
if ! uv run pytest @$seq --collect-only --quiet; then
26+
if ! uv run --no-dev pytest @$seq --collect-only --quiet; then
2327
FAILURES="$FAILURES $seq"
2428
fi
2529
done

.github/workflows/zizmor.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: GitHub Actions Security Analysis with zizmor 🌈
2+
3+
on: [push]
4+
5+
permissions: {}
6+
7+
jobs:
8+
zizmor:
9+
name: zizmor latest
10+
runs-on: ubuntu-latest
11+
permissions:
12+
security-events: write # needed for SARIF uploads
13+
steps:
14+
- uses: actions/checkout@v4
15+
with:
16+
persist-credentials: false
17+
- uses: astral-sh/setup-uv@bd01e18f51369d5a26f1651c3cb451d3417e3bba # v6.3.1
18+
- run: uvx zizmor --format=sarif . > results.sarif
19+
env:
20+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
21+
- uses: github/codeql-action/upload-sarif@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
22+
with:
23+
sarif_file: results.sarif
24+
category: zizmor

pyproject.toml

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name = "xcp-ng-tests"
33
version = "0.1.0"
44
description = "Testing scripts for XCP-ng"
55
readme = "README.md"
6-
requires-python = "~=3.11"
6+
requires-python = ">=3.11"
77
dependencies = [
88
"cryptography>=3.3.1",
99
"gitpython",
@@ -21,6 +21,7 @@ dev = [
2121
"bs4>=0.0.1",
2222
"mypy",
2323
"flake8",
24+
"flake8-pyproject",
2425
"pydocstyle",
2526
"pyright",
2627
"pyyaml>=6.0",
@@ -42,17 +43,38 @@ quote-style = "preserve"
4243

4344
[tool.ruff.lint]
4445
select = [
46+
"D", # pydocstyle
4547
"F", # Pyflakes
4648
"I", # isort
4749
"SLF", # flake8-self
4850
"SIM", # flake8-simplify
4951
]
50-
# don't use some of the SIM rules
52+
# don't use some of the default D and SIM rules
5153
ignore = [
54+
"D100", # undocumented-public-module
55+
"D101", # undocumented-public-class
56+
"D102", # undocumented-public-method
57+
"D103", # undocumented-public-function
58+
"D104", # undocumented-public-package
59+
"D105", # undocumented-magic-method
60+
"D106", # undocumented-public-nested-class
61+
"D107", # undocumented-public-init
62+
"D200", # unnecessary-multiline-docstring
63+
"D203", # incorrect-blank-line-before-class
64+
"D204", # incorrect-blank-line-after-class
65+
"D205", # missing-blank-line-after-summary
66+
"D210", # surrounding-whitespace
67+
"D212", # incorrect-blank-line-before-class
68+
"D400", # missing-trailing-period
69+
"D401", # non-imperative-mood
70+
"D403", # first-word-uncapitalized
5271
"SIM105", # suppressible-exception
5372
"SIM108", # if-else-block-instead-of-if-exp
5473
]
5574

75+
# restrict to the PEP 257 rules
76+
pydocstyle.convention = "pep257"
77+
5678
[tool.ruff.lint.extend-per-file-ignores]
5779
# pytest requires some import and function arguments to match, but
5880
# the linter doesn't know that
@@ -76,3 +98,16 @@ section-order = [
7698
"local-folder",
7799
"typing",
78100
]
101+
102+
# ruff doesn't provide all the pycodestyle rules, and pycodestyle is not well
103+
# supported by some IDEs, so we use flake8 for that
104+
[tool.flake8]
105+
max-line-length = 120
106+
ignore = [
107+
"E261", # At least two spaces before inline comment
108+
"E302", # Expected 2 blank lines, found 0
109+
"E305", # Expected 2 blank lines after end of function or class
110+
"W503", # Line break occurred before a binary operator
111+
"F", # already done by ruff
112+
]
113+
exclude=[".git", ".venv", "data.py", "vm_data.py"]

requirements/dev.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ ansible>=5.0.1
33
bs4>=0.0.1
44
mypy
55
flake8
6+
flake8-pyproject
67
pydocstyle
78
pyright
89
pyyaml>=6.0

setup.cfg

Lines changed: 0 additions & 7 deletions
This file was deleted.

uv.lock

Lines changed: 14 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)