From 34de65534faa1ea9d93c1bd8d126669c2d46d003 Mon Sep 17 00:00:00 2001 From: Alex Lowe Date: Mon, 13 Jan 2025 15:30:32 -0500 Subject: [PATCH] ci(renovate): replace renovate config with starflow (#2075) This uses the starflow renovate configuration rather than having our own. --- .github/renovate.json5 | 186 +---------------------------------------- 1 file changed, 1 insertion(+), 185 deletions(-) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index a5d18da70..66cb2f6bd 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -1,187 +1,3 @@ { - // Configuration file for RenovateBot: https://docs.renovatebot.com/configuration-options - extends: ["config:recommended", ":semanticCommitTypeAll(build)"], - ignoreDeps: [ - // Each ignore is probably connected with an ignore in pyproject.toml. - // Ensure you change this and those simultaneously. - "urllib3", - // Temporary until we remove Windows. https://github.com/canonical/charmcraft/issues/1810 - "windows", // We'll update Windows versions manually. - "tox-gh", // As of 1.3.2 tox-gh doesn't support Windows 2019's python 3.7. - ], - labels: ["dependencies"], // For convenient searching in GitHub - baseBranches: ["$default", "/^hotfix\\/.*/"], - pip_requirements: { - fileMatch: ["^tox.ini$", "(^|/)requirements([\\w-]*)\\.txt$", "^.pre-commit-config.yaml$"] - }, - packageRules: [ - { - // Internal package minor patch updates get top priority, with auto-merging - groupName: "internal package minor releases", - matchPackagePatterns: ["^craft-.*"], - matchUpdateTypes: ["minor", "patch", "pin", "digest"], - prPriority: 10, - automerge: true, - minimumReleaseAge: "0 seconds", - schedule: ["at any time"], - matchBaseBranches: ["$default"], // Only do minor releases on main - }, - { - // Same as above, but for hotfix branches, only for patch, and without auto-merging. - groupName: "internal package patch releases (hotfix)", - matchPackagePatterns: ["^craft-.*"], - matchUpdateTypes: ["patch", "pin", "digest"], - prPriority: 10, - minimumReleaseAge: "0 seconds", - schedule: ["at any time"], - matchBaseBranches: ["/^hotfix\\/.*/"], // All hotfix branches - }, - { - // Automerge patches, pin changes and digest changes. - // Also groups these changes together. - groupName: "bugfixes", - excludeDepPatterns: [ - "lint/.*", - "types/.*", - "pyright", // Pyright needs to be done separately. - ], - matchUpdateTypes: ["patch", "pin", "digest"], - prPriority: 3, // Patches should go first! - automerge: true - }, - { - // Update all internal packages in one higher-priority PR - groupName: "internal packages", - matchDepPatterns: ["craft-.*", "snap-.*"], - matchCategories: ["python"], - prPriority: 2, - matchBaseBranches: ["$default"], // Not for hotfix branches - }, - { - // GitHub Actions are higher priority to update than most dependencies since they don't tend to break things. - groupName: "GitHub Actions", - matchManagers: ["github-actions"], - prPriority: 1, - automerge: true, - }, - // Everything not in one of these rules gets priority 0 and falls here. - { - //Do all pydantic-related updates together - groupName: "pydantic etc.", - matchPackagePatterns: ["^pydantic"], - }, - { - // Minor changes can be grouped and automerged for dev dependencies, but are also deprioritised. - groupName: "development dependencies (non-major)", - groupSlug: "dev-dependencies", - matchDepPatterns: [ - "dev/.*", - "lint/.*", - "types/.*" - ], - matchPackagePatterns: [ - // Brought from charmcraft. May not be complete. - // This helps group dependencies in requirements-dev.txt files. - "^(.*/)?autoflake$", - "^(.*/)?black$", - "^(.*/)?codespell$", - "^(.*/)?coverage$", - "^(.*/)?flake8$", - "^(.*/)?hypothesis$", - "^(.*/)?mypy$", - "^(.*/)?pycodestyle$", - "^(.*/)?docstyle$", - "^(.*/)?pyfakefs$", - "^(.*/)?pyflakes$", - "^(.*/)?pylint$", - "^(.*/)?pytest", - "^(.*/)?responses$", - "^(.*/)?ruff$", - "^(.*/)?twine$", - "^(.*/)?tox$", - "^(.*/)?types-", - ], - matchUpdateTypes: ["minor", "patch", "pin", "digest"], - prPriority: -1, - automerge: true - }, - { - // Documentation related updates - groupName: "documentation dependencies", - groupSlug: "doc-dependencies", - matchPackageNames: ["Sphinx", "furo"], - matchPackagePatterns: ["[Ss]phinx.*$"], - matchDepPatterns: ["docs/.*"], - matchBaseBranches: ["$default"], // Not for hotfix branches - }, - { - // Other major dependencies get deprioritised below minor dev dependencies. - matchUpdateTypes: ["major"], - prPriority: -2, - matchBaseBranches: ["$default"], // Not for hotfix branches - }, - { - // Major dev dependencies are stone last, but grouped. - groupName: "development dependencies (major versions)", - groupSlug: "dev-dependencies", - matchDepTypes: ["devDependencies"], - matchUpdateTypes: ["major"], - prPriority: -3, - matchBaseBranches: ["$default"], // Not for hotfix branches - matchPackagePatterns: [ - // Generated from the dependency dashboard, may not be complete. - "^(.*/)?autoflake$", - "^(.*/)?black$", - "^(.*/)?flake8$", - "^(.*/)?hypothesis$", - "^(.*/)?pycodestyle$", - "^(.*/)?pyfakefs$", - "^(.*/)?pyflakes$", - "^(.*/)?pylint$", - "^(.*/)?pytest", - "^(.*/)?responses$", - "^(.*/)?ruff$", - "^(.*/)?twine$", - "^(.*/)?types-" - ], - }, - { - // Pyright makes regular breaking changes in patch releases, so we separate these - // and do them independently. - matchPackageNames: ["pyright", "types/pyright"], - prPriority: -4, - matchBaseBranches: ["$default"], // Not for hotfix branches - } - ], - customManagers: [ - { - // tox.ini can get updates too if we specify for each package. - fileMatch: ["tox.ini"], - customType: "regex", - depTypeTemplate: "devDependencies", - matchStrings: [ - "# renovate: datasource=(?\\S+)\n\\s+(?.*?)(\\[[\\w]*\\])*[=><]=?(?.*?)\n" - ] - }, - { - // .pre-commit-config.yaml version updates - fileMatch: [".pre-commit-config.yaml"], - customType: "regex", - datasourceTemplate: "pypi", - depTypeTemplate: "lint", - matchStrings: [ - "- repo: .*/<(?\\S+)\\s*\\n\\s*rev:\s+\"?v?(?\\S*)\"?", - ] - } - ], - timezone: "Etc/UTC", - schedule: ["every weekend"], - prConcurrentLimit: 2, // No more than 2 open PRs at a time. - branchConcurrentLimit: 20, // No more than 20 open branches at a time. - prCreation: "not-pending", // Wait until status checks have completed before raising the PR - prNotPendingHours: 4, // ...unless the status checks have been running for 4+ hours. - prHourlyLimit: 1, // No more than 1 PR per hour. - minimumReleaseAge: "2 days", - automergeStrategy: "squash", // Squash & rebase when auto-merging. - semanticCommitType: "build" // use `build` as commit header type (i.e. `build(deps): `) + extends: ["github>canonical/starflow:renovate.json5"], }