From f180a90965ac2682b97a394b974283210d113514 Mon Sep 17 00:00:00 2001 From: h Date: Thu, 10 Sep 2026 16:33:27 +0200 Subject: [PATCH] =?UTF-8?q?chore(renovate):=20=D1=81=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BE=D0=B1=D0=BB=D0=B0=D1=81=D1=82=D1=8C=20?= =?UTF-8?q?=E2=80=94=20=D0=B3=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D0=B0=20=D0=B8?= =?UTF-8?q?=20=D0=BC=D1=91=D1=80=D1=82=D0=B2=D1=8B=D0=B9=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=B4=20=D0=B2=D0=BD=D0=B5=20=D1=81=D1=85=D0=B5=D0=BC=D1=8B,?= =?UTF-8?q?=20docker-=D0=BF=D0=B8=D0=BD=D1=8B=20=D0=BE=D1=82=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- renovate.jsonc | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/renovate.jsonc b/renovate.jsonc index 32e6384..121719e 100644 --- a/renovate.jsonc +++ b/renovate.jsonc @@ -20,6 +20,35 @@ "extends": ["config:recommended", ":dependencyDashboard"], "timezone": "Europe/Warsaw", + // ОБЛАСТЬ. Прогон вхолостую 10.09.2026 показал, что без этих двух ключей + // Renovate в прикладной репе лезет сильно дальше, чем задумано. + // + // enabledManagers: без списка их подхватывается полтора десятка. На + // cars-system это дало `html` (16 файлов вёрстки в _legacy), `pyenv` + // (.python-version — это смена рантайма, а не зависимости), плюс `poetry` + // и `pixi`, которые лезут в тот же backend/pyproject.toml, что и pep621. + "enabledManagers": [ + "docker-compose", + "dockerfile", + "npm", + "bun", + "pep621", + "pip_requirements", + "gomod", + "github-actions" + ], + // ignorePaths: в репах приложений рядом с рабочим compose лежит ещё и + // caddy/docker-compose.yml. Это ГРАНИЦА — `ghcr.io/caddybuilds/caddy-cloudflare`, + // а граница из схемы исключена намеренно, ей нужен не лаг, а хелсчек с + // автооткатом (docs/image-updates.md §6). В infra/komodo это делает + // includePaths, здесь — вот эта строчка. Заодно выкидываем мёртвый + // _legacy и compose для дев-воркtree, который никто не разворачивает. + "ignorePaths": [ + "**/caddy/**", + "_legacy/**", + "**/docker-compose.worktree.yml" + ], + // Дайджест: тег в compose остаётся для читаемости, разворачивается всегда // один и тот же образ. "pinDigests": true, @@ -49,6 +78,14 @@ "matchUpdateTypes": ["patch", "minor", "digest", "pinDigest"], "automerge": true }, + { + "description": + "Docker: первичный пиннинг дайджеста — ОТДЕЛЬНОЙ веткой. `groupName: null` здесь обязателен: у Renovate есть встроенная группа «Pin dependencies», и без этой строчки docker-пины уезжают в один PR вместе с npm-пинами. Группа берёт самый строгий automerge из своих участников, то есть докер молча переставал мёржиться сам — поймано прогоном вхолостую на placebot, где в pin-dependencies лежали python и caddy-cloudflare вперемешку с фронтовыми пакетами.", + "matchDatasources": ["docker"], + "matchUpdateTypes": ["pin", "pinDigest"], + "groupName": null, + "automerge": true + }, { "description": "Docker: мажор руками. Аппрув в дашборде, PR не создаётся.", "matchDatasources": ["docker"], @@ -92,7 +129,7 @@ "description": "ЗАВИСИМОСТИ КОДА (npm, pip, go.mod, экшены и прочее не-docker): PR собираем, автомёрдж НЕ включаем — решение Бобра от 10.09.2026, первый заход без него, чтобы сначала посмотреть на объём. Сгруппированы в один PR намеренно: иначе они по одному займут весь prConcurrentLimit и вытеснят docker-обновления, а те как раз едут сами.", "matchDatasources": ["!docker"], - "matchUpdateTypes": ["patch", "minor", "digest", "pinDigest"], + "matchUpdateTypes": ["pin", "patch", "minor", "digest", "pinDigest"], "groupName": "зависимости кода", "automerge": false, "addLabels": ["deps-code"]