Fix release builds blocked by Composer security advisories - #339
Merged
TLabutis merged 1 commit intoJul 29, 2026
Merged
Conversation
Composer refuses to resolve dependencies that carry security advisories. Because composer.lock was gitignored, every pipeline resolved from scratch and hit that block, so release.yml, deploy.yml and create_zip.yml all failed at composer install with exit 2. No release could be built from any branch. Track composer.lock so pipelines install pinned versions instead of resolving, and record the advisory IDs of the intentionally pinned Symfony 3.4 / PHPUnit 7.5 dev stack so composer update stays usable locally.
Contributor
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
This was referenced Jul 29, 2026
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.
Problem
No release can currently be built, from any branch.
release.yml,deploy.ymlandcreate_zip.ymlall run the samecomposer install --no-devline, and it fails with exit 2:Two things combine to cause it:
composer.lockwas gitignored, so every pipeline resolved from scratch and hit that block on every run.--no-devdoes not avoid it, because dev requirements still participate in resolution even when they are not installed. The existingconfig.audit.ignoredoes not help either: it suppressescomposer auditoutput, not the resolver'spolicy.advisoriesblock.This is pre-existing and unrelated to the settings redesign.
masterhas the identicalcomposer.jsonand gitignored lock. The last four releases up to v2.0.3 (2026-06-25) all succeeded, so this broke after that, when Composer shipped advisory blocking, and no release has been cut since.Fix
composer.lock. With a lock present, pipelines install pinned versions and never resolve, so the advisory block does not apply. This is also correct for a module that shipsvendor/: releases become reproducible instead of resolving to whatever is newest at build time.config.policy.advisories.ignore-id. Without this, the lock could never be regenerated by a developer without a manual bypass. The affected packages are the deliberately pinned Symfony 3.4 / PHPUnit 7.5 dev stack, kept for PS 1.6/1.7 and PHP 7.1 compatibility, so ignoring these specific IDs is a recorded decision rather than a blanketpolicy.advisories.block: false.The lock was generated with Composer 2.10.2 against
config.platform.php: 7.1, so resolution targets the module's real PHP floor rather than the build machine's PHP.Verification
Every claim below was executed, not assumed.
1.
composer install --no-devfrom the lock, on Composer 2.10.2 (same generation as the runner) - exit 0, installssymfony/yaml v3.4.47without complaint. This is the load-bearing check: it confirms the block is on resolution, not installation.2.
composer update --no-installwith the ignore-ids, on Composer 2.10.2 - exit 0, reportingFound 6 ignored security vulnerability advisories affecting 3 packages. Confirms the lock stays regenerable.3. Full
create_zip.ymlrecipe end to end, from a clean clone of this branch (so no gitignored build output could leak in), node 20 / pnpm 9 for the app and Composer 2.10.2 for packaging:So the artifact now contains both the compiled settings app and a production
vendor/.Notes
composer.lockandcomposer.jsonnow ship inside the ZIP, since neither is in the packaging step'srm -rflist. Harmless, but it can be added there if you prefer a leaner artifact.symfony/yaml ^3.4sits inrequire, notrequire-dev, and carries three advisories. Symfony 3.4 has been EOL since November 2021, so production ships an unmaintained YAML parser. Bumping it touches thephp >=7.1floor and PS 1.6/1.7 compatibility, so it is a deliberate decision rather than part of a build fix.