Conversation
There was a problem hiding this comment.
Pull request overview
This PR attempts to update the DDEV local development environment to use newer versions of PHP and Node.js, citing end-of-life concerns for PHP 8.1 and Node.js 18. However, the versions specified (PHP 8.5 and Node.js 24) do not exist yet as of January 2025. The PR also adds PHP 8.5 to the CI workflow matrix, which contradicts the stated intent of affecting local development only.
Changes:
- Updated
php_versionin.ddev/config.yamlfrom 8.1 to 8.5 - Updated
nodejs_versionin.ddev/config.yamlfrom 18 to 24 - Added PHP 8.5 to the CI workflow test matrix
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| .ddev/config.yaml | Updates PHP version to 8.5 and Node.js version to 24 for DDEV local development environment |
| .github/workflows/main.yaml | Adds PHP 8.5 to the CI test matrix |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - '8.2' | ||
| - '8.3' | ||
| - '8.4' | ||
| - '8.5' |
There was a problem hiding this comment.
This change to the CI workflow contradicts the PR description, which explicitly states "Local development only, does not affect CI or project PHP minimum". Adding PHP 8.5 to the CI test matrix affects CI and should either be removed from this PR or the PR description should be updated to reflect this change.
15387d2 to
437cd12
Compare
## Summary Upgrade league/flysystem from abandoned v1 (EOL since 2022) to v3. The upstream `phpdocumentor/guides` already supports flysystem v3 via its `FileSystem` interface shim. ### Dependency changes - `league/flysystem`: `^1.1.10` → `^3.29` (resolved: 3.32.0) - `league/flysystem-local`: new transitive dependency (3.31.0) - `phpdocumentor/flyfinder`: 1.1.0 → 2.0.0 (flysystem v3 compatible) ### Code changes | File | Change | |------|--------| | `CopyResources.php` | `Adapter\Local` → `LocalFilesystemAdapter`, `FilesystemException` try/catch/finally for both `readStream()` and `putStream()` with proper stream cleanup | | `TwigExtension.php` | `League\Flysystem\Exception` → `League\Flysystem\FilesystemException` | | `IncludeDirective.php` | Removed 3 `@throws FileNotFoundException` docblocks (class removed in v3) | | `SiteSetSettingsDirective.php` | Removed 1 `@throws FileNotFoundException` docblock | | Integration test logs | Updated expected error messages: "Path is outside of the defined root" → "Path traversal detected" | ### Error handling In v3, `readStream()` throws `UnableToReadFile` and `writeStream()` throws `UnableToWriteFile` instead of returning false. A `try/catch(FilesystemException)` block wraps both read and write operations with a `finally` clause to ensure `fclose()` on the stream. Individual file failures are logged and skipped — a single unreadable/unwritable file will not abort the entire resource copy loop. ### Compatibility The phpdocumentor `FileSystem` interface shim (`phpdocumentor/filesystem`) provides backward compatibility. The `FilesystemInterface` union type in `IncludeDirective` is preserved since the shim provides a polyfill for the v1 interface. ## Test plan - [x] PHPStan passes (0 errors) - [x] Unit tests pass (83/83) - [x] Integration tests pass (113/113) - [x] CI green Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
- Raise minimum PHP version from 8.1 to 8.2 across the project - Update composer.json: php ^8.2, platform 8.2.28, replace polyfill-php82 - Update all sub-packages to require php ^8.2 - Add missing ext-* declarations to sub-packages: - typo3-docs-theme: add ext-dom (uses DOMDocument) - typo3-guides-cli: add ext-simplexml (uses SimpleXMLElement) - typo3-version-handling: add ext-curl (uses curl_* functions) - Update PHPStan target version to 80200 - Update PHP-CS-Fixer migration ruleset to @PHP82Migration - Remove PHP 8.1 from CI test matrix, set default to 8.2 - Update Dockerfile base image to php:8.2-cli-alpine - Update DDEV to PHP 8.2 and Node.js 20 Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
437cd12 to
fc5064a
Compare
Summary
php_versionfrom 8.1 (EOL Dec 2025) to 8.5 in.ddev/config.yamlnodejs_versionfrom 18 (EOL Apr 2025) to 24 (active LTS)Test plan
ddev startsucceeds with PHP 8.5ddev npm-buildworks with Node.js 24