Files
stack/renovate.json
kert e3def65fd2
Some checks failed
CI / lint (push) Successful in 35s
CI / notebooks-smoke (push) Successful in 1m56s
Deploy / changes (push) Successful in 16s
CI / test (push) Successful in 3m52s
Deploy / zotero (push) Successful in 6m19s
Deploy / notebooks (push) Successful in 6m55s
Deploy / docs (push) Successful in 1m26s
Deploy / api (push) Successful in 2m36s
Deploy / bcda (push) Successful in 2m34s
Deploy / mc (push) Has been skipped
Deploy / llm (push) Successful in 1m41s
Deploy / report (push) Successful in 16s
Zotero Sync / zotero-sync (push) Successful in 2m24s
Package Supply Chain / pkg-supply-chain (push) Successful in 1m18s
Comment Pull / comment-pull (push) Successful in 1m7s
Harden / build-scan-report (push) Successful in 37m33s
Notebooks Integration / notebooks-integration (push) Failing after 9m43s
LLM Golden / llm-golden (push) Successful in 7m39s
Renovate / renovate (push) Successful in 2m5s
fix(renovate): githubTokenWarn is global-only — set it in the workflow env
fe94999 put githubTokenWarn in renovate.json. Renovate rejects
global-only options in a repository config ("Configuration Error"),
and run 1606 then extracted dependencies but opened no branches. It now
comes from RENOVATE_GITHUB_TOKEN_WARN in the workflow, and renovate.json
validates in repo mode (renovate-config-validator --strict from the repo
directory). I had validated with the file path as an argument, which
checks it as global config, where the option is legal.
2026-10-29 19:43:37 -04:00

108 lines
4.6 KiB
JSON

{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:recommended"],
"labels": ["dependencies"],
"automerge": false,
"automergeType": "branch",
"automergeStrategy": "fast-forward",
"prHourlyLimit": 0,
"minimumReleaseAge": "7 days",
"fetchChangeLogs": "off",
"ignorePaths": [
"**/node_modules/**",
"**/bower_components/**",
"**/vendor/**",
"**/examples/**",
"**/__tests__/**",
"**/test/**",
"**/tests/**",
"**/__fixtures__/**",
"infra/traefik/plugins/src/**",
"infra/images/selkies/Dockerfile.upstream"
],
"osvVulnerabilityAlerts": true,
"vulnerabilityAlerts": {
"labels": ["dependencies", "security"]
},
"lockFileMaintenance": {
"enabled": true,
"schedule": ["before 6am on monday"]
},
"packageRules": [
{
"matchUpdateTypes": ["minor", "patch", "digest", "lockFileMaintenance"],
"automerge": true
},
{
"description": "A Python minor (3.13 -> 3.15) is a runtime migration, not a patch: never automerge it.",
"matchDepNames": ["python"],
"automerge": false
},
{
"description": "pymupdf 2.x bundles the Polyform-Noncommercial layout code and onnxruntime — a licence decision (see pyproject.toml), not a routine bump.",
"matchPackageNames": ["pymupdf"],
"allowedVersions": "<2"
},
{
"description": "Action pins (uses: …@v4) are github-tags lookups, which Renovate refuses without a GITHUB_COM_TOKEN; and all workflows but renovate.yml are generated by gen_config.py from dev/scripts/backends/*.py, so a direct edit would fail its --check. The Renovate container image (docker datasource) stays tracked.",
"matchManagers": ["github-actions"],
"matchDatasources": ["github-tags"],
"enabled": false
},
{
"description": "requires-python is a support floor, not a dependency to bump.",
"matchManagers": ["pep621"],
"matchDepNames": ["python"],
"enabled": false
},
{
"description": "Every service shares the same .duckdb files; a new duckdb major is a coordinated migration, not a bump (see pyproject's notebooks extra).",
"matchPackageNames": ["duckdb"],
"allowedVersions": "<2"
},
{
"description": ".python-version is the dev/CI interpreter and must match the images' Python (uv base images python3.13, notebooks PYTHON_VERSION=3.13); duckdb 1.x, which every service pins <2, also publishes no cp315 wheels. bcda-app's file mirrors the Python Databricks Apps provides. Move these deliberately, with the images.",
"matchManagers": ["pyenv"],
"enabled": false
},
{
"description": "The notebooks image installs cudf-polars-cu12 (CUDA 12 wheels) on this base; CUDA 13 is a migration of base and wheels together, not a tag bump.",
"matchPackageNames": ["nvidia/cuda"],
"allowedVersions": "<13"
},
{
"description": "dev/scripts/marimo_latest.py (nightly timer) owns the notebooks image's marimo pin end to end: bump, build, gate, roll. A Renovate bump would land the pin without rolling, and the timer would then see it as current.",
"matchDepNames": ["marimo-team/marimo"],
"enabled": false
},
{
"description": "Generated-workflow tool pins: gen_config.py must re-emit .gitea/workflows after the bump, so a human merges these.",
"matchFileNames": ["dev/scripts/backends/gitea.py"],
"automerge": false,
"prBodyNotes": ["Run `uv run python dev/scripts/gen_config.py` on this branch and commit the regenerated workflows before merging."]
}
],
"dockerfile": {
"managerFilePatterns": ["/(^|/)[^/]+\\.Dockerfile$/"]
},
"customManagers": [
{
"customType": "regex",
"description": "Bump `ARG *_VERSION=` pins annotated with a `# renovate:` comment (yq, otel-cli, …) that the dockerfile manager can't see. Tools that publish a Docker image are tracked through it (datasource=docker): github-* datasources need a GITHUB_COM_TOKEN.",
"managerFilePatterns": ["/(^|/)[^/]+\\.Dockerfile$/"],
"matchStrings": [
"# renovate: datasource=(?<datasource>\\S+) depName=(?<depName>\\S+)(?: extractVersion=(?<extractVersion>\\S+))?\\s+ARG \\w+?_VERSION=(?<currentValue>\\S+)"
]
},
{
"customType": "regex",
"description": "Bump the trivy/crane pins the CI workflow generator installs.",
"managerFilePatterns": ["/^dev/scripts/backends/gitea\\.py$/"],
"matchStrings": [
"# renovate: datasource=(?<datasource>\\S+) depName=(?<depName>\\S+)\\s+\\w+_VERSION = \"(?<currentValue>[^\"]+)\""
],
"extractVersionTemplate": "^v?(?<version>.*)$"
}
]
}