Skip to content

fix(composer): declare ext-xsl so dependabot can resolve - #533

Merged
rubenvdlinde merged 1 commit into
developmentfrom
fix/composer-declare-ext-xsl
Aug 31, 2026
Merged

fix(composer): declare ext-xsl so dependabot can resolve#533
rubenvdlinde merged 1 commit into
developmentfrom
fix/composer-declare-ext-xsl

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

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. Install or enable PHP's xsl extension.

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 and that is why this went unnoticed. composer install replays the committed composer.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.

The fix

One line: declare ext-xsl beside the php pin, 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 phpqa is left in place — it is deliberately configured here (phpqa.yml, .phpqa.yml, and the phpqa / phpqa:full / phpqa:ci / qa:check / qa:full scripts), so it is a tool someone chose rather than dead weight.

Verification

Measured in a clean composer:2 container, without --ignore-platform-reqs:

result
before Your requirements could not be resolved (ext-xsl missing)
after exit 0Lock file operations: 103 installs, lock written

The 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/phpqa with no ext-xsl in config.platform.

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.
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/thematiq @ ea9716a

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
check-manifest
test-l10n
format
composer ✅ 104/104
npm ✅ 2/2
app:check-code ⏭️
info.xml
REUSE
PHPUnit
Newman
Playwright 🚨 NO VERDICT — enabled but never ran
Hydra gates

Quality workflow — 2026-08-31 10:31 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit 1404ccc into development Aug 31, 2026
45 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant