Neos 7.3

This release of Neos comes with some great new features, bug fixes, and a lot of modernization.

As usual, we worked hard to keep this release as backward compatible as possible, but some of the changes might require manual adjustments. So please make sure to read the upgrade instructions below carefully.

New Features

AFX shorthand for @if and @process

Automatically generates keys for @if and @process when no one is specified.

<Vendor.Site:Prototype @if={eel1} image.@if={eel2} />

Related issue: #29

Fusion/AFX escaped attribute names (paths) with dots inside

Now it is possible to use dots in attributes and thus AlpineJS (for example) in AFX and Fusion. If you escape the attribute/path, the Fusion parser will not disturb you and won’t make a nested object path out of it, as before.

AFX

<div '@foo.bar'='baz'></div>

Generated Fusion

Neos.Fusion:Tag {
   attributes.'@foo.bar' = 'baz'
}

HTML Output

<div @foo.bar="baz"></div>

Related issues: #3112 and #34

Introduce ThumbnailRefreshed signal to the Neos.Media package

Packages like MOC.ImageOptimizer that are necessary for achieving optimal performance currently have to use unstable APIs (aspects) to access freshly created image-crops. The existing signals ThumbnailPersisted and ThumbnailCreated do not cover this use case.

This change introduces the ThumbnailRefreshed signal to the Neos.Media package that package authors can use to optimize the rendered thumbnails further before they are presented to the user.

Related pull request: #3478

Filter by collections in media:removeunused

The assets, the media:removeunused command takes into account can now be filtered by collections by specifying a comma-separated list of collection titles with the —only-collections

Related pull request: #3466

Add Neos.CliSetup package

  • ./flow welcome Shows a welcome message with information on how to set up Neos via CLI.

  • ./flow setup:database Configure the database connection interactively

  • ./flow setup:imagehandler Configure the image handling interactively

Related issue: #3506

Add support for AVIF format

You can now set avif as a format for generated images. Currently avif is only supported by imagick > 7.0.10-25 and libheif > 1.7.0.

Related issue: #3132

Allow setting the position of backend modules

For example, if you want to move the media module after the workspace module, you are now able to do this like this:

Neos:
  Neos:
    modules:
      management:
        submodules:
          media:
            position: 'after workspaces'

Related issue: #3433

Add case-insensitive filter operators for FlowQuery

It is now possible to use case-insensitive filter operators for FlowQuery.

  • ExactMatchInsensitive: =~

  • NotEqualMatchInsensitive: !=~

  • SuffixMatchInsensitive: $=~

  • PrefixMatchInsensitive: ^=~

  • SubstringMatchInsensitive: *=~

Related issue: #2614

Show asset collections and tag for read-only asset sources

Asset sources have a method isReadOnly() to tell whether they are read-only or not. A read-only asset source does not allow its content to be changed.

With this change, that read-only state is no longer coupled to the display of asset collections and tags in the media browser. Asset sources thus are free to implement a “connection” to asset collections and tags in any reasonable way.

Related issue: #3480

!!! Breaking changes

Deprecate Fusion Namespaces

Add deprecation notice for the namespace to the parser and corresponding interface.

Starting with Neos version 8, this code will not work anymore:

Alias a namespace

namespace: Foo = Acme.Demo
video = Foo:YouTube

You will need to declare the namespace fully (add Neos.Fusion: in front)

content = DataStructure
# or
root = Page

Related issue: #3498

Always show current node in breadcrumb

  • Neos.Neos:BreadcrumbMenu was using node, this is fixed and use documentNode now

  • Neos.Neos:BreadcrumbMenuItems returned the nodes in the wrong order

  • On both prototypes, the current node is now always rendered, even when it is hidden in index

Related issue: #3407

Set the default for new shortcut nodes to parent

The default value for the target is now parent instead of firstChildNode

Related issue: #3256

Upgrade Instructions

See https://docs.neos.io/cms/references/upgrade-instructions/upgrade-instructions-7-2-7-3

Note

Additionally, all changes in Flow 7.3 apply. See the release notes to further information. See https://flowframework.readthedocs.org/en/7.3/TheDefinitiveGuide/PartV/ReleaseNotes/730.html