feat: add docker environment to run the checks locally - #57
Merged
Conversation
Signed-off-by: YvesCesar <yvesamorim73@gmail.com>
vitormattos
requested changes
Aug 28, 2026
Co-authored-by: Vitor Mattos <vitor@php.rio>
Signed-off-by: YvesCesar <yvesamorim73@gmail.com>
…values Signed-off-by: YvesCesar <yvesamorim73@gmail.com>
Signed-off-by: YvesCesar <yvesamorim73@gmail.com>
Signed-off-by: YvesCesar <yvesamorim73@gmail.com>
vitormattos
approved these changes
Aug 31, 2026
vitormattos
approved these changes
Aug 31, 2026
vitormattos
left a comment
Contributor
There was a problem hiding this comment.
I approved the PR but send only a small suggestion that don't block the merge.
Fell free to choose what you prefer to do.
Co-authored-by: Vitor Mattos <vitor@php.rio>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Running the checks locally depends on the host's PHP and OpenSSL, and on distributions where those differ from CI the suite fails for reasons that have nothing to do with the library. On Fedora 44 (PHP 8.5.9, OpenSSL 3.5.7) none of the three checks behave like they do on CI:
composer run test:unitfails with 6 errors and 2 failures, all of themsetCertificate(): Argument #1 must be of type string, null given. The test helper callsopenssl_csr_sign()withoutdigest_alg, so PHP signs the generated certificate with SHA-1, and the distribution's crypto policy rejects it (rh-allow-sha1-signatures = no,error:03000098 ... invalid digest). The certificate comes backnull. This affects Fedora and RHEL 9+ by default.composer run psalmdoes not run at all. Psalm 6.5.0 turns PHP 8.5'sSplObjectStorage::attach()deprecation into an uncaughtThrowableand crashes before analysing anything. Silencing deprecations does not help, since the crash comes from Psalm's own error handler.example/index.phpdies with a fatal error, becausePharDataexceeds the default 128M memory limit just to open the JRE tarball. The fatal skips thecatch, so the temporary.pfxis left behind with its private key.