fix(tests): parse info.xml from a string, and format the connection registry files - #644
Merged
Merged
Conversation
…egistry files simplexml_load_file() returns false under the Nextcloud bootstrap, because lib/base.php installs a libxml external entity loader that returns null and that resolver also handles the primary document. Reading the bytes and parsing a string never touches it. Also runs prettier over the files the connection registry wave merged unformatted, so the Frontend Check (format) job passes.
rubenvdlinde
requested review from
SudoThijn,
WilcoLouwerse,
bbrands02,
remko48 and
rjzondervan
as code owners
September 16, 2026 06:38
Contributor
Quality Report — ConductionNL/launchpad @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| format | ✅ | ||||
| check-schema-l10n | ✅ | ||||
| composer | ✅ | ✅ 104/104 | |||
| npm | ✅ | ✅ 534/534 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| lockfile sync | ✅ | ||||
| PHPUnit | ❌ | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it on any branch from the Actions tab, or locally with npx playwright test. |
||||
| Hydra gates | ✅ |
Quality workflow — 2026-09-16 06:59 UTC
Download the full PDF report from the workflow artifacts.
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.
What this changes
Two things, both needed to get Code Quality closer to green on development.
The info.xml test could not pass in CI. It called
simplexml_load_file(). Under the Nextcloud bootstrap,lib/base.phpinstalls a libxml external entity loader that returns null, and that resolver also handles the primary document, so the call returns false for a perfectly well formed manifest and the test reports "Failed asserting that false is not false". Reading the bytes withfile_get_contents()and parsing a string never goes through that loader. A short comment at the site says why, so nobody reverts it.Prettier. The connection registry wave merged some files unformatted, so
Frontend Check (format)failed. Prettier 3.9.6 is pinned, so this is unformatted code and not tooling drift.Verified locally
npm run formatpasses,npm run lintreports 0 errors (its warnings are inherited debt and are untouched)simplexml_load_file()returns false on the realappinfo/info.xmlwhilesimplexml_load_string()parses itA local PHPUnit green does not by itself prove the CI failure is gone, because the local bootstrap does not load
base.php. The reproduction above is the evidence.🤖 Generated with Claude Code