Skip to content

feat: add TYPO3 13.4 LTS support, tests and CI - #51

Merged
Bais92 merged 3 commits into
masterfrom
feature/typo3-v13
Oct 21, 2026
Merged

Bais92 merged 3 commits into
masterfrom
feature/typo3-v13

Conversation

@Bais92

@Bais92 Bais92 commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Makes the extension installable on TYPO3 13.4 LTS and aligns the versioning with the TYPO3 major version. The next release created by release-please will be 13.1.0.

Note: 13.0.0 (already on Packagist) only supports TYPO3 12.4. This is documented in the README.

TYPO3 13 compatibility

  • Requires typo3/cms-* ^13.4 and PHP ^8.2
  • Calculator and Product Finder are registered as CType content elements (list_type plugins are deprecated in 13.4 and removed in 14)
  • New upgrade wizard eeacomponentsPluginListTypeToCTypeUpdate migrates existing content elements and backend group permissions
  • Replaced removed or deprecated APIs (AbstractMessage constants, doc-comment annotations, addPageTSConfig, legacy TCA syntax)
  • create/update/delete actions now return the redirect response

Bug fixes

  • Remaining references to the old extension keys eea_components12 / eea_components (backend labels, icons, template paths)
  • Both templates used the same asset identifier eeaComponents, so the calculator script was not loaded when both components were placed on the same page

Tests & CI

  • Unit tests (35): controllers, models, upgrade wizard, and consistency checks for versions and TYPO3/PHP constraints across composer.json, ext_emconf.php and the release-please manifest
  • Functional tests (25): plugin/TCA/icon/label registration, frontend rendering of both components, and the upgrade wizard migration
  • PHPStan level 8
  • GitHub Actions: lint, PHPStan, unit and functional tests on PHP 8.2–8.4 (SQLite), plus functional tests on MariaDB 10.11, MySQL 8.0 and PostgreSQL 16
  • Locally verified with PHP 8.3 + SQLite (composer ci). The database jobs and PHP 8.2/8.4 run here in CI for the first time.

Release process

  • release-please manifest config with always-bump-minor: the major version only changes intentionally via a Release-As: x.y.z commit footer
  • The version in ext_emconf.php is updated by release-please
  • The version field was removed from composer.json (Packagist reads it from the git tag)
  • README: compatibility table (13.4 until 31.12.2027 / 12.4 until 30.04.2027 / 11.5 until 31.12.2025), upgrade notes and a development section
  • No further 12.x/11.x releases: release-please and CI only run on master

After merging / upgrading

vendor/bin/typo3 upgrade:run eeacomponentsPluginListTypeToCTypeUpdate

Script loading

  • Component scripts are loaded with type="module" (the media server sends Access-Control-Allow-Origin: *)

🤖 Generated with Claude Code

SDietzel and others added 3 commits October 21, 2026 15:21
- Require TYPO3 ^13.4 and PHP ^8.2 (composer.json, ext_emconf.php)
- Register Calculator and Product Finder as CType content elements
  (list_type plugins are deprecated in TYPO3 13.4) and add the upgrade
  wizard "eeacomponentsPluginListTypeToCTypeUpdate" for existing content
- Replace removed/deprecated APIs: AbstractMessage constants,
  doc-comment annotations, addPageTSConfig, legacy TCA syntax
- Return the redirect response in create/update/delete actions
- Fix remaining references to the old extension keys
  eea_components12 / eea_components (labels, icons, template paths)
- Fix asset identifier collision that prevented the calculator script
  from loading when both components were placed on the same page

Tests and CI:
- Unit tests for controllers, models, upgrade wizard and metadata
  consistency (versions and TYPO3/PHP constraints)
- Functional tests for plugin/TCA/icon/label registration, frontend
  rendering of both components and the upgrade wizard
- PHPStan level 8
- GitHub Actions: lint, PHPStan, unit and functional tests on
  PHP 8.2-8.4 with SQLite, MariaDB, MySQL and PostgreSQL

Release process:
- release-please manifest config with "always-bump-minor", so the major
  version stays aligned with the TYPO3 major version
- Keep the version in ext_emconf.php in sync via release-please
- Remove the version field from composer.json (taken from git tags)
- Document compatibility and support dates in the README

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The component bundles are .mjs files; load them with type="module".
The media server sends "Access-Control-Allow-Origin: *", which
cross-origin module scripts require.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Bais92
Bais92 merged commit 7cefe0e into master Oct 21, 2026
9 checks passed
@Bais92
Bais92 deleted the feature/typo3-v13 branch October 21, 2026 16:38
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.

1 participant