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" diff --git a/.github/workflows/python-checks.yml b/.github/workflows/python-checks.yml index 7bc1058..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 - run: pip install --upgrade pip uv + uses: astral-sh/setup-uv@v10.3.0 - 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.3.0 - name: Install dependencies run: uv sync --dev 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 af2fc90..a00acbd 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 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) @@ -364,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 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"