Skip to content

Pin Mago to 1.59.0 in CI - #8

Merged
simon-mundy merged 1 commit into
php-db:0.1.xfrom
simon-mundy:ci/pin-mago-1.59
Nov 3, 2026
Merged

simon-mundy merged 1 commit into
php-db:0.1.xfrom
simon-mundy:ci/pin-mago-1.59

Conversation

@simon-mundy

@simon-mundy simon-mundy commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

Problem

The mago and mutation-test jobs install Mago with tools: mago, so setup-php fetches whatever release is latest. When Mago 1.59.0 shipped, php-db/phpdb's 0.6.x started failing CI with no code change: 1.59 reformats one file and reports findings that the committed baseline no longer matches. Every open PR that updates against 0.6.x inherits the failure, and the mutation-test job fails too because Infection runs mago analyze first.

Fix

  • New mago-version workflow input, defaulting to "1.59.0". Both jobs now install mago:${{ inputs.mago-version }} (setup-php supports a release tag for Mago).
  • mago.toml pins version = "1.59.0" instead of "1". A local binary with a different version only gets a warning, so local runs don't break.
  • docs/workflow-architecture.md documents the input.

Moving to a newer Mago becomes a deliberate change: bump the default here and in mago.toml, then fix any new findings in each consumer.

The workflow pin applies to every repo calling @0.1.x once this merges. The mago.toml pin reaches a repo when it next updates php-db/phpdb-qa-tools.

Companion fix for php-db/phpdb: php-db/phpdb#245

setup-php installed whatever Mago release was latest, so a new release
could fail every consumer's CI with no change on their side. 1.59.0
did exactly that to php-db/phpdb's 0.6.x.

The mago and mutation-test jobs now install the release named by a new
mago-version input, defaulting to 1.59.0. mago.toml pins the same
version, so a local binary that differs is flagged with a warning.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant