[FEATURE] Add support for TYPO3 v14.2 and drop support for TYPO3 v14.0#450
[FEATURE] Add support for TYPO3 v14.2 and drop support for TYPO3 v14.0#450eliashaeussler wants to merge 1 commit intomainfrom
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Use the checkbox below for a quick retry:
WalkthroughThis PR updates TYPO3 compatibility from 14.0 to 14.1 across CI, composer constraints, docs, and test baselines, and adds TYPO3-version-aware form-loading logic in InvokeFinishersListener with an accompanying test adjustment. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant Listener as InvokeFinishersListener
participant FPM as FormPersistenceManager
participant Config as YAML/FormSettings
participant Logic as VariantDetection
Listener->>Listener: determine TYPO3 major version
alt TYPO3 >= 14
Listener->>FPM: load(formPersistenceIdentifier)
FPM-->>Listener: formConfiguration
else TYPO3 < 14
Listener->>Config: getYamlConfiguration(formPersistenceIdentifier)
Config-->>Listener: formSettings
Listener->>FPM: load(formPersistenceIdentifier, formSettings)
FPM-->>Listener: formConfiguration
end
Listener->>Logic: inspect formConfiguration for finisher variants
Logic-->>Listener: hasVariants? true/false
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
022ca9a to
4a7f891
Compare
Pull Request Test Coverage Report for Build 21284685832Details
💛 - Coveralls |
4a7f891 to
1c05060
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@composer.json`:
- Around line 25-31: Update the TYPO3 package version constraints in
composer.json so they are satisfiable by replacing the unsupported `~14.1.0`
alternative with `~14.0.2` for the packages that don't have 14.1.0 releases;
specifically update the dependency entries for "typo3/cms-core",
"typo3/cms-extbase", "typo3/cms-form", "typo3/cms-frontend",
"typo3/cms-install", and any other TYPO3 packages currently listed as `~13.4.0
|| ~14.1.0` to `~13.4.0 || ~14.0.2` so composer can resolve them (leave packages
that already have 14.1.0 unchanged).
1c05060 to
726ae43
Compare
726ae43 to
f33d7ab
Compare
f33d7ab to
e792765
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
Classes/Event/Listener/InvokeFinishersListener.php (1)
46-56: Consider injectingTypo3Versionvia DI instead of constructing it directlyInstantiating
Core\Information\Typo3Versiondirectly in the constructor body couples the version check to the real runtime value and makes isolated unit-testing of the branching logic harder. TYPO3's DI container already registersTypo3Versionas a service.♻️ Suggested refactor
public function __construct( private Extbase\Configuration\ConfigurationManagerInterface $extbaseConfigurationManager, private Form\Mvc\Configuration\ConfigurationManagerInterface $formConfigurationManager, private Form\Mvc\Persistence\FormPersistenceManagerInterface $formPersistenceManager, private Compatibility\Migration\HmacHashMigration $hmacHashMigration, private Core\Domain\Repository\PageRepository $pageRepository, -) { - $this->typo3Version = new Core\Information\Typo3Version(); -} + private Core\Information\Typo3Version $typo3Version = new Core\Information\Typo3Version(), +) {}Or as a plain injected constructor parameter (PHP 8.1+ default-value-free):
public function __construct( ... private Core\Domain\Repository\PageRepository $pageRepository, + private Core\Information\Typo3Version $typo3Version, ) {}Remove the class-level
private Core\Information\Typo3Version $typo3Version;declaration in either case.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Classes/Event/Listener/InvokeFinishersListener.php` around lines 46 - 56, The constructor currently constructs Core\Information\Typo3Version directly which couples behavior and hinders testing; change it to accept a Typo3Version via DI by adding a constructor parameter (or use constructor property promotion) for Core\Information\Typo3Version and remove the manual new call in InvokeFinishersListener::__construct and the separate class-level instantiation of $typo3Version so the listener uses the injected $typo3Version property instead.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@composer.json`:
- Around line 70-71: The composer.json currently sets "minimum-stability": "dev"
and "prefer-stable": true as a temporary workaround for resolving "~14.1.1";
remove those two fields and update the dependency constraint from "~14.1.1" to
the stable target "~14.1.0" (or the intended stable constraint) so the package
no longer allows unstable dependencies; ensure composer.lock is regenerated
after the change to verify downstream consumers won't pick up dev packages.
- Around line 25-31: Update the TYPO3 14.1.x Composer constraints by replacing
"~14.1.1" with "~14.1.0" for all listed packages so the constraint includes the
v14.1.0 release; specifically change the entries in require for
typo3/cms-backend, typo3/cms-core, typo3/cms-extbase, typo3/cms-fluid,
typo3/cms-form, typo3/cms-frontend, typo3/cms-install, and mirror the same
replacement in require-dev for typo3/cms-dashboard, typo3/cms-filelist,
typo3/cms-fluid-styled-content, typo3/cms-lowlevel, typo3/cms-scheduler,
typo3/cms-tstemplate, and in suggest for typo3/cms-dashboard and
typo3/cms-scheduler.
---
Nitpick comments:
In `@Classes/Event/Listener/InvokeFinishersListener.php`:
- Around line 46-56: The constructor currently constructs
Core\Information\Typo3Version directly which couples behavior and hinders
testing; change it to accept a Typo3Version via DI by adding a constructor
parameter (or use constructor property promotion) for
Core\Information\Typo3Version and remove the manual new call in
InvokeFinishersListener::__construct and the separate class-level instantiation
of $typo3Version so the listener uses the injected $typo3Version property
instead.
| "minimum-stability": "dev", | ||
| "prefer-stable": true, |
There was a problem hiding this comment.
minimum-stability: dev + prefer-stable: true — pending TODO in PR description
The PR description explicitly flags these as needing removal before merge. They were added as a temporary workaround for resolving ~14.1.1 when only dev branches are available, and must be dropped before tagging the 4.1.0 release to avoid inadvertently pulling unstable packages for downstream consumers of this project's lockfile.
Would you like me to open a tracking issue for removing these fields once the constraint is updated to ~14.1.0?
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@composer.json` around lines 70 - 71, The composer.json currently sets
"minimum-stability": "dev" and "prefer-stable": true as a temporary workaround
for resolving "~14.1.1"; remove those two fields and update the dependency
constraint from "~14.1.1" to the stable target "~14.1.0" (or the intended stable
constraint) so the package no longer allows unstable dependencies; ensure
composer.lock is regenerated after the change to verify downstream consumers
won't pick up dev packages.
e792765 to
be3bf51
Compare
be3bf51 to
490b4b7
Compare
490b4b7 to
d630430
Compare
ToDo
minimum-stabilityandprefer-stablefromcomposer.jsonSummary by CodeRabbit
New Features
Documentation
Chores
Tests