Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ just precommit # run every hook (commit-stage + pre-push basedpyright) over the

This is a **local-only** gate: there is no pre-commit CI job, matching the template (whose downstream CI also never runs pre-commit). The ruff and basedpyright *substance* is enforced by the existing `lint` and `typecheck` CI jobs; the hygiene hooks (eof / trailing-whitespace / check-merge-conflict / forbid-rej) have **no** CI backstop and are a local convenience here. A bare `uv run pre-commit run --all-files` runs commit-stage hooks only — basedpyright fires on push or via `just typecheck`; `just precommit` runs both.

Deliberate divergences from the template's `.pre-commit-config.yaml` (`template/{% if not in_existing_repo %}.pre-commit-config.yaml{% endif %}.jinja`): ruff runs via local `uv run ruff` hooks (locked 0.15.19) instead of the `astral-sh/ruff-pre-commit` repo (pinned 0.15.18) — the venv is always synced here, so there is no bootstrap reason to keep the isolated-env repo hook; the pytest hook is dropped (the maintainer's only suite is the heavy generation matrix — CI-only). The two configs share the SHA-pinned `pre-commit-hooks` block: **bump both `rev:` pins together** (v6.0.0 = `3e8a8703…`).
Deliberate divergences from the template's `.pre-commit-config.yaml` (`template/{% if not in_existing_repo %}.pre-commit-config.yaml{% endif %}.jinja`): ruff runs via local `uv run ruff` hooks (locked 0.17.1) instead of the `astral-sh/ruff-pre-commit` repo (pinned 0.17.1) — the venv is always synced here, so there is no bootstrap reason to keep the isolated-env repo hook; the pytest hook is dropped (the maintainer's only suite is the heavy generation matrix — CI-only). The two configs share the SHA-pinned `pre-commit-hooks` block: **bump both `rev:` pins together** (v6.0.0 = `3e8a8703…`).

## Scanning

Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
PR-only `changelog.yml` check that fails when `src/` or `pyproject.toml` change without a
new `CHANGELOG.md` line; the `skip-changelog` label bypasses it. CI-only, no recipe.

### Changed

- Bump the generated project's ruff to `>=0.17,<0.18` (and the shipped `ruff-pre-commit`
hook to v0.17.1). Under `ruff_ruleset = "all"`, ignore `CPY001`, which ruff 0.17 stabilised
and would otherwise demand a copyright header in every file.

## [0.2.0] - 2026-09-02

### Added
Expand Down
9 changes: 7 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ dev = [
"pytest>=8,<10",
"pyyaml>=6,<7",
"basedpyright>=1.40,<1.41",
"ruff>=0.15,<0.16",
"ruff>=0.17,<0.18",
"pre-commit>=4,<5",
]

Expand All @@ -44,13 +44,18 @@ reportMissingImports = "error"
[tool.ruff]
line-length = 100
target-version = "py311" # the requires-python floor (template uses the chosen python_version)
extend-exclude = ["template"] # parity with basedpyright; template/ is Jinja, count-neutral
extend-exclude = [
"template", # parity with basedpyright; template/ is Jinja, count-neutral
"docs", # frozen spec/plan records: ruff 0.17 includes *.md by default and
# would rewrite their diff-fragment snippets
]

[tool.ruff.lint]
select = ["ALL"]
ignore = [
"COM812", # formatter-owned: conflicts with `ruff format` (ruff's own formatter-compat guidance)
"ISC001", # formatter-owned: the documented companion to COM812 under `ruff format`
"CPY001", # ISC-licensed repo with no per-file copyright-header convention (stable in ruff 0.17)
]

[tool.ruff.lint.mccabe]
Expand Down
3 changes: 2 additions & 1 deletion template/pyproject.toml.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ package = false

[dependency-groups]
dev = [
"ruff>=0.15,<0.16",
"ruff>=0.17,<0.18",
# recommended mode is version-coupled like ruff's ALL set: it tracks every basedpyright
# rule, so a new minor can turn a green tree red — cap it and bump deliberately.
"basedpyright>=1.39,<1.40",
Expand Down Expand Up @@ -55,6 +55,7 @@ select = ["ALL"]
ignore = [
"E501", "ANN401", "PLR0913", "PLR2004", "TD002", "TD003", "FIX002",
"EM101", "EM102", "TRY003", "D100", "D203", "D213", "COM812", "ISC001",
"CPY001",
]
{%- else -%}
select = ["E", "F", "UP", "B", "SIM", "I", "ANN", "S", "C4", "DTZ", "PTH", "RUF", "PL"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ repos:
- id: trailing-whitespace

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: 77039ccbba72c8aede339c5f8ae29b42aced0a2e # v0.15.18
rev: 38bfb07c0c64c304f47eb52090f8288150c77730 # v0.17.1
hooks:
- id: ruff-check
args: [--fix]
Expand Down
44 changes: 22 additions & 22 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading