mix php.drift (ElixirPhpEmailValidator v1.0.0)

Copy Markdown View Source

Fetches ext/filter/logical_filters.c from php-src for one or more refs, re-extracts the two regex literals, and compares their SHA-256 against the copies vendored in priv/php/. The comparison uses the full literal (/pattern/flags), so a change to either the pattern or the inline flags (/iD/iDu, etc.) is caught — both affect filter_var behaviour.

This is the early-warning system for "did filter_var change?". Run it on a schedule in CI (see .github/workflows/drift.yml); if PHP ever edits the regex in a supported release branch, this task exits non-zero so maintainers know immediately and can re-vet + mix php.extract.

mix php.drift                       # checks the supported release branches
mix php.drift PHP-8.5 master        # check specific refs
mix php.drift php-8.4.4             # check a specific release tag

Like mix php.extract and mix php.golden, this is a maintainer task: run it from a checkout of this repository (it reads the vendored priv/php/*.full files relative to the working directory, and needs network access to reach php-src). The scheduled drift.yml CI job runs it for you weekly.