Multi-dimension support has some nasty bugs

Hi folks,

the last two days I dealt with some bugs related to multi-dimension websites. Along the way I reviewed a pull request by @christopher which fixes the problem that the site node is not reachable if it doesn’t has any dimension values assigned. But there’s much more to fix.

For example, consider this structure:

home > products > coffee machine

home is the site node, whereas the others are just regular pages.

The following content dimensions exist:

country:
    'intl'=> 'intl'
    'de' => 'de, intl'

langugage:
    'en' => 'en'
    'de' => 'de'

Both, home and coffee machine exists in en, intl and de, de.
The node in the middle only exists in en, intl.

That means: there is no direct node connection between home and coffee machine for de, de.
And that causes trouble, because getSiteNode() will currently return null in that case.

I wrote a Behat test for that and hopefully will find a solution (help appreciated!), but my motivation for sharing this with you is, that I really think we currently neglect multi-dimension support.

So, please let’s put that more onto our agenda; it is strong selling point for Neos after all. I suggest to enhance the demo site so that it really shows the possibilities with multiple content dimensions and at the same time gives us a better way to test new features (I started a new PR for that).

Cheers!

3 Likes

Just wondering something: does ‘neglect’ mean in this case that we don’t think about it enough, not enough tested usecases, not enough experience with actually using fallbacks / dimensions or is the api too slim / not used consistently?

@radmiraal it looks like not many people (and especially in the Neos Team) are using multiple dimensions yet, because otherwise we’d stumble over these kinds of issues a bit earlier. @christopher put a lot of effort in creating meaningful Behat tests, but there are lots of other parts in Neos, including the Frontend Route Part Handler for example, which deal with content dimensions and don’t seem to be well tested with multi-dimension scenarios.

I think we need to step on the feature breaks a bit and make sure to have better tests for the features we already released. I feel like we waved through a bunch of features recently which looked harmless on the surface, but didn’t fully embrace the complexity of the content repository.

My hope is that Event Sourcing will make this part of Neos a better place to develop and use. But I know … we’ll just have other kinds of problems to deal with then …

1 Like

IMHO the described scenario is one that shouldn’t even exist. We should actually prevent it from being created in that way. That is not a technical failure but not enough support UI wise. The breadcrumb in de, de is just broken and we can’t do anything technically to work with it if we are at this point.

Note,

scenario and problem found, fix incoming ASAP.