Skip to content

chore: repo refresh (2026-10) - #356

Merged
tlambert03 merged 6 commits into
pyapp-kit:mainfrom
tlambert03:refresh/2026-10-07
Oct 7, 2026
Merged

tlambert03 merged 6 commits into
pyapp-kit:mainfrom
tlambert03:refresh/2026-10-07

Conversation

@tlambert03

@tlambert03 tlambert03 commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

Routine tooling refresh, one commit per step.

ci: autoupdate pre-commit hooks

  • ruff-pre-commit v0.16.1 → v0.16.10
  • mirrors-typos v1.48.0 → v1.51.1
  • validate-pyproject v0.25 → '0.26' (upstream dropped the v prefix; quoted so YAML keeps it a string)
  • mirrors-mypy v2.3.0 → v2.4.0

style: fix lint errors from hook updates

ruff-format now formats Python code blocks in Markdown docs: blank lines and quote style only, in 5 docs/ pages.

ci: bump GitHub Actions

  • astral-sh/setup-uv v7 → v10.2.0, pinned by SHA (no floating @v8+ tags exist). Relevant breaking changes: v9 sets prune-cache default to false (larger GH cache usage); v10 disables enable-cache: auto for sensitive events, which doesn't affect us since we set enable-cache: true on push/PR events.
  • pyvista/setup-headless-display-action v4 → v5 (qt: true input unchanged)
  • hynek/build-and-inspect-python-package v2 → v3.0.1, pinned by SHA (no floating @v3 tag exists)

chore: drop Python 3.10, add 3.15

  • requires-python = ">=3.11", 3.10 classifier removed, ruff target-version = "py311", "Python 3.11 and above" in README / CONTRIBUTING / docs.
  • Added the 3.15 classifier and a ubuntu-latest (3.15) pyqt6 job.
  • Matrix shifted up one version (adjusted in fix: shift CI matrix to 3.11/3.14): main list ["3.10", "3.13"] → ["3.11", "3.14"]. Include rows move up one version too: ubuntu pyqt5 3.10 → 3.11, windows pyqt5 3.11 → 3.12, macos lowest-direct 3.12 → 3.13, ubuntu pyqt6/pyside6 3.12 → 3.13. The ubuntu 3.14 pyqt6 row is now a main-matrix job, so it was removed. The windows lowest-direct pyside6 row stays on 3.11 because pyside6 ≥6.7 is required on 3.12+, and it's the only job testing pyside6 6.4.
  • numpy test markers: removed the always-false < '3.11' line and simplified >= '3.11' and < '3.13' to < '3.13'.

refactor: modernize syntax for Python >= 3.11

UP036 removed the sys.version_info >= (3, 11) branch in QEnumComboBox's _get_name. I also deleted the now-unreachable pre-3.11 enum._decompose fallback.

Decisions

  • Dropped 3.10: it reached EOL on 2026-10-01 (per peps.python.org release-cycle data).
  • Added 3.15 (RC) to CI as a plain "3.15", with no extra flags. setup-uv/uv resolves it to the pre-release.

Needs attention

  • Matrix merge: with 3.11 now in the main list, the include row windows-latest / 3.11 / pyside6 / lowest-direct matches an existing job, so GitHub turns that job into a lowest-direct run instead of adding a new one. The result is one fewer job: windows/3.11/pyside6 runs only lowest-direct. Windows pyside6 "highest" still runs on 3.14. There's a comment in the YAML.
  • typing_extensions remains a dependency (TypedDict, ParamSpec imports untouched; ruff didn't flag them).
  • The manual-stage mypy hook reports about 160 errors; these exist on main too and weren't changed here.

Superseded PRs

Closes #354
Closes #352

Branch protection

Classic branch protection on main (required status checks; strict: false and app IDs unchanged):

  • macos-latest (3.12) pyqt6 lowest-direct → macos-latest (3.13) pyqt6 lowest-direct
  • windows-latest (3.10) pyside6 → windows-latest (3.14) pyside6. The windows/3.11/pyside6 "highest" job no longer exists (see the matrix merge note).
  • ubuntu-latest (3.10) pyqt5 → ubuntu-latest (3.11) pyqt5
  • unchanged: pre-commit.ci - pr, ubuntu-latest (3.14) pyqt6, windows-latest (3.11) pyside6 lowest-direct

Consequences: other open PRs built on the old matrix won't report the new names until they're rebased or re-run. If this PR is closed without merging, revert the rule. The original rule is saved locally and was:
pre-commit.ci - pr, macos-latest (3.12) pyqt6 lowest-direct, windows-latest (3.10) pyside6, ubuntu-latest (3.10) pyqt5, ubuntu-latest (3.14) pyqt6, windows-latest (3.11) pyside6 lowest-direct.

🤖 Generated with Claude Code

tlambert03 and others added 5 commits October 7, 2026 20:46
- astral-sh/ruff-pre-commit: v0.16.1 -> v0.16.10
- adhtruong/mirrors-typos: v1.48.0 -> v1.51.1
- abravalheri/validate-pyproject: v0.25 -> 0.26 (upstream dropped the v prefix)
- pre-commit/mirrors-mypy: v2.3.0 -> v2.4.0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ruff-format v0.16.10 now formats Python code blocks in Markdown docs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- astral-sh/setup-uv: v7 -> v10.2.0 (SHA pin; no floating major tags since v8)
- pyvista/setup-headless-display-action: v4 -> v5
- hynek/build-and-inspect-python-package: v2 -> v3.0.1 (SHA pin; no floating major tags since v3)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Python 3.10 reached end-of-life on 2026-10-01: requires-python >=3.11,
  classifier removed, ruff target-version py311, docs updated.
- Python 3.15 is in its RC phase: added a ubuntu-latest (3.15) pyqt6 CI job
  and the 3.15 classifier.
- CI matrix main list ["3.10", "3.13"] -> ["3.11", "3.13"]; the ubuntu pyqt5
  include row moves from 3.10 to 3.11.
- numpy test markers: removed the always-false `< '3.11'` line and simplified
  the `>= '3.11' and < '3.13'` marker.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
UP036 removed the `sys.version_info >= (3, 11)` branch in `_get_name`;
also removed the now-unreachable pre-3.11 `enum._decompose` fallback.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codecov

codecov Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 84.81%. Comparing base (a175047) to head (fbb31a8).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
src/superqt/combobox/_enum_combobox.py 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #356      +/-   ##
==========================================
- Coverage   84.90%   84.81%   -0.10%     
==========================================
  Files          49       49              
  Lines        3928     3924       -4     
==========================================
- Hits         3335     3328       -7     
- Misses        593      596       +3     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Main list ["3.11", "3.13"] -> ["3.11", "3.14"]; include rows each move up one
version (macos lowest-direct 3.13, windows pyqt5 3.12, ubuntu pyqt6/pyside6
3.13). The ubuntu 3.14 pyqt6 row is now a main-matrix job and was removed.
The windows lowest-direct pyside6 row stays on 3.11 to keep testing pyside6
6.4 (3.12+ requires pyside6>=6.7).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tlambert03
tlambert03 enabled auto-merge (squash) October 7, 2026 19:59
@tlambert03
tlambert03 merged commit 2c25dba into pyapp-kit:main Oct 7, 2026
27 of 28 checks passed
@tlambert03
tlambert03 deleted the refresh/2026-10-07 branch October 7, 2026 20:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant