title: phpboyscout/cicd v0.11.4 — bump default Renovate image to 43
description: renovate-self defaults image_version: "38", but the bundled preset (default.json5) uses managerFilePatterns in its custom managers — a field Renovate only added in 39 (replacing fileMatch). On the default image, Renovate rejects the config ("Custom Manager contains disallowed fields: managerFilePatterns") and STOPS opening MRs. Bump the default to the current major, 43.
status: approved
date: 2026-06-22
authors: [Matt Cockayne]
tags: [spec, cicd, components, renovate]
Spec: phpboyscout/cicd v0.11.4 — default Renovate image → 43¶
- Repository:
gitlab.com/phpboyscout/cicd - Released as:
v0.11.4(patch — afix: the default image no longer parses the preset this same repo ships). - Driver: surfaced on
rust-tool-base, which uses the component default (noimage_versionoverride). Renovate authenticated fine (after the v0.10.7 token fix) but raised a GitLab "Action Required: Fix Renovate Configuration" issue and stopped creating MRs:Custom Manager contains disallowed fields: managerFilePatterns, Invalid configuration option: customManagers[0].managerFilePatterns.
Problem¶
The bundled preset default.json5 declares its cicd-pin tracker as a
regex custom manager keyed on managerFilePatterns. That field was
introduced in Renovate 39 as the rename of fileMatch (which is
removed entirely in Renovate 40). The renovate-self component, however,
defaults image_version: "38". So a consumer on the defaults runs
Renovate 38 against a preset written in 39+ syntax — Renovate fails
config validation and, per its own safety behaviour, stops opening
MRs until the config is "fixed". This is an internal inconsistency in
this repo: the preset assumes >= 39, the component ships 38. It affects
every consumer on the default image.
Decision¶
D1 — Bump the renovate-self image_version default "38" → "43"¶
43 is the current Renovate major (43.234.1, released 2026-06-22). It
parses managerFilePatterns natively, so the bundled preset and any
consumer customManagers using the modern field validate cleanly and MR
creation resumes.
Picking the current major (not just the minimum 39) avoids shipping a
default that is already five majors stale and keeps consumers on a
supported Renovate line; the convention remains "track Renovate's release
line via a bare major", and consumers may still override image_version
(e.g. to pin 43.234 or float latest).
D2 — Document the floor in the input description¶
The image_version description now states the >= 39 requirement and
why (preset uses managerFilePatterns), so a consumer who overrides
downward gets a documented reason not to drop below 39.
D3 — Self-test unaffected¶
tests/renovate-self/.gitlab-ci.yml exercises the failure path with
a dummy token against a non-existent project and tolerates Renovate exit
codes 1 (config/fatal) and 78. It does not override image_version,
so it now runs Renovate 43; the dummy token still yields a 401 → exit 1.
No self-test change required.
D4 — Versioning¶
A non-breaking default change → v0.11.4 (patch). releaser-pleaser owns
the exact number and the CHANGELOG; this spec proposes the bump and the
conventional commit (fix(renovate-self): …) drives it.
Follow-up¶
- Re-pin
rust-tool-baseto@v0.11.4(the seven cicd component pins in its.gitlab-ci.yml) so its scheduled Renovate run picks up the new default and clears the "Action Required" issue. Noimage_versionoverride needed on the consumer side once the default is 43. - Audit other consumers on the default image (gtb, etc.) — they get the fix on the same pin bump.
- The
image_versiondefault will drift as Renovate releases majors; Renovate itself bumps the pin via the preset's own manager once the floor (>= 39) is satisfied, so this should self-maintain afterwards.