Skip to content

chore: widen dependencies to support latest packages (2026-03-24)#17

Open
zakhar-huzenko wants to merge 8 commits intodevelopfrom
cursor/latest-dependency-support-f0fa
Open

chore: widen dependencies to support latest packages (2026-03-24)#17
zakhar-huzenko wants to merge 8 commits intodevelopfrom
cursor/latest-dependency-support-f0fa

Conversation

@zakhar-huzenko
Copy link
Contributor

@zakhar-huzenko zakhar-huzenko commented Mar 24, 2026

Summary

Widen Composer constraints for Symfony 8, Doctrine ORM 3, and Behat 4.x (dev branch), keep the public API unchanged, and add internal compatibility for Doctrine ORM 2/3 and DBAL 2/4 in JSON field handling.

CI fixes

Lock / composer install exit 4

Matrix used composer require … --no-update then composer installlock/json mismatch (exit 4). Fix: composer require … -W.

Behat + Symfony major

Pin console, event-dispatcher, translation, yaml with config, dependency-injection, http-kernel.

config.platform.php vs matrix PHP

composer.json pins platform.php 7.4.33 for the default lock. composer require in CI still honored that platform, so Symfony 6+/7+/8 and Behat 4 saw PHP 7.4 and failed.

Fix: run composer config --unset platform.php at the start of the install step so the solver uses the job’s real PHP version.

Symfony 8: XmlFileLoader removed

Symfony 8 no longer ships XmlFileLoader in symfony/dependency-injection. Fix: when XmlFileLoader is missing, load orm_context.yaml via YamlFileLoader; keep orm_context.xml for older Symfony. Added explicit symfony/yaml in require (aligned with other Symfony components).

PHP 8.4 Symfony 8 job (PHPUnit)

  • BehatOrmContextExtensionTest: assert ORMContext::class (typo fix).
  • ORMContextTest: Doctrine ORM 2.7+ marks Query as final — PHPUnit cannot mock it on lowest installs. Fix: mock AbstractQuery instead.

Validation

  • Local composer dev-checks on default lock — pass
  • composer update --prefer-lowest + composer phpunit — pass
  • Simulated CI: unset platform + composer require Symfony 8.0.* + Behat 4.x-dev on PHP 8.4 — pass

CI

  • actions/checkout@v4
Open in Web Open in Cursor 

cursoragent and others added 8 commits March 24, 2026 17:44
…k file

- Allow behat/behat ^3 || 4.x-dev for Symfony 8 prep (lock pins stable 3.x)
- Widen symfony/* to ^8.0 and doctrine/orm to ^2 || ^3
- Bump dev tools (phpstan 2, phpunit 11, slevomat 8, rector, roave/bcc)
- Track composer.lock for reproducible installs

Co-authored-by: Zakhar <zahar.guzenko@gmail.com>
…d queries

- Read field type from array or FieldMapping object
- Detect PostgreSQL/MySQL via instanceof when available, else platform name
- Update PHPUnit tests for ORM 3 types, PHPUnit 11, DBAL platform class names

Co-authored-by: Zakhar <zahar.guzenko@gmail.com>
- Makefile targets for phpunit, cs-fix, rector, bc-check
- Composer scripts for rector and roave BC check
- CI: test symfony 8.0.* on PHP 8.2+; cache key includes composer.lock
- Document lock file and new commands in AGENTS.md

Co-authored-by: Zakhar <zahar.guzenko@gmail.com>
- Widen require-dev (phpunit/phpstan/rector/slevomat) for PHP 7.4 solver; drop roave/bcc (needs PHP 8+)
- Pin config.platform.php 7.4.33 and regenerate composer.lock (PHPUnit 9, Behat 3.15, Symfony 5.4)
- PHPUnit 9: docblock data providers, phpunit.xml for 9.3 schema, remove mixed in closures
- scripts/run-phpunit.sh: optional PHPUnit 11 warning/deprecation flags
- ORMContext: DBAL platform detection via instanceof only (PHPStan + DBAL 3/4)
- Workflows: checkout@v4; static-analysis/security use PHP 8.3 for dev tools

Co-authored-by: Zakhar <zahar.guzenko@gmail.com>
…fony 8 on PHP 8.4

- Replace require --no-update + install (exit 4: lock/json mismatch) with composer require -W
- Pin console, event-dispatcher, translation, yaml to same matrix version as config/di/http-kernel
- Symfony 8.0.*: require behat 4.x-dev, run only on PHP 8.4 (Symfony 8 needs PHP >=8.4; Behat 3 caps Symfony 7)

Co-authored-by: Zakhar <zahar.guzenko@gmail.com>
Committed platform.php 7.4.33 is for the default lock; CI must solve against
the job's real PHP version or Symfony 6+/7+/8 and Behat 4 falsely fail.

Co-authored-by: Zakhar <zahar.guzenko@gmail.com>
Symfony 8 removed XmlFileLoader; load YAML when XmlFileLoader is absent.
Declare symfony/yaml in require. Mock AbstractQuery instead of final Query
for Doctrine ORM 2.7+ with PHPUnit. Fix extension test class name assertion.

Co-authored-by: Zakhar <zahar.guzenko@gmail.com>
Co-authored-by: Zakhar <zahar.guzenko@gmail.com>
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