8.1.8 (2023-10-21)
Overview of merged pull requests
BUGFIX: Only discard nodes in same workspace
Resolves: #4577
Packages:
ContentRepository
BUGFIX: Load all thumbnails for an asset to skip further requests
For the usecase of images with responsive variants this change prevents additional database requests for each additional variant of an image.
This can greatly reduce the number of queries on pages with many source tags or sources attributes for pictures and images.
Review instructions
As soon as an image is rendered in several sizes on a page the patch should skip additional db requests in the thumbnails repository. Persistent resources and image entities are still queried as via the node property getter and to resolve the thumbnail.
Packages:
Neos
Media
BUGFIX: Allow unsetting thumbnail presets
Resolves: #3544
Packages:
Neos
Media
BUGFIX: Don’t query for abstract nodetypes in nodedata repository
As abstract nodetypes don’t (shouldn’t) appear in the database it makes no sense to query them.
This is a regression that was introduced a long time ago, when the default parameter to include abstract nodetypes was added to the getSubNodeTypes
method in the NodeTypeManager
without adjusting the call in the NodeDataRepository->getNodeTypeFilterConstraintsForDql
which relied on the previous behaviour.
The call in the method getNodeTypeFilterConstraints
was fixed some years ago, but that method seems unused.
Packages:
ContentRepository
BUGFIX: Consistently initialize asset sources via `createFromConfiguration <https://github.com/neos/neos-development-collection/pull/4008>`_
fixes: #3965
The Problem
The case at hand was an asset source that uses a value object to validate the incoming asset source options. I expected to be able to define a promoted constructor property with said value object as its declared type:
```php final class MyAssetSource implements AssetSourceInterface {
- public function __construct(
private readonly string $assetSourceIdentifier, private readonly Options $options
) { }
/* … */
}
…and initialize the value object in the createFromConfiguration
static factory method defined by the AssetSourceInterface
:
```php final class MyAssetSource implements AssetSourceInterface {
/* … */
public static function createFromConfiguration(string $assetSourceIdentifier, array $assetSourceOptions): AssetSourceInterface {
- return new static(
$assetSourceIdentifier, Options::fromArray($assetSourceOptions)
);
}
}
This failed with a Type Error, because the AssetSourceService
, which is responsible for initializing asset sources, at one point does not utilize createFromConfiguration
to perform initialization, but calls the asset source constructor directly:
https://github.com/neos/neos-development-collection/blob/a4791b623161259b31d2d11b343310bd7ef76507/Neos.Media/Classes/Domain/Service/AssetSourceService.php#L178
The Solution
I adjusted the aforementioned routine of the AssetSourceService
to use the AssetSourceInterface
-defined createFromConfiguration
static factory method instead of the asset source’s constructor.
Even though the pattern I described above only makes sense in a PHP >8.0 environment, I decided to target Neos 7.3 with this PR, because it should constitute a non-breaking bugfix.
Packages:
Neos
Media
BUGFIX: Guard that Fusion path cannot be empty
Previously in php 7.4 this Neos\\Fusion\\Exception\\MissingFusionObjectException
was thrown
> No Fusion object found in path “”
but with php 8 this ValueError
is thrown which is unexpected
> strrpos(): Argument `#3 <https://github.com/neos/neos-development-collection/issues/3>``_($offset) must be contained in argument ``#1 <https://github.com/neos/neos-development-collection/issues/1>`_($haystack)
This change takes care of throwing an explicit Neos\\Fusion\\Exception
instead:
> Fusion path cannot be empty.
This error was noticed in the out of band rendering, when there is no content element wrapping: https://discuss.neos.io/t/argument-3-offset-must-be-contained-in-argument-1-haystack/6416/4
<img width=”593” alt=”image” src=”https://github.com/neos/neos-development-collection/assets/85400359/0ac8d025-3ab4-44e8-9034-eb883f0b1894”>
Upgrade instructions
Packages:
Neos
Fusion
BUGFIX: Fix `NodeType getTypeOfAutoCreatedChildNode and getPropertyType <https://github.com/neos/neos-development-collection/pull/4482>`_
resolves partially #4333 resolves partially #4344
Upgrade instructions
Packages:
Neos
ContentRepository
TASK: Fix documentation builds
… by pinning updated dependencies.
Review instructions
Best is to see if the builds succeed on RTD again with this merged…
Packages:
Neos
Media
TASK: Fix paths for Neos.Media RTD rendering setup
The paths need to be from the repo root, not relative to the .readthedocs.yaml
file (it seems).
Packages:
Neos
Media
TASK: Add configuration files for RTD
This add .readthedocs.yaml
files for the collection (handling Neos.Neos
) and for neos.Media
, to solve failing documentation rendering.
Review instructions
This can be compared to the configuration we have in place for Neos.Flow
in the Flow development collection.
Packages:
Media