Skip to content

The checkout@v4 Template Alignment Release

Choose a tag to compare

@wdolinar wdolinar released this 10 Aug 23:17
· 72 commits to master since this 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.4 before regenerating. Generated CI pins xmsconan==<version that generated it>, so regenerating from an unreleased working copy pins a version that is not on devpi and CI fails at pip install time (see 2.15.3 Migration and docs/USAGE.md §10.3).
  • Repos generated against 2.15.3 keep checkout@v2 until they are regenerated. This is cosmetic rather than breaking — checkout@v2 still 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@v4 is a drop-in replacement at the usage in these templates: a bare - uses: step, plus one fetch-depth: 0 in 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.