Repository navigation
fix: resolve PHP 8.2 permission cache and font-dependent PHPUnit failures - #3684
Merged
Merged
Conversation
…ures Closes #3683. Co-Authored-By: Extra Chill Bot (AI) <bot@extrachill.com>
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.
Closes #3683. These were the last two CI-only failures left after the #3649 smoke repairs.
1.
job-artifact-hashable: PHP 8.2 stat cachePHP 8.2.35, the version CI uses, keeps returning the old
fileperms()mode afterrename()/chmod(). 8.4 and 8.5 return the updated mode. As a result,FilesystemHelper::make_group_writable()made its permission and owner decisions against stale metadata, and anyone reading the mode right afterwards saw the old one. That covers the shared-group artifact filesJobArtifacts::write_atomic_file()produces.make_group_writable()now callsclearstatcache( true, $filepath )before checking, and again afterchmod().tests/filesystem-permission-cache-smoke.phpcatches this. It fails against the previous helper on PHP 8.2.2. PHPUnit (shard 2, 1 failure out of 517)
The failing test was
StackTemplateTest::test_list_item_colors_render_without_leaking_to_other_items. The Playground environment doesn't have the font that test needs. The test now skips when its body and heading fonts aren't readable, which is howGDRendererGlyphFallbackTestandPosterTemplateQrHeroTestalready handle missing fonts. When the fonts are present, every pixel assertion still runs.Verification
mainplus this patch with the CI environment, all 372 standalone smokes and both audits pass.AI disclosure: Homeboy cook
agent-task-9873a726(Pi, gpt-6.1-sol) produced the change. Homeboy's promotion step failed ("Lab gate transport did not produce verified passing evidence"), so Claude (Extra Chill Bot) re-ran the gate on the controller and finalized the PR outside Homeboy.