Skip to content

Commit 1ec5565

Browse files
committed
Use a new grouping strategy for dependabot updates
We group patch updates as they should always work. We also group minor updates, as it works too for most libraries, typically except libraries that don't have a stable release yet (v0.x.x branch), so we make some exceptions for them. Major updates and dependencies excluded by the above groups are still managed, but they'll create one PR per dependency, as breakage is expected, so it might need manual intervention. Finally, we group some dependencies that are related to each other, and usually needs to be updated together. Signed-off-by: Leandro Lucarella <[email protected]>
1 parent e77f220 commit 1ec5565

File tree

6 files changed

+196
-72
lines changed

6 files changed

+196
-72
lines changed

cookiecutter/{{cookiecutter.github_repo_name}}/.github/dependabot.yml

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,46 @@ updates:
1313
versioning-strategy: auto
1414
# Allow up to 10 open pull requests for updates to dependency versions
1515
open-pull-requests-limit: 10
16-
# We group production and development ("optional" in the context of
17-
# pyproject.toml) dependency updates when they are patch and minor updates,
18-
# so we end up with less PRs being generated.
19-
# Major updates are still managed, but they'll create one PR per
20-
# dependency, as major updates are expected to be breaking, it is better to
21-
# manage them individually.
16+
# We group patch updates as they should always work.
17+
# We also group minor updates, as it works too for most libraries,
18+
# typically except libraries that don't have a stable release yet (v0.x.x
19+
# branch), so we make some exceptions for them.
20+
# Major updates and dependencies excluded by the above groups are still
21+
# managed, but they'll create one PR per dependency, as breakage is
22+
# expected, so it might need manual intervention.
23+
# Finally, we group some dependencies that are related to each other, and
24+
# usually need to be updated together.
2225
groups:
23-
required:
24-
dependency-type: "production"
26+
patch:
2527
update-types:
26-
- "minor"
2728
- "patch"
28-
optional:
29-
dependency-type: "development"
29+
exclude-patterns:
30+
# pydoclint has shipped breaking changes in patch updates often
31+
- "pydoclint"
32+
minor:
3033
update-types:
3134
- "minor"
32-
- "patch"
35+
exclude-patterns:
36+
- "async-solipsism"
37+
{%- if cookiecutter.type == "api" %}
38+
- "frequenz-api-common"
39+
{%- endif %}
40+
- "frequenz-repo-config*"
41+
- "markdown-callouts"
42+
- "mkdocs-gen-files"
43+
- "mkdocs-literate-nav"
44+
- "mkdocstrings*"
45+
- "pydoclint"
46+
- "pytest-asyncio"
47+
# We group repo-config updates as it uses optional dependencies that are
48+
# considered different dependencies otherwise, and will create one PR for
49+
# each if we don't group them.
50+
repo-config:
51+
patterns:
52+
- "frequenz-repo-config*"
53+
mkdocstrings:
54+
patterns:
55+
- "mkdocstrings*"
3356

3457
- package-ecosystem: "github-actions"
3558
directory: "/"

tests_golden/integration/test_cookiecutter_generation/actor/frequenz-actor-test/.github/dependabot.yml

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,43 @@ updates:
1313
versioning-strategy: auto
1414
# Allow up to 10 open pull requests for updates to dependency versions
1515
open-pull-requests-limit: 10
16-
# We group production and development ("optional" in the context of
17-
# pyproject.toml) dependency updates when they are patch and minor updates,
18-
# so we end up with less PRs being generated.
19-
# Major updates are still managed, but they'll create one PR per
20-
# dependency, as major updates are expected to be breaking, it is better to
21-
# manage them individually.
16+
# We group patch updates as they should always work.
17+
# We also group minor updates, as it works too for most libraries,
18+
# typically except libraries that don't have a stable release yet (v0.x.x
19+
# branch), so we make some exceptions for them.
20+
# Major updates and dependencies excluded by the above groups are still
21+
# managed, but they'll create one PR per dependency, as breakage is
22+
# expected, so it might need manual intervention.
23+
# Finally, we group some dependencies that are related to each other, and
24+
# usually need to be updated together.
2225
groups:
23-
required:
24-
dependency-type: "production"
26+
patch:
2527
update-types:
26-
- "minor"
2728
- "patch"
28-
optional:
29-
dependency-type: "development"
29+
exclude-patterns:
30+
# pydoclint has shipped breaking changes in patch updates often
31+
- "pydoclint"
32+
minor:
3033
update-types:
3134
- "minor"
32-
- "patch"
35+
exclude-patterns:
36+
- "async-solipsism"
37+
- "frequenz-repo-config*"
38+
- "markdown-callouts"
39+
- "mkdocs-gen-files"
40+
- "mkdocs-literate-nav"
41+
- "mkdocstrings*"
42+
- "pydoclint"
43+
- "pytest-asyncio"
44+
# We group repo-config updates as it uses optional dependencies that are
45+
# considered different dependencies otherwise, and will create one PR for
46+
# each if we don't group them.
47+
repo-config:
48+
patterns:
49+
- "frequenz-repo-config*"
50+
mkdocstrings:
51+
patterns:
52+
- "mkdocstrings*"
3353

3454
- package-ecosystem: "github-actions"
3555
directory: "/"

tests_golden/integration/test_cookiecutter_generation/api/frequenz-api-test/.github/dependabot.yml

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,44 @@ updates:
1313
versioning-strategy: auto
1414
# Allow up to 10 open pull requests for updates to dependency versions
1515
open-pull-requests-limit: 10
16-
# We group production and development ("optional" in the context of
17-
# pyproject.toml) dependency updates when they are patch and minor updates,
18-
# so we end up with less PRs being generated.
19-
# Major updates are still managed, but they'll create one PR per
20-
# dependency, as major updates are expected to be breaking, it is better to
21-
# manage them individually.
16+
# We group patch updates as they should always work.
17+
# We also group minor updates, as it works too for most libraries,
18+
# typically except libraries that don't have a stable release yet (v0.x.x
19+
# branch), so we make some exceptions for them.
20+
# Major updates and dependencies excluded by the above groups are still
21+
# managed, but they'll create one PR per dependency, as breakage is
22+
# expected, so it might need manual intervention.
23+
# Finally, we group some dependencies that are related to each other, and
24+
# usually need to be updated together.
2225
groups:
23-
required:
24-
dependency-type: "production"
26+
patch:
2527
update-types:
26-
- "minor"
2728
- "patch"
28-
optional:
29-
dependency-type: "development"
29+
exclude-patterns:
30+
# pydoclint has shipped breaking changes in patch updates often
31+
- "pydoclint"
32+
minor:
3033
update-types:
3134
- "minor"
32-
- "patch"
35+
exclude-patterns:
36+
- "async-solipsism"
37+
- "frequenz-api-common"
38+
- "frequenz-repo-config*"
39+
- "markdown-callouts"
40+
- "mkdocs-gen-files"
41+
- "mkdocs-literate-nav"
42+
- "mkdocstrings*"
43+
- "pydoclint"
44+
- "pytest-asyncio"
45+
# We group repo-config updates as it uses optional dependencies that are
46+
# considered different dependencies otherwise, and will create one PR for
47+
# each if we don't group them.
48+
repo-config:
49+
patterns:
50+
- "frequenz-repo-config*"
51+
mkdocstrings:
52+
patterns:
53+
- "mkdocstrings*"
3354

3455
- package-ecosystem: "github-actions"
3556
directory: "/"

tests_golden/integration/test_cookiecutter_generation/app/frequenz-app-test/.github/dependabot.yml

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,43 @@ updates:
1313
versioning-strategy: auto
1414
# Allow up to 10 open pull requests for updates to dependency versions
1515
open-pull-requests-limit: 10
16-
# We group production and development ("optional" in the context of
17-
# pyproject.toml) dependency updates when they are patch and minor updates,
18-
# so we end up with less PRs being generated.
19-
# Major updates are still managed, but they'll create one PR per
20-
# dependency, as major updates are expected to be breaking, it is better to
21-
# manage them individually.
16+
# We group patch updates as they should always work.
17+
# We also group minor updates, as it works too for most libraries,
18+
# typically except libraries that don't have a stable release yet (v0.x.x
19+
# branch), so we make some exceptions for them.
20+
# Major updates and dependencies excluded by the above groups are still
21+
# managed, but they'll create one PR per dependency, as breakage is
22+
# expected, so it might need manual intervention.
23+
# Finally, we group some dependencies that are related to each other, and
24+
# usually need to be updated together.
2225
groups:
23-
required:
24-
dependency-type: "production"
26+
patch:
2527
update-types:
26-
- "minor"
2728
- "patch"
28-
optional:
29-
dependency-type: "development"
29+
exclude-patterns:
30+
# pydoclint has shipped breaking changes in patch updates often
31+
- "pydoclint"
32+
minor:
3033
update-types:
3134
- "minor"
32-
- "patch"
35+
exclude-patterns:
36+
- "async-solipsism"
37+
- "frequenz-repo-config*"
38+
- "markdown-callouts"
39+
- "mkdocs-gen-files"
40+
- "mkdocs-literate-nav"
41+
- "mkdocstrings*"
42+
- "pydoclint"
43+
- "pytest-asyncio"
44+
# We group repo-config updates as it uses optional dependencies that are
45+
# considered different dependencies otherwise, and will create one PR for
46+
# each if we don't group them.
47+
repo-config:
48+
patterns:
49+
- "frequenz-repo-config*"
50+
mkdocstrings:
51+
patterns:
52+
- "mkdocstrings*"
3353

3454
- package-ecosystem: "github-actions"
3555
directory: "/"

tests_golden/integration/test_cookiecutter_generation/lib/frequenz-test-python/.github/dependabot.yml

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,43 @@ updates:
1313
versioning-strategy: auto
1414
# Allow up to 10 open pull requests for updates to dependency versions
1515
open-pull-requests-limit: 10
16-
# We group production and development ("optional" in the context of
17-
# pyproject.toml) dependency updates when they are patch and minor updates,
18-
# so we end up with less PRs being generated.
19-
# Major updates are still managed, but they'll create one PR per
20-
# dependency, as major updates are expected to be breaking, it is better to
21-
# manage them individually.
16+
# We group patch updates as they should always work.
17+
# We also group minor updates, as it works too for most libraries,
18+
# typically except libraries that don't have a stable release yet (v0.x.x
19+
# branch), so we make some exceptions for them.
20+
# Major updates and dependencies excluded by the above groups are still
21+
# managed, but they'll create one PR per dependency, as breakage is
22+
# expected, so it might need manual intervention.
23+
# Finally, we group some dependencies that are related to each other, and
24+
# usually need to be updated together.
2225
groups:
23-
required:
24-
dependency-type: "production"
26+
patch:
2527
update-types:
26-
- "minor"
2728
- "patch"
28-
optional:
29-
dependency-type: "development"
29+
exclude-patterns:
30+
# pydoclint has shipped breaking changes in patch updates often
31+
- "pydoclint"
32+
minor:
3033
update-types:
3134
- "minor"
32-
- "patch"
35+
exclude-patterns:
36+
- "async-solipsism"
37+
- "frequenz-repo-config*"
38+
- "markdown-callouts"
39+
- "mkdocs-gen-files"
40+
- "mkdocs-literate-nav"
41+
- "mkdocstrings*"
42+
- "pydoclint"
43+
- "pytest-asyncio"
44+
# We group repo-config updates as it uses optional dependencies that are
45+
# considered different dependencies otherwise, and will create one PR for
46+
# each if we don't group them.
47+
repo-config:
48+
patterns:
49+
- "frequenz-repo-config*"
50+
mkdocstrings:
51+
patterns:
52+
- "mkdocstrings*"
3353

3454
- package-ecosystem: "github-actions"
3555
directory: "/"

tests_golden/integration/test_cookiecutter_generation/model/frequenz-model-test/.github/dependabot.yml

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,43 @@ updates:
1313
versioning-strategy: auto
1414
# Allow up to 10 open pull requests for updates to dependency versions
1515
open-pull-requests-limit: 10
16-
# We group production and development ("optional" in the context of
17-
# pyproject.toml) dependency updates when they are patch and minor updates,
18-
# so we end up with less PRs being generated.
19-
# Major updates are still managed, but they'll create one PR per
20-
# dependency, as major updates are expected to be breaking, it is better to
21-
# manage them individually.
16+
# We group patch updates as they should always work.
17+
# We also group minor updates, as it works too for most libraries,
18+
# typically except libraries that don't have a stable release yet (v0.x.x
19+
# branch), so we make some exceptions for them.
20+
# Major updates and dependencies excluded by the above groups are still
21+
# managed, but they'll create one PR per dependency, as breakage is
22+
# expected, so it might need manual intervention.
23+
# Finally, we group some dependencies that are related to each other, and
24+
# usually need to be updated together.
2225
groups:
23-
required:
24-
dependency-type: "production"
26+
patch:
2527
update-types:
26-
- "minor"
2728
- "patch"
28-
optional:
29-
dependency-type: "development"
29+
exclude-patterns:
30+
# pydoclint has shipped breaking changes in patch updates often
31+
- "pydoclint"
32+
minor:
3033
update-types:
3134
- "minor"
32-
- "patch"
35+
exclude-patterns:
36+
- "async-solipsism"
37+
- "frequenz-repo-config*"
38+
- "markdown-callouts"
39+
- "mkdocs-gen-files"
40+
- "mkdocs-literate-nav"
41+
- "mkdocstrings*"
42+
- "pydoclint"
43+
- "pytest-asyncio"
44+
# We group repo-config updates as it uses optional dependencies that are
45+
# considered different dependencies otherwise, and will create one PR for
46+
# each if we don't group them.
47+
repo-config:
48+
patterns:
49+
- "frequenz-repo-config*"
50+
mkdocstrings:
51+
patterns:
52+
- "mkdocstrings*"
3353

3454
- package-ecosystem: "github-actions"
3555
directory: "/"

0 commit comments

Comments
 (0)