Skip to content

fix(tools/security-tracker-stats-dashboard): align Python floor to 3.11 - #968

Merged
potiuk merged 2 commits into
apache:mainfrom
Shaurya2k06:fix/security-tracker-stats-dashboard-python-311
Jul 27, 2026
Merged

fix(tools/security-tracker-stats-dashboard): align Python floor to 3.11#968
potiuk merged 2 commits into
apache:mainfrom
Shaurya2k06:fix/security-tracker-stats-dashboard-python-311

Conversation

@Shaurya2k06

Copy link
Copy Markdown
Contributor

Summary

Type of change

  • Skill change (.claude/skills/<name>/) — eval fixtures updated below
  • Tool / bridge contract (tools/<system>/*.md)
  • Python package (tools/*/ with pyproject.toml)
  • Groovy reference impl
  • Cross-cutting (RFC, AGENTS.md, sandbox, privacy-LLM)
  • Documentation (docs/, README.md, CONTRIBUTING.md)
  • Project template (projects/_template/)
  • CI / dev loop (prek, workflows, validators)
  • Other:

Test plan

  • prek commit hooks pass on the changed files
  • uv run --directory tools/security-tracker-stats-dashboard --group dev pytest — 114 passed
  • uv run --directory tools/security-tracker-stats-dashboard --group dev ruff check / mypy — clean
  • For Groovy bridges touched: command-line invocation tested end-to-end
  • For skill changes: eval suite passes for the affected skill
  • For skill behaviour changes: a new or updated eval fixture is included in this PR
  • Other:

RFC-AI-0004 compliance

  • HITL — any new mutation is gated on explicit user confirmation
  • Sandbox — no new unrestricted host access; network reach declared in the adapter
  • Vendor neutrality — placeholders used in skill / tool prose (N/A for this version-floor change)
  • Conversational + correctable — agentic-override path documented if behaviour is adopter-tunable
  • Write-access discipline — no autonomous outbound messages; drafts only, sent on confirmation
  • Privacy LLM — private content does not reach a non-approved LLM; redactor invoked where needed

Linked issues

Closes #948

Notes for reviewers (optional)

If #965 merges first, rebase and drop the root uv.lock hunk — it is only included so prek's vendor-neutrality hook does not fail this branch on README touch.

Shaurya2k06 and others added 2 commits July 27, 2026 16:25
Match requires-python, ruff, and mypy to the repo-wide 3.11 floor
so type-checking cannot green-light constructs unsupported by the
declared runtime. Apply the py311 ruff UP017/B905 fixes that the
raised target-version now surfaces.

Also re-lock root uv.lock mypy requires-dev specifiers to >=2.3.0
so prek stops rewriting the lock on every README-touching commit
(same correction as apache#965).

Generated-by: Cursor Grok 4.5
Signed-off-by: shaurya2k06 <shaurya2k06@gmail.com>

@justinmclean justinmclean left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right alignment: this was the last tool on >=3.9 while root and the other 29 are >=3.11, and nothing in CI pins a Python version.

For anyone wondering why a version bump carries datetime.UTC and zip(..., strict=True): both ruff rules are silent at py39 and fire at py311, so they're what keeps ruff check green once target-version moves. datetime.UTC is the same object as datetime.timezone.utc, a pure rename. strict=True is the real choice, since strict=False would preserve the old truncating behaviour.

@potiuk
potiuk merged commit 75c7ab1 into apache:main Jul 27, 2026
38 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Align the Python version floor in security-tracker-stats-dashboard

3 participants