fix(composer): declare ext-xsl so dependabot can resolve - #884
Merged
Conversation
Dependabot cannot propose composer updates for this app. Its updater fails
with:
Your requirements could not be resolved to an installable set of packages.
- edgedesign/phpqa[v1.27.0, ..., v1.27.2] require ext-xsl * ->
it is missing from your system.
config.platform pins php 8.3 so composer resolves against a known PHP version,
but says nothing about extensions. edgedesign/phpqa requires ext-xsl and the
resolving environment does not have it, so the resolve fails before any bump
can be computed.
CI is unaffected, which is why this went unnoticed: composer install replays
the committed lock and never re-resolves, so the pipeline stays green while
dependabot -- which does re-resolve -- fails every time. The shared quality.yml
installs no xsl extension anywhere and never invokes phpqa.
Declaring ext-xsl beside the php pin makes resolution assume exactly what the
committed lockfile already assumes. Verified in a clean composer:2 container
without --ignore-platform-reqs: the same file fails without this line and
resolves (103 installs, lock written) with it.
Contributor
Quality Report — ConductionNL/stackiq @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-vue-demi | ✅ | ||||
| test-l10n | ✅ | ||||
| format | ✅ | ||||
| check-schema-l10n | ✅ | ||||
| check-l10n-js | ✅ | ||||
| composer | ✅ | ✅ 130/130 | |||
| npm | ✅ | ✅ 711/711 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| PHPUnit | ✅ | ||||
| Newman | ⏭️ | ||||
| Playwright | 🚨 NO VERDICT — enabled but never ran | ||||
| Hydra gates | ✅ |
Quality workflow — 2026-08-31 10:42 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.
Dependabot cannot propose composer updates for this app. Its updater fails with:
config.platformpins"php": "8.3"so composer resolves against a known PHP version, but says nothing about extensions.edgedesign/phpqarequiresext-xsl, and the resolving environment does not have it — so the resolve fails before any bump can be computed.CI is unaffected and that is why this went unnoticed.
composer installreplays the committedcomposer.lockand never re-resolves, so the pipeline stays green while Dependabot — which does re-resolve — fails every time. The sharedquality.ymlinstalls noxslextension anywhere, and never invokes phpqa.The fix
One line: declare
ext-xslbeside thephppin, so resolution assumes exactly what the committed lockfile already assumes."platform": { - "php": "8.3" + "php": "8.3", + "ext-xsl": "1" }No runtime behaviour changes, no CI behaviour changes, and
phpqais left in place — it is deliberately configured here (phpqa.yml,.phpqa.yml, and thephpqa/phpqa:full/phpqa:ci/qa:check/qa:fullscripts), so it is a tool someone chose rather than dead weight.Verification
Measured in a clean
composer:2container, without--ignore-platform-reqs:Your requirements could not be resolved(ext-xsl missing)exit 0—Lock file operations: 103 installs, lock writtenThe same file fails without the line and succeeds with it, so the check would still fail if the fix were wrong.
Part of a fleet-wide sweep: 18 apps carry
edgedesign/phpqawith noext-xslinconfig.platform.