7.2.0 (2021-09-30)
Overview of merged pull requests
FEATURE: Allow NodeTypes to be defined in hierarchical folders
This feature allows NodeType.*.yaml
files to be put into nested
folders underneath <Package-Root>/NodeTypes
:
Packages
Some.Package
Configuration
NodeTypes.yaml (still supported!)
NodeTypes
Foo
Bar.yaml (new)
Resolves: #3000
Packages:
ContentRepository
FEATURE: Fusion Memo object
This Fusion object stores its value based on the given discriminator and returns the same result in future calls during the same rendering. The value will then not be evaluated again.
Example:
prototype(My.Vendor:Expensive.Calculation) < prototype(Neos.Fusion:Memo) {
discriminator = 'expensive-calculation'
value = ${1+2}
}
myValue = My.Vendor:Expensive.Calculation
myValue2 = My.Vendor:Expensive.Calculation
Packages:
Fusion
FEATURE: Upgrade font awesome to version 5.15
With this PR we get news brand icons and covid-19 icons. Also some bugfixes related to unicode issues and much more.
See the changes here https://github.com/FortAwesome/Font-Awesome/compare/5.12.1…5.15.3
Releated: #3390
Packages:
NodeTypes.ColumnLayouts
Neos
FEATURE: Show the last login date in the user/account list
Packages:
Neos
BUGFIX: Use Testing/Behat for DB setup in Behat steps
The command FLOW_CONTEXT=Testing/Behat ./flow behat:setup && ./flow doctrine:create && ./flow doctrine:migrationversion --add --version all
is broken, because the context is only active for the behat:setup
call, not the doctrine:…
calls later.
Packages:
.github
BUGFIX: Make test actually test what is says it tests
The BackendControllerSecurityTest did not assert the login actually works in the test indexActionIsGrantedForAdministrator().
Packages:
Neos
BUGFIX: Adjust assetsource icon color on hover and active
The icons are always white and when the asset source is active and on a small viewport we switch the background also to white. So the icons are not visible anymore.
This patch will adjust the color of the icon via filter functions. As we are not able to use the fill rule.
Fixes: #3417
What I did
We now use the css filter to modify the color of the icons.
`
filter: invert(.5) sepia(1) saturate(5) hue-rotate(175deg);
`
How to verify it
Install a second asset source and go to the media module.
Shrink the viewport to less than 767 pixels width
Check if the icon of the active asset source is visible
https://user-images.githubusercontent.com/1014126/134674449-e293e16b-0a03-434b-9914-9434701fa56b.mp4
Packages:
Media.Browser
BUGFIX: Use correct hotel icon mapping
Show hotel icon instead of bed
Relates: #2697
Packages:
Neos
BUGFIX: Fallback to jpg if webp is not supported on login screen
This is the following PR for #3413
If the browser doesn’t support webp
, it will fall back to the same filename with jpg
.
Packages:
Neos
BUGFIX: Don’t skip childnodes when discarding nodes
Previously autocreated childnodes like ContentCollections were ignored when discarding selected nodes via the workspace module.
When deleting a node and discarding the change the auto created children would then stay deleted in the database and the backend would show no content/errors.
The behaviour is now the same as for publishing nodes and the direct child nodes are included in the discard if the node has auto-created child nodes or is a document.
BUGFIX: Create Localisation API structure earlier
Like in the new media-ui it could happen that the backend module throws an error because the Localization init is not completed yet.
See https://github.com/Flowpack/media-ui/issues/78 for more information.
This patch will split the init step of the Localization API to a plain init that builds the structure and the new initTranslations that will create the raw translation data. As the translation data is fetched first, it could take some time. Now we first build the structure and set initialized to false and after that we fetch the xliff data and create the localization mapping.
So the initialized flag is now working way better.
What I did Split up the init function to be able to create the structure and data separately. And then build the structure before fetching the data.
How to verify it Install the new media-ui for instance and check the console for an error ;)
Packages:
Neos
BUGFIX: Reset accidentally upmerged branch version constraints
Some constraints of the 7.1 branch seem to have been accidentally upmerged to master. This change reset those to dev-master again.
BUGFIX: Remove broken @FlowIgnoreValidation from ContentRepository context
This fixes the following error on master:
Argument 1 passed to Neos\\Flow\\Annotations\\IgnoreValidation::__construct() must be of the type string, null given, called in /var/www/html/Packages/Libraries/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php on line 971
Type: TypeError
File: Packages/Framework/Neos.Flow/Classes/Annotations/IgnoreValidation.php
Line: 41
Type: N eos\\Flow\\Core\\Booting\\Exception\\SubProcessException
Code: 1355480641
File: Packages/Framework/Neos.Flow/Classes/Core/Booting/Scripts.php
Line: 712
Since the variable with the annotation is populated in the constructor with a fresh instance the need of this annotation is at least questionable.
Packages:
ContentRepository
BUGFIX: Prevent repeated queries for non existing nodes
What I did
The first level node cache stores non existing nodes as null
.
This should have prevented repeated queries for the same non existing nodes.
But isset
returns false
for a stored value of null
in this case
therefore saying that the node is unknown unstead of non existing,
which triggers another db query.
With this change, null
is now returned and no additional query triggered by the context.
How I did it
The node cache returns the stored value of null
instead of false
.
How to verify it
Run test or manually query a CR context for non existing identifiers multiple times.
Packages:
ContentRepository
BUGFIX: Only document Nodes should appear in Breadcrumb
When rendering the Breadcrumb menu in a Content node, the Content node itself is no longer added to the menu.
This is done by replacing q(node).add(...)
with q(documentNode).add(...)
Packages:
Media.Browser
Neos
BUGFIX: Use vanilla js for toggling class
Use vanilla JS for toggling the technical information
Resolves: #3351
Packages:
Neos
SiteKickstarter
BUGFIX: Fix cascade argument of childEvents relation
#3341 build failures made me aware of this
Packages:
Neos
BUGFIX: Fix depth comparison in hasHiddenNodeParent(…)
The comparison in this is wrong. Because the depth is 0-based, but the nodes returned by getNodesOnPath(…) contain the root node, less-than-or-equal must be used.
Fixes: #3363
Packages:
Neos
BUGFIX: Adjust contributing section to composer changes
When installing for development purposes, --prefer-install=auto
needs
to be used since Composer 2.1, see https://getcomposer.org/doc/06-config.md#preferred-install
BUGFIX: Deletion of assets from media overview works again
Fixes: #3349
Packages:
Neos
Media.Browser
BUGFIX: Skip unnecessary queries for nodedata
What I did and how I did it
Prevent node queries when is is clear that there would be an empty result
Prevent childnode count queries, when the children are already known due to previously cached query results for the same children
How to verify it
In the Neos page /en/features.html
this reduces the number of queries from 138 to 133.
In larger projects with more complex components this has a larger effect.
In a large project this reduced the SQL query count on one page from 1379 to 1115 (~23%) and the resulting rendering time by ~20%.
[x ] The PR is created against the lowest maintained branch
Packages:
ContentRepository
BUGFIX: Don’t evaluate reference nodes collection twice
The condition in fluid evaluates the „referenceNodes“ and the result is not cached. Therefore when the variable is used for the output the whole code is evaluated again.
Resolves: #3355
Packages:
NodeTypes.ContentReferences
BUGFIX: Avoid use of removed isMethodSafe()
This has obviously been forgotten in the past… and since it’s not used by the new UI, that wasn’t noticed yet.
Packages:
Neos
TASK: Add release notes for Neos 7.2
Packages:
Neos
TASK: Add `NodeTypes folder to fusion file monitoring for cache invalidation <https://github.com/neos/neos-development-collection/pull/3414>`_
The NodeTypes folder was just added to have a hierarchical structure for the nodeTypes. Since nodetypes are often tightly coupled to the integration it makes sense to put the fusion prototypes that implement the rendering of for the prototype there aswell. Especially when presentation and integration are seperated.
This can already be done via include: ../../../NodeTypes/**/*.fusion
in the Root.fusion. However changes to fusion files in the NodeTypes
folder are not detected yet.
To support this pattern this change adds the folder NodeTypes
to the folders that are monitored for fusion file changes.
See: https://github.com/neos/neos-development-collection/issues/3000
Packages:
Fusion
TASK: Exchange Wallpaper for Neos 7.2
The picture is taken by myself and can be used free of charge.
I used a webp this time for the wallpaper, as it is only 286k instead of 1.2M for the jpg variant.
Voting result: https://discuss.neos.io/t/neos-7-2-login-wallpaper/5571/12
Packages:
Neos
TASK: Bump postcss from 8.2.8 to 8.3.4
Bumps postcss from 8.2.8 to 8.3.4.
Packages:
Neos
TASK: Enable PHP 8 build
This enables a PHP 8 build and adjusts some things to achieve PHP8-compatibility of the code-base.
Thanks a lot to @gerdemann !
Packages:
ContentRepository
TASK: Replace deprecated guzzle functions with static methods
See https://github.com/guzzle/psr7/pull/345
Related to https://github.com/neos/flow-development-collection/pull/2455 - hence why this targets 7.1 instead of master
Packages:
Neos
Fusion
TASK: Use nodeIdentifier instead of getNodeAggregateIdentifier
As the NodeAggregateIdentifier class is final and not mockable in unit tests.
Resolves: #3374
Packages:
ContentRepository
TASK: Replace deprecated window.Typo3Neos
The usage of window.Typo3Neos
has been replaces with window.NeosCMS
and with version 8 the old Typo3Neos will not work anymore. So we as core should use the latest version of course.
What I did
Just replaced the old window.Typo3Neos
with window.NeosCMS
How to verify it Just edit tags, create tags or images.
Packages:
Neos
Media.Browser
TASK: Remove deprecated removed content wraps
What I did
Every content collections renders nodedata for its removed content. This creates a lot of queries in the backend context of Neos as the query uses a modified context and therefore skips the first level nodecache. But the nodedata was only used by the old Neos UI and has no effect anymore on the new UI. Therefore removing this from rendering reduces rendering time a lot in the backend.
How I did it
Removed the Fusion part responsible for rendering the removed node wraps.
This could be breaking if anyone implemented some modification of the removedContent
part of the ContentCollectionRenderer
object in their project which I can hardly imagine.
How to verify it
Load a page with 1 or more contentcollections in the Neos backend and compare query count.
In a large project this change reduced the number of SQL queries in the Neos backend or preview by ~21%.
Packages:
Media.Browser
Neos