Skip to content

fix(deps): promote symfony/yaml to a production dependency#3543

Merged
marcelfolaron merged 1 commit into
masterfrom
fix/symfony-yaml-prod-dep
Jun 18, 2026
Merged

fix(deps): promote symfony/yaml to a production dependency#3543
marcelfolaron merged 1 commit into
masterfrom
fix/symfony-yaml-prod-dep

Conversation

@marcelfolaron

Copy link
Copy Markdown
Collaborator

Problem

symfony/yaml was never declared in composer.json — neither in require nor require-dev. It only existed in the environment as a transitive dev dependency of codeception/codeception (a require-dev package).

composer why symfony/yaml on master shows only Codeception requires it; everything else (symfony/routing, symfony/translation, roave/security-advisories) merely conflicts with old versions, which installs nothing. In composer.lock the package sat in the packages-dev array.

The result: a production composer install --no-dev ships without symfony/yaml, yet it is used at runtime in:

  • app/Domain/Blueprints/Services/TemplateRegistry.phpYaml::parseFile() on every blueprint/canvas template load
  • app/Core/Configuration/Environment.php — YAML config file in the boot config priority chain

So production throws Class "Symfony\Component\Yaml\Yaml" not found the moment a canvas is opened (and potentially at boot if a YAML config is present).

Fix

  • Add "symfony/yaml": "^7.2" to require (matching the other symfony 7 components, e.g. symfony/cache: ^7.2).
  • Regenerate composer.lock so the package (resolved at v7.4.13) moves from packages-dev into the production packages array.

No code changes needed — the usages were correct, only the dependency declaration was missing.

Verification

  • composer why symfony/yaml now lists leantime/leantime ... requires symfony/yaml (^7.2) as a direct requirer.
  • In composer.lock, the symfony/yaml entry is now before the packages-dev boundary (production packages).
  • composer install --no-dev --dry-run no longer lists symfony/yaml for removal — it stays installed.

🤖 Generated with Claude Code

symfony/yaml was never declared in composer.json. It was only present in
the environment as a transitive dev dependency of codeception/codeception
(require-dev), so a production `composer install --no-dev` shipped without
it -- while it is used at runtime in:

- app/Domain/Blueprints/Services/TemplateRegistry.php (Yaml::parseFile on
  every blueprint/canvas template load)
- app/Core/Configuration/Environment.php (YAML config file in the boot
  config priority chain)

Production therefore threw `Class "Symfony\Component\Yaml\Yaml" not found`
as soon as a canvas was opened. Add it to `require` (^7.2, matching the
other symfony 7 components) and regenerate the lock so it moves into the
production packages array.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@marcelfolaron marcelfolaron requested a review from a team as a code owner June 18, 2026 18:00
@marcelfolaron marcelfolaron requested review from broskees and Copilot and removed request for a team June 18, 2026 18:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Promotes symfony/yaml from a transitive dev-only dependency to an explicit production dependency so runtime YAML parsing (Symfony\Component\Yaml\Yaml) is available in --no-dev installs.

Changes:

  • Add symfony/yaml: ^7.2 to composer.json production require.
  • Regenerate composer.lock to move symfony/yaml from packages-dev into production packages (resolved to v7.4.13).

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
composer.json Declares symfony/yaml as a direct production dependency.
composer.lock Reflects the dependency promotion by relocating symfony/yaml into production packages and updating the content hash.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@marcelfolaron marcelfolaron merged commit 3634844 into master Jun 18, 2026
13 checks passed
@marcelfolaron marcelfolaron deleted the fix/symfony-yaml-prod-dep branch June 18, 2026 18:28
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.

2 participants