Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Nov 17, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
typo3fluid/fluid ^2.15 || ^4.0 -> ^2.15 || ^4.0 || ^5.0 age adoption passing confidence

Release Notes

TYPO3/Fluid (typo3fluid/fluid)

v5.0.0

Compare Source

Version 5.0 is the next major milestone in the development of the Fluid templating engine. Based on the previous efforts that went into Fluid 4, Fluid 5 continues to refactor and to modernize the underlining source code, which sometimes requires introducing strategic breaking changes. All breaking changes in this release have been pre-announced in Fluid 4, both in the changelog and by applying the @deprecated annotation or emitting a deprecation notice in the code.

These breaking changes allow us to ship meaningful new features that weren't possible before:

Streamlined ViewHelper Argument Validation

ViewHelpers now use the StrictArgumentProcessor to validate ViewHelper arguments. This means that argument validation behaves the same with ViewHelpers and with the <f:argument> ViewHelper, which was introduced with Fluid 4.2. While the new validation might require some adjustments in existing projects, it has clear advantages: ViewHelper instances can actually rely on the types specified in their API to be checked properly by Fluid, which makes a lot of custom validation code obsolete.

The new argument validation adds support for union types as well as iterable, countable and callable, which allows ViewHelpers to define a clearer API.

See #​1062, #​1074, #​1194 and #​1226 for more details.

Template File Resolving and File Extension

Fluid 5 now features an internal fallback chain for template file names. Template files are now resolved in the following order (first match wins):

templateRootPath: templates/
template: myTemplate
format: html

1. templates/myTemplate.fluid.html
2. templates/myTemplate.html
3. templates/myTemplate
4. templates/MyTemplate.fluid.html
5. templates/MyTemplate.html
6. templates/MyTemplate

This means that it's no longer necessary for template names to start with an uppercase character. Also, there is a new dedicated file extension *.fluid.* for Fluid templates: *.fluid.html instead of *.html, *.fluid.xml instead of *.xml, and so on. Because of the fallback chain, both can be added without breaking potential overrides from other template paths.

We recommend switching to the new file extension if Fluid 5 can be a hard requirement for your project. Otherwise, just stick to the existing general file extensions. The new file extension is entirely optional and will not be a requirement.

See #​1243 and #​1258 for more details.

Simplified Cache Warmup

Fluid 5 comes with a much simpler way to warmup the template cache in your project. The existing cache warmup functionality has been removed and replaced by a new implementation that requires much less configuration and context. By default, it makes use of the new *.fluid.* file extension to discover all Fluid templates in your project.

bin/fluid warmup \
    --cacheDirectory examples/cache/ \
    --path examples/Resources/
    --path examples/ResourceOverrides/

See #​1224 for more details.

Alternative Syntax for CDATA Sections

A long-standing issue in Fluid templates has been that the Fluid variable and inline ViewHelper syntax collides with inlined CSS or JavaScript code. This issue has now been addressed with Fluid 5: A new alternative syntax has been introduced that makes collisions between CSS/JavaScript and Fluid far less likely.

The normal inline and variable syntax uses single curly braces { } as tokens in Fluid templates. In <![CDATA[ ]]> sections, this syntax are now ignored. Instead, three curly braces {{{ }}} can be used to call Fluid ViewHelpers or to access variables. The tag-based syntax is disabled altogether in CDATA sections.

See #​1246 and the documentation for more details: Avoiding syntax collision with JS and CSS.

Deprecations and Breaking Changes

Please refer to the documentation for a full list of breaking changes and newly introduced deprecations in Fluid 5.0: Changelog 5.x.

What's Changed

Please note that some of the listed changes have been backported to Fluid 4.5.0, most importantly all new ViewHelpers.

New Contributors

Full Changelog: TYPO3/Fluid@4.5.0...5.0.0

v4.5.0

Compare Source

Fluid 4.5 makes advances in two areas: It contains a range of new ViewHelpers that should make the life of integrators easier. Also, it includes deprecations in preparation for the upcoming Fluid 5.0, which will contain various breaking changes.

New ViewHelpers in Fluid 4.5:

The deprecations and preparations for the upcoming Fluid 5.0 are listed in the documentation: Changelog 4.x

What's Changed

Full Changelog: TYPO3/Fluid@4.4.3...4.5.0

v4.4.3

Compare Source

What's Changed

Full Changelog: TYPO3/Fluid@4.4.2...4.4.3

v4.4.2

Compare Source

What's Changed

Full Changelog: TYPO3/Fluid@4.4.1...4.4.2

v4.4.1

Compare Source

What's Changed

Full Changelog: TYPO3/Fluid@4.4.0...4.4.1

v4.4.0

Compare Source

What's Changed

New Contributors

Full Changelog: TYPO3/Fluid@4.3.0...4.4.0

v4.3.0

Compare Source

Fluid 4.3 introduces the concept of components to Fluid. Components are custom HTML-like tags based on Fluid templates that you can reuse throughout your project. The concept is similar to popular frontend frameworks like React and Vue or native Web Components, but they are server-rendered by PHP.

In addition to the user-facing components feature, new low-level APIs have been introduced which potentially allow Fluid to interact with other templating engines.

Both aspects are explained in detail in the documentation:

Thank you to all members of the TYPO3 Association who voted for the community budget idea and made this release possible! ❤️

What's Changed

New Contributors

Full Changelog: TYPO3/Fluid@4.2.0...4.3.0

v4.2.0

Compare Source

What's Changed

Full Changelog: TYPO3/Fluid@4.1.2...4.2.0

v4.1.2

Compare Source

What's Changed

New Contributors

Full Changelog: TYPO3/Fluid@4.1.1...4.1.2

v4.1.1

Compare Source

What's Changed

  • [TASK] Use constant instead of magic string for sections by @​s2b in #​1054
  • [BUGFIX] Use null instead of empty string as default for condition VHs by @​s2b in #​1050
  • [BUGFIX] Differentiate between null and unset then/else condition branches by @​s2b in #​1051
  • [TASK] Add composer branch alias for dev-main by @​sbuerk in #​1055

Full Changelog: TYPO3/Fluid@4.1.0...4.1.1

v4.1.0

Compare Source

What's Changed

New Contributors

Full Changelog: TYPO3/Fluid@4.0.3...4.1.0

v4.0.3

Compare Source

What's Changed

Full Changelog: TYPO3/Fluid@4.0.2...4.0.3

v4.0.2

Compare Source

What's Changed

Full Changelog: TYPO3/Fluid@4.0.1...4.0.2

v4.0.1

Compare Source

What's Changed

Full Changelog: TYPO3/Fluid@4.0.0...4.0.1

v4.0.0

Compare Source

Nearly eight years after the launch of Fluid v2, we are happy to release Fluid v4. For this major version we had one key goal in mind: no breaking changes to user-facing APIs, such as ViewHelpers or View classes. We are confident that we have achieved this goal.

In this release, we focused on improving code quality by introducing stricter type checks across most of the codebase. In addition, we have deprecated several outdated or suboptimal APIs – most notably, the renderStatic() method for ViewHelpers and the related traits. While these deprecated APIs remain functional in Fluid v4, they will be removed in the upcoming Fluid v5 release. We strongly encourage users to consult the deprecation log and update their code to ensure compatibility with future versions.

To make the upgrade process as seamless as possible, we've backported many of the new features to Fluid v2, ensuring that the migration path is largely backward-compatible.

Noteworthy features in v4 that could not be backported:

  • faad81a <f:comment> now ignores Fluid syntax errors
  • ba2c48b {true}, {false} and {null} are part of the language now and can be used in all templates
  • 4d5b0c9 AbstractTagBasedViewHelper now supports boolean tag arguments according to the HTML5 standard

A full list of breaking changes is available in the documentation.

New Contributors

Full Changelog: TYPO3/Fluid@2.15.0...4.0.0


Configuration

📅 Schedule: Branch creation - Monday through Friday ( * * * * 1-5 ) (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the dependencies Updates project dependencies label Nov 17, 2025
@renovate
Copy link
Contributor Author

renovate bot commented Nov 17, 2025

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: composer.lock
Command failed: composer update typo3fluid/fluid:5.0.1 --with-dependencies --ignore-platform-req ext-intl --no-ansi --no-interaction --no-scripts --no-autoloader --no-plugins --minimal-changes
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires typo3fluid/fluid ^2.15 || ^4.0 || ^5.0, found typo3fluid/fluid[2.15.0, 4.0.0, ..., 4.5.0, 5.0.0, 5.0.1] but these were not loaded, likely because it conflicts with another require.
  Problem 2
    - typo3/cms-core is locked to version v12.4.38 and an update of this package was not requested.
    - typo3/cms-core v12.4.38 requires typo3fluid/fluid ^2.15.0 -> found typo3fluid/fluid[2.15.0] but it conflicts with your temporary update constraint (typo3fluid/fluid:5.0.1).
  Problem 3
    - typo3/cms-fluid is locked to version v12.4.38 and an update of this package was not requested.
    - typo3/cms-fluid v12.4.38 requires typo3fluid/fluid ^2.15.0 -> found typo3fluid/fluid[2.15.0] but it conflicts with your temporary update constraint (typo3fluid/fluid:5.0.1).
  Problem 4
    - typo3/testing-framework is locked to version 8.2.7 and an update of this package was not requested.
    - typo3/cms-core v12.4.38 requires typo3fluid/fluid ^2.15.0 -> found typo3fluid/fluid[2.15.0] but it conflicts with your temporary update constraint (typo3fluid/fluid:5.0.1).
    - typo3/testing-framework 8.2.7 requires typo3/cms-core 12.*.*@dev || 13.*.*@dev -> satisfiable by typo3/cms-core[v12.4.38].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

@qltysh
Copy link

qltysh bot commented Nov 17, 2025

Diff Coverage: Not applicable. There was no coverage data reported for the files in this diff.

Total Coverage: This PR will not change total coverage.

🛟 Help
  • Diff Coverage: Coverage for added or modified lines of code (excludes deleted files). Learn more.

  • Total Coverage: Coverage for the whole repository, calculated as the sum of all File Coverage. Learn more.

  • File Coverage: Covered Lines divided by Covered Lines plus Missed Lines. (Excludes non-executable lines including blank lines and comments.)

    • Indirect Changes: Changes to File Coverage for files that were not modified in this PR. Learn more.

@renovate renovate bot force-pushed the renovate/typo3fluid-fluid-5.x branch from 91dfefc to 1a5f53a Compare November 17, 2025 05:55
@coveralls
Copy link
Collaborator

coveralls commented Nov 17, 2025

Pull Request Test Coverage Report for Build 19577342152

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 0.0%

Totals Coverage Status
Change from base Build 19573138567: 0.0%
Covered Lines: 0
Relevant Lines: 710

💛 - Coveralls

@renovate renovate bot force-pushed the renovate/typo3fluid-fluid-5.x branch from 1a5f53a to c46745b Compare November 20, 2025 20:39
| datasource | package          | from   | to    |
| ---------- | ---------------- | ------ | ----- |
| packagist  | typo3fluid/fluid | 2.15.0 | 5.0.1 |
@renovate renovate bot force-pushed the renovate/typo3fluid-fluid-5.x branch from c46745b to 3ad7dbe Compare November 21, 2025 16:46
@eliashaeussler eliashaeussler deleted the renovate/typo3fluid-fluid-5.x branch November 24, 2025 06:41
@renovate
Copy link
Contributor Author

renovate bot commented Nov 24, 2025

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future 5.x releases. But if you manually upgrade to 5.x then Renovate will re-enable minor and patch updates automatically.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Updates project dependencies

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants