From 49cf5f4fa9a709462dd9eea12dea21773a94032b Mon Sep 17 00:00:00 2001 From: Tayo Date: Mon, 12 Oct 2026 20:45:45 +0700 Subject: [PATCH 1/5] Chore: install uv via astral-sh/setup-uv, drop allow-prereleases for stable 3.15 - Replace 'pip install uv' with astral-sh/setup-uv@v10 in both jobs (official action, cached, tracks latest uv) - Remove allow-prereleases from the test matrix: 3.15.0 final shipped 2026-10-09 and is in the setup-python manifest as stable - Dockerfile stays on python:3.14-slim: no official 3.15-slim image published yet (rc tags only as of 2026-10-12) --- .github/workflows/python-checks.yml | 5 ++--- AGENTS.md | 5 +++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/python-checks.yml b/.github/workflows/python-checks.yml index 7bc1058..0eb87a6 100644 --- a/.github/workflows/python-checks.yml +++ b/.github/workflows/python-checks.yml @@ -25,7 +25,7 @@ jobs: python-version: "3.11" - name: Install uv - run: pip install --upgrade pip uv + uses: astral-sh/setup-uv@v10 - name: Install dependencies run: uv sync --dev @@ -61,10 +61,9 @@ jobs: uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - allow-prereleases: true - name: Install uv - run: pip install --upgrade pip uv + uses: astral-sh/setup-uv@v10 - name: Install dependencies run: uv sync --dev diff --git a/AGENTS.md b/AGENTS.md index af2fc90..9ca5955 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -324,10 +324,11 @@ if user.id not in context.state.admin_ids: ## CI/CD - **GitHub Actions**: `.github/workflows/python-checks.yml` -- **Matrix**: Python 3.11, 3.12, 3.13, 3.14 +- **Matrix**: Python 3.11, 3.12, 3.13, 3.14, 3.15 (3.15 stable since the 3.15.0 final, 2026-10-09 — no `allow-prereleases` needed) +- **uv**: installed via `astral-sh/setup-uv` (not `pip install uv`) - **Steps**: ruff → mypy → pytest (lint job always; test job runs when Python files changed) - **Mypy config**: Pragmatic, in `pyproject.toml [tool.mypy]`. Disables noisy error codes from aiogram / SQLModel / Pydantic v2 (`arg-type`, `attr-defined`, `index`, `union-attr`, `misc`, `return-value`, `call-arg`). New code should remain free of these errors -- **Docker**: Multi-stage build with `uv`, non-root user, 512MB limit +- **Docker**: Multi-stage build with `uv`, non-root user, 512MB limit. Base image stays on `python:3.14-slim` until the official `python:3.15-slim` image is published (only rc tags existed as of 2026-10-12); bump `.python-version` together with the Dockerfile since `uv sync` resolves its interpreter from it ## Where to Look (Plugin System) From 88cae8db63b7a07dc24764259424854ff881b75c Mon Sep 17 00:00:00 2001 From: Tayo Date: Mon, 12 Oct 2026 20:46:46 +0700 Subject: [PATCH 2/5] Fix: pin astral-sh/setup-uv to v10.3.0 (no floating v10 tag published) --- .github/workflows/python-checks.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-checks.yml b/.github/workflows/python-checks.yml index 0eb87a6..5347819 100644 --- a/.github/workflows/python-checks.yml +++ b/.github/workflows/python-checks.yml @@ -25,7 +25,7 @@ jobs: python-version: "3.11" - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.3.0 - name: Install dependencies run: uv sync --dev @@ -63,7 +63,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.3.0 - name: Install dependencies run: uv sync --dev From ed3f557f959dfddde5343282f8d3d97a55e76002 Mon Sep 17 00:00:00 2001 From: Tayo Date: Mon, 12 Oct 2026 20:52:19 +0700 Subject: [PATCH 3/5] Chore: add Dependabot for GitHub Actions (weekly) --- .github/dependabot.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..b92c053 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,9 @@ +version: 2 +updates: + # Keep GitHub Actions (e.g. astral-sh/setup-uv) on their latest releases. + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + commit-message: + prefix: "Chore" From 4bab4d2c07cec4ec041020e1972e20658db8732d Mon Sep 17 00:00:00 2001 From: Tayo Date: Mon, 12 Oct 2026 20:57:38 +0700 Subject: [PATCH 4/5] Chore: document English-only PR titles/descriptions policy --- AGENTS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AGENTS.md b/AGENTS.md index 9ca5955..f8b07a5 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -365,3 +365,4 @@ if user.id not in context.state.admin_ids: ## Policy - Never mention AI usage, code generation tools, or automated assistance in commit messages, PR descriptions, code comments, or documentation +- PR titles and descriptions are written in English From 5f5d667dd9cdac236116ec5fa8fe07e989cee345 Mon Sep 17 00:00:00 2001 From: Tayo Date: Tue, 13 Oct 2026 02:38:49 +0000 Subject: [PATCH 5/5] Chore: bump Dockerfile and .python-version to Python 3.15 The official python:3.15-slim image is now published on Docker Hub. --- .python-version | 2 +- AGENTS.md | 2 +- Dockerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.python-version b/.python-version index 6324d40..230693c 100644 --- a/.python-version +++ b/.python-version @@ -1 +1 @@ -3.14 +3.15 \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md index f8b07a5..a00acbd 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -328,7 +328,7 @@ if user.id not in context.state.admin_ids: - **uv**: installed via `astral-sh/setup-uv` (not `pip install uv`) - **Steps**: ruff → mypy → pytest (lint job always; test job runs when Python files changed) - **Mypy config**: Pragmatic, in `pyproject.toml [tool.mypy]`. Disables noisy error codes from aiogram / SQLModel / Pydantic v2 (`arg-type`, `attr-defined`, `index`, `union-attr`, `misc`, `return-value`, `call-arg`). New code should remain free of these errors -- **Docker**: Multi-stage build with `uv`, non-root user, 512MB limit. Base image stays on `python:3.14-slim` until the official `python:3.15-slim` image is published (only rc tags existed as of 2026-10-12); bump `.python-version` together with the Dockerfile since `uv sync` resolves its interpreter from it +- **Docker**: Multi-stage build with `uv`, non-root user, 512MB limit. Base image is `python:3.15-slim`; bump `.python-version` together with the Dockerfile since `uv sync` resolves its interpreter from it ## Where to Look (Plugin System) diff --git a/Dockerfile b/Dockerfile index 77b4718..a5bea8b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.14-slim +FROM python:3.15-slim LABEL maintainer="PythonID Bot" LABEL description="Telegram bot for group profile monitoring"