The checkout@v4 Template Alignment Release
Single fix to the generated GitHub CI files. Nothing in the 2.15.3 lint and toolchain-pinning flow changes, and the GitLab template is untouched.
What changed
1. Generated GitHub workflows check out with actions/checkout@v4
github-ci.yaml.jinja (5 occurrences) and github-coverage.yaml.jinja (1 occurrence) still emitted actions/checkout@v2. Every regeneration therefore pinned consuming repos to a deprecated action, and — worse — reverted any repo that had already moved forward.
gitlab-ci.yml.jinja has no checkout action and is unaffected.
Why
This surfaced during the suite-wide 2.15.3 rollout. xmsgrid had already been upgraded to actions/checkout@v4 by hand in b20fc15 ("Address PR #186 follow-up review issues"), a deliberate and reviewed change. Regenerating xmsgrid with 2.15.3 silently reverted it — the generated file is authoritative, so a hand-fix upstream of the template survives exactly until the next xmsconan ci.
xmsconan's own CI has run checkout@v4 for some time (.github/workflows/xmsconan-ci.yaml); only the templates it emits were left behind. This aligns them, so the fix lands once in the generator instead of being re-applied by hand in every consuming repo after every regeneration.
Migration
xms libraries pick this up by regenerating with xmsconan ci and committing the result.
- Install
xmsconan==2.15.4before regenerating. Generated CI pinsxmsconan==<version that generated it>, so regenerating from an unreleased working copy pins a version that is not on devpi and CI fails atpip installtime (see 2.15.3 Migration anddocs/USAGE.md§10.3). - Repos generated against 2.15.3 keep
checkout@v2until they are regenerated. This is cosmetic rather than breaking —checkout@v2still runs today — so it can ride along with a repo's next routine regeneration rather than forcing an immediate pass. - No expected behavior change.
actions/checkout@v4is a drop-in replacement at the usage in these templates: a bare- uses:step, plus onefetch-depth: 0in the coverage workflow, both supported identically in v4.
Verification
- 539 unit tests pass (5 skipped); flake8 clean with the CI plugin set.
- No test or golden file asserted the checkout version, so nothing else required updating. Worth noting as a gap: the template contracts pinned by tests in 2.15.3 (
test_ci_pins_conan_version,test_github_flake_job_uses_generated_flake8_config) have no counterpart for the checkout action, so this shape is not currently regression-protected.