summaryrefslogtreecommitdiffstats
path: root/src/tools/cargo/.github/renovate.json5
blob: ca9c2a81319cef178f1b4ddf15ca737e9536e54d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
{
  schedule: [
    'before 5am on the first day of the month',
  ],
  semanticCommits: 'enabled',
  configMigration: true,
  dependencyDashboard: false,
  ignorePaths: [
    '**/tests/**',
  ],
  customManagers: [
    {
      customType: 'regex',
      fileMatch: [
        'Cargo.toml$',
      ],
      matchStrings: [
        '\bMSRV:1\b.*?(?<currentValue>\\d+\\.\\d+(\\.\\d+)?)',
        '(?<currentValue>\\d+\\.\\d+(\\.\\d+)?).*?\bMSRV:1\b',
      ],
      depNameTemplate: 'MSRV:1',  // Support 1 version of rustc
      packageNameTemplate: 'rust-lang/rust',
      datasourceTemplate: 'github-releases',
    },
    {
      customType: 'regex',
      fileMatch: [
        'Cargo.toml$',
      ],
      matchStrings: [
        '\bMSRV:3\b.*?(?<currentValue>\\d+\\.\\d+(\\.\\d+)?)',
        '(?<currentValue>\\d+\\.\\d+(\\.\\d+)?).*?\bMSRV:3\b',
      ],
      depNameTemplate: 'MSRV:3',  // Support 3 versions of rustc
      packageNameTemplate: 'rust-lang/rust',
      datasourceTemplate: 'github-releases',
    },
  ],
  packageRules: [
    {
      commitMessageTopic: 'MSRV (1 version)',
      matchManagers: [
        'custom.regex',
      ],
      matchPackageNames: [
        'MSRV:1',
      ],
      schedule: [
        '* * * * *',
      ],
      groupName: 'msrv',
    },
    {
      commitMessageTopic: 'MSRV (3 versions)',
      matchManagers: [
        'custom.regex',
      ],
      matchPackageNames: [
        'MSRV:3',
      ],
      extractVersion: '^(?<version>\\d+\\.\\d+)',  // Drop the patch version
      schedule: [
        '* * * * *',
      ],
      minimumReleaseAge: '85 days',  // 2 releases back * 6 weeks per release * 7 days per week + 1
      internalChecksFilter: 'strict',
      groupName: 'msrv',
    },
    {
      matchManagers: [
        'cargo',
      ],
      matchPackageNames: [
        'gix-features-for-configuration-only',
        'gix',
      ],
      groupName: 'gix',
    },
    // Goals:
    // - Rollup safe upgrades to reduce CI runner load
    // - Have lockfile and manifest in-sync (implicit rules)
    {
      matchManagers: [
        'cargo',
      ],
      matchCurrentVersion: '>=0.1.0',
      matchUpdateTypes: [
        'patch',
      ],
      automerge: false,
      groupName: 'compatible',
    },
    {
      matchManagers: [
        'cargo',
      ],
      matchCurrentVersion: '>=1.0.0',
      matchUpdateTypes: [
        'minor',
      ],
      automerge: false,
      groupName: 'compatible',
    },
  ],
}