Repository navigation
Fix failing CI: Phan, PHPUnit and test matrix - #20
Conversation
- FandomImportManager: newSystemUser() can return null, throw (caught and logged) instead of passing null to setPerformer() - SpecialFandomImport: escape list items before commaList() rather than escaping its output, which taint-check flags as double escaping - UpgradeGroups: cast the cache directory to string for rtrim() - FandomImportPrepare: check json_decode() returned an array before indexing it - UpgradeWiki: read output buffers through a local with a default Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QMd95YdRQKdi4HkzoMBjHj
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
getReplicaDatabase() throws a plain RuntimeException rather than DBError when the database backend is disabled, as it is for PHPUnit tests outside the Database group. The ApiCheckCanExecute experiment tracker hook then broke AbuseFilter's API integration tests on REL1_46. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QMd95YdRQKdi4HkzoMBjHj
|
REL1_45 | PHP 8.4 fails at MediaWiki install, not in this PR's code: The workflow pulls those from miraheze Fixing it means dropping REL1_45 from the matrix (moving Generated by Claude Code |
CreateWiki, ManageWiki and ImportDump on main now require MediaWiki >= 1.46.0, so the REL1_45 job could no longer install. REL1_46 becomes the stable job and REL1_47 the alpha one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QMd95YdRQKdi4HkzoMBjHj
It's a no-op returning false in 1.47 and the deprecation warning failed CentralAuth's session provider tests on REL1_47. Check printable=yes on the request instead, which is what 1.46 sets printable mode from. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QMd95YdRQKdi4HkzoMBjHj
It loads on every page view, so core's PerformanceBudgetTest fails without a budget. It's about 1.5 kB gzipped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QMd95YdRQKdi4HkzoMBjHj
Fixes everything currently failing CI on
main.Phan / taint-check
User::newSystemUser()can return null; throw (caught and logged by the existingcatch) instead of passing null toManualLogEntry::setPerformer().commaList()instead ofhtmlspecialchars()-ing its output, which taint-check flags as double escaping (commaList()is annotated as escaped output).rtrim()(WikiOasisFunctionsis undeclared in CI so Phan can't infer its return type).json_decode()returned an array before indexing it.''default; behaviour unchanged.PHPUnit
getReplicaDatabase()throws a plainRuntimeException, notDBError, so the config-only fallback never kicked in and theApiCheckCanExecutetracker hook broke AbuseFilter's API integration tests on REL1_46. The replica lookup now falls back the same way.Test matrix
mainnow require MediaWiki >= 1.46.0, so REL1_45 can't install. REL1_46 is now the stable job, REL1_47 the alpha one, andextension.jsonrequires>= 1.46.0.🤖 Generated with Claude Code
https://claude.ai/code/session_01QMd95YdRQKdi4HkzoMBjHj
Summary by CodeRabbit