TYPO3-Solr / ext-solr

A TYPO3 extension that integrates the Apache Solr search server with TYPO3 CMS. dkd Internet Service GmbH is developing the extension. Community contributions are welcome. See CONTRIBUTING.md for details.
GNU General Public License v3.0
137 stars 249 forks source link

Epic [TASK] Make EXT:solr TYPO3 11 LTS compatible #2976

Closed dkd-kaehm closed 1 year ago

dkd-kaehm commented 3 years ago

This task contains all the sub task to get EXT:solr woking within TYPO3 11 LTS: Note: The compatibility to TYPO3 10 LTS MUST NOT be assured.

Current state of TYPO3 11 LTS support on Mo. 29 Nov:

The indexing and almost all Backend-Module-Actions are functional, the search partially.

A huge changes, which were possible by refactored and isolated TSFE in EXT:solr:

[FEATURE] Get "free content mode" working
[BUGFIX] TypoScript configuration for "Hide default language" sites

Next steps:


Current state of TYPO3 11 LTS support today on Mo. 22 Nov:

The indexing and almost all Backend-Module-Actions are functional, the search not yet.

A huge change!:

The usage of Context, ServerRequest, language and co. are now isolated from whole TYPO3 API. They are aggregated/capsuled in TypoScriptFrontendController objects, which are initialized in ApacheSolrForTypo3\Solr\FrontendEnvironment\Tsfe. The ApacheSolrForTypo3\Solr\FrontendEnvironment\Tsfe is a container/factory for TypoScriptFrontendController objects. The isolated TypoScriptFrontendController objects and its properties are propagated to the EXT:solr indexing stack objects, so almost all usages of $GLOBAL-s could be removed from EXT:solrs indexing context. Therefore there are no side-effects on original TYPO3 objects like following anymore:

So, there are no needs for hacking the running context of TYPO3 original request and language.

PS:

Big thank on @bmack for quick reaction and fix https://review.typo3.org/c/Packages/TYPO3.CMS/+/72249

sorenmalling commented 3 years ago

@dkd-kaehm

christophlehmann commented 3 years ago

This works properly if a page is in index

typoniels commented 3 years ago

@dkd-kaehm

dkd-kaehm commented 3 years ago

Current state today on Fr. 5 Nov: The indexing works and the tests related to indexing are green. The tests related to frontend/searching are disabled. The PHP 8.0 is currently not supported and allowed to fail in CI. See EXT:solr build Nr. 73

Next steps:

dmitryd commented 2 years ago

I believe #3145 and #3141 should be also here because php 8 is a requirement for TYPO3 11 and those tickets fix issues with php 8 & solr.

LeoniePhiline commented 2 years ago

The new version was released as 11.5. Could you please consider adhering to semver? Updating a TYPO3 10.4 installation (TYPO3 extension and/or typo3solr/ext-solr docker image) from 11.2 to 11.5 (minor, should not be breaking) actually breaks everything.

dmitryd commented 2 years ago

@LeoniePhiline There is a tag 11.5.0 for the docker image (link). It is also correct to use 11.5 there in case if you want to base your work on 11.5 and autoupdate the image when there are newer 11.5 releases. There is no problem with this. We generally use it like image: typo3solr/ext-solr:11.0 with no problem at all and we like that such tags exist.

dkd-kaehm commented 2 years ago

The new version was released as 11.5. Could you please consider adhering to semver? Updating a TYPO3 10.4 installation (TYPO3 extension and/or typo3solr/ext-solr docker image) from 11.2 to 11.5 (minor, should not be breaking) actually breaks everything.

@LeoniePhiline

TLDR: EXT:solr will stay "non-classic-semver".

EXT:solr 11.5.0 has composer and TER restrictions for TYPO3(11.5.14+), so the installation of EXT:solr 11.5 on TYPO3 10.4 is difficult. The first two digits of EXT:solr version must be used for docker images. So currently dockers tag "11" is equal with 11.5 and latest. (Most probably we will remove latest and single digit versions of docker, to prevent folks from errors.)

Background: We equalized the EXT:solr versions stack with TYPO3 core to simplify the things(EB-Program, discussions, referencing, etc.), therefore since now all versions of EXT:solr 11.5.0 to 11.99.99(EXT:solr add-ons 11.0.0 to 11.99.99) will be for TYPO3 11 LTS only. So EXT:solr and its add-ons from v. 12.0.0 to 12.99.99 will follow the scheme, in which the first digit of version string is the requirement for TYPO3 LTS version, the second digit is for the major features release by EXT:solr and/or Apache Solr stack incl. BCs. As well, we want to deliver features(most probably with BCs) but do not support multiple TYPO3 LTS Versions in single EXT:solr major version, so we can't follow the classic semver...

So just remember, the second digit in the version string of EXT:solr and its add-ons is always the major release and most probably has BCs. See version matrix before upgrade: https://github.com/TYPO3-Solr/ext-solr/blob/release-11.5.x/Documentation/Appendix/VersionMatrix.rst

dkd-kaehm commented 1 year ago

Closing this issue The 3 issues will be fixed as usual.