Skip to content

Release 11.5.0 for TYPO3 11.5.14+

Compare
Choose a tag to compare
@dkd-kaehm dkd-kaehm released this 26 Aug 15:52
· 112 commits to release-11.5.x since this release

#standwithukraine #nowar

New in this release:

Huge improvements

TYPO3 11 LTS compatibility (11.5.14+)

With EXT:solr 11.5 we provide the support of TYPO3 11 LTS.

Please note that we require at least TYPO3 11.5.14, as this version contains some change concerning the usage of local TypoScriptFrontendController objects that are solving some issues during indexing.

Improved data update handling

To keep the Solr index up-to-date the indexed records have to be
observed, to minimize the delay and update the index as fast as possible
updates are ensured via DataHandler hooks.

But as intensive monitoring especially in larger websites may slow down
the TYPO3 backend, a delayed processing is introduced. By default the
monitoring is unchanged, but you can switch to a delayed processing
of the data updates in the extension manager.

Due to the extended data update handling the unit and integration tests
have to be adjusted and extended, this commit contains the required
adjustments.

See: #3153

Bootstrap 5.1

To be compatible with Bootstrap 5.1, some steps had to be
done.

The following changes are included in this commit:

  • template adaptions for Bootstrap 5.1
  • included Bootstrap CSS updated
  • obsolete panel structure removed
  • switch to new Bootstrap pagination
  • switch to Bootstrap icons
  • inline styles from debug ViewHelpers removed
  • obsolete Bootstrap Glyphicon fonts removed
  • ensure template will respect facet option limit
    (plugin.tx_solr.search.faceting.limit)

See: #3112

Custom field processors

fieldProcessingInstructions can be used for processing values during indexing, e.g. timestampToIsoDate or uppercase. Now you can register and use your own field processors via:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['fieldProcessor']['yourFieldProcessor'] = ACustomFieldProcessor::class;

Custom processors have to implement interface ApacheSolrForTypo3\Solr\FieldProcessor\FieldProcessor.

N-Gram Filter for strings

Provides a new field type and dynamic fields for strings
with enabled Edge-N-Gram filter.

Now the following fields can be used:

  • *_stringEdgeNgramS
  • *_stringEdgeNgramM

Improve and Fix TSFE Initialization

The initialization of TSFE within indexing and Backends modules contexts is refactored.

In this change the setting and usage of $GLOBALS['TSFE'] is removed and replaced by TYPO3s Core Context API.
The "Context" is always cloned instead of using its singleton instance.
The "Context", "Language", "TSFE" and "ServerRequest", which are required for TypoScript parsing in BE-modules and indexing contexts,
are highly isolated/capsuled and not visible anymore for all things not belonging to EXT:solr internals.

Byside of isolation/encapsulation of TSFE, the language handling is restored
to pure and default EXT:solr "fallback" mode approach.
So all page records, which are involved in indexing(All page types and above all all with sys_template or records-to-index), must be translated.
Otherwise the translation records will be indexed in default language.

Note: Since TYPO3 11 LTS does not allow to instantiate TSFE for sys folders and spacer,
the initialization of TSFE will be done for first and closest page(not spacer or folder) within the site rootline.

Get "free content mode" working

In previous releases of EXT:solr the language handling for "free-content-mode" inconsistent.
The behavior of "free-content-mode" related records varied in RecordMonitor, Initializing and Indexing contexts,
which was the source of troubles for mixing overlay records in wrong cores/languages.

This change brings the RecordMonitor, Initializing and Indexing contexts for "free-content-mode" related records
into the same line, so the "free-content-mode" records are processed the same way.

Make pageRangeFirst and pageRangeLast accessible in fluid

With these two additional getters it is possible to access the variables
in fluid templates. See: #3254

And many more

Please see the list of changes below.

The list of all changes:

Release 11.5.0-pre-alpha-1 (126584e10) :

  • [TASK] Prepare schemas for EXT:solr 11.5.x (c0a3e6205)
  • [TASK] Provide N-Gram Filter for strings (13b90a996)
  • [TASK] composer branch aliases (ebfee76bb)
  • [BUGFIX] Recursive constants (8af25d03f)
  • [BUGFIX:BP:11.5] Follow up to recursive constants (a57960763)
  • [TASK] Migrate TYPO3#88366 deprecated cache_ prefix on caches (a8f111592)
  • [BUGFIX] Filter within route enhancers (b6d77ee52)
  • [BUGFIX] Fix NON-Composer mod libs composer.json for composer v2 (e9ec5c11c)
  • [TASK] Setup Dependabot to watch "solarium/solarium" (dfc99f4b0)
  • [TASK] Setup Github Actions :: Basics (ceb892408)
  • [TASK] Bump to and test against TYPO3 ^11.5 (e7eeb2b3d)
  • [TASK] Bump solarium to 6.1.4, which supports PHP 8.0 (e56c32436)
  • [TASK] Bump nimut/testing-framework to v. 6.0, which supports PHP 8.0 (e5353ab3c)
  • [FIX] Fix GH actions on branches push event (85e413d39)
  • [BUGFIX:P:11.5] Don't use jQuery.ajaxSetup() (6714590a8)
  • [TASK] Restructure version matrix (9535750f4)
  • [Bugfix:BP:11-5] routeenhancer with empty filters (578e0153b)
  • [TASK:11.5] Replace mirrors for Apache Solr binaries on install-solr.sh (7f998d221)
  • [TASK] Make TYPO3 11 LTS compatible : Backend Modules Templates (871c5b00f)
  • [TASK] Make TYPO3 11 LTS compatible : rector run (7e104a499)
  • Make TYPO3 11 LTS compatible : TSFE initialization : record indexing (66f512b12)
  • [TASK] Make collapse work in BE (800384e48)
  • [TASK] Style index fields tab in info module (8f9a0ce9d)
  • [TASK] Fix loading Chart module (8fd1182ac)
  • [TASK] Adapt namespaces (f1f5521b9)
  • !!! [TASK] Switch to hook contentPostProc-cached of TypoScriptFrontendController (e1c8c3afc)
  • [TASK] Apply rectors (0e6bf902e)
  • [BUGFIX] Enforce visibility context in Tsfe (d50947375)
  • [TASK] Fix scrutinizer for EXT:Solr 11.5 (43dcbd43f)
  • [TASK-11.5C] Fix - "Unit" Tests : Remove usages of UriBuilder::setUseCacheHash() (d71ec451c)
  • [TASK-11.5C] Fix - "Unit" Tests (5e047c520)
  • [TASK-11.5C] Fix - "Unit" Tests : PHP 8.0 (6023d78d7)
  • [TASK] Let PHP 8.0 Job allow to fail temporarily (d36c22e3e)
  • [TASK-11.5C] Fix - "Integration" Tests (4005e974b)
  • !!![TASK] Improve and Fix TSFE Initialization (a246cb8e3)
  • [TASK] Refactor IntegrationTest base class : auto import root pages (d14b82ec5)
  • [TASK] Refactor Integration tests : SiteHashServiceTest (280271d04)
  • [TASK] Refactor Integration tests : ResultSetReconstitutionProcessorTest (1317a2792)
  • [TASK] Refactor Integration tests : IndexerTest (f87a5f5d7)
  • [TASK] Refactor Integration tests : IndexerTest additionalPageIds (723ccea67)
  • [TASK] Refactor Integration tests : IndexerTest "hide default language" (1538c61dc)
  • [TASK] Refactor Integration tests : IndexerTest "Relation (MM) translation overlays" (82bfe55d4)
  • [TASK] Reactivate tests for indexing records without L parameter (66afd4f59)
  • [TASK] Refactor Integration tests : Schrink fixtures (25cf5b911)
  • [BUGFIX] Remove hidden translated record in index (1b7642115)
  • [FEATURE] Get "free content mode" working (0986a24c9)
  • [BUGFIX] TypoScript configuration for "Hide default language" sites (ddcbc3bb6)
  • [TASK] Refactor pagination (bb42410af)
  • [TASK] Fix indentation, add more documentation (56922bdb4)
  • [TASK] Fix Index-Queue module: "Clear Index Queue" functionality (1307974e9)
  • [TASK] Disable temporary testing against TYPO3 < v11.5.4 (9faf73fb6)
  • [TASK] Refactor LastSearches and FrequentlySearched widgets (b3a9fef4c)

Release 11.5.0-beta-1 (85d260968) :

  • [TASK] Allow to publish (-PRE)-(ALPHA|BETA|RC) releases to TYPO3 TER (5cb71c168)
  • [FIX] Allow to edit pages outside of site root (6c8801154)
  • [FIX] Allow to mark pages as site root (09009909b)
  • [FIX] Don't auto select first configured solr site if non configured exists (352998671)
  • [FIX] Can't create SchedulerTask (05ae55ec7)
  • [TASK] Add Czech translation (a3805b287)
  • [Bugfix] Prevent unwanted filter parameters from being generated (3e156981d)
  • !!![TASK] Refactor Site stack (5120a68b7)
  • !!![FIX] Index Queue initialization is not robust enought (bc7133237)
  • [FIX] typoscript in Tsfe::initializeTsfe() parsed twice (aafc18de3)
  • [FIX] Integration tests on release-11.5.x (210a64a88)
  • [TASK] Upgrade to Apache Solr 8.11.1 (b3ab72de1)
  • [BUGFIX] Catch Throwables instead Exceptions (a2988d2ff)
  • [FEATURE] Fix #3143: improve variant handling by sorting user groups (e38785eb8)
  • [BUGFIX] Fix #3145: exception in scheduler with php 8 (75b1237e0)
  • [BUGFIX] Fix #3141: TypeError in TranslateViewHelper (bc12bfafd)
  • [BUGFIX] Fix autosuggest with non-ascii terms (6687bcd4f)
  • Allow to generate indexing error log from throwable (4abdba3f3)
  • [FIX] Can't index pages which require a user session (2e35a8c05)
  • [CLEANUP] Remove unused "Initialize Solr connections" code (bc03310cc)
  • [TASK] Make FE/Search tests working (14c45a210)
  • [TASK] Remove IntegrationTest::importDumpFromFixture() method (b7e4c6f59)
  • [TASK] make scrutinizer ocular working on PHP 8+ (e58050fb4)
  • [FIX] Call to undefined method ResponseFactory::createJsonResponse() (6b65feccb)
  • [TASK] Fix Scrutinizer issues (d40bcd67a)
  • [BUGFIX] Prevent some "undefined array key" warnings with php 8 (5a4ef9038)
  • [BUGFIX] TER releases missing composer dependencies (be3eafc0d)
  • [TASK] unite all intgeration tests in same suite (a227fe7f9)
  • [TASK] Test TYPO3 11+ with PHP 8.1 as well (4be1ccc5f)
  • [TASK:11.5] Upgrade solarium/solarium to 6.6.2 (efe7c5614)
  • [WIP] PHP 8.1 compatibility (15c1221e5)
  • [BUGFIX] Fix notice in TranslateViewHelper (3b91901e6)
  • [TASK] Avoid different Solarium versions in non- and composer modes (4091c6261)

Release 11.5.0-beta-2 (91016b1a8)

  • [P:11.5:FEATURE] Improve data update handling (6561e3585)

Release 11.5.0-rc-1 (6dfefc196)

  • [TASK] Add proper annotations on GH actions job failures. (f145285e2)
  • [TASK] Migrate to PhpUnit 9+ Api and cleanup the obsolete method mocks (cc8cc7885)
  • [BUGFIX] Fix write connection (9a16a743d)
  • [BUGFIX] core optimization module PHP 8.1 compatibility (c81407540)
  • [TASK] Remove not used strptime() adaption for windows. (ad5c03932)
  • [BUGFIX] Ensure BE_USER is kept when initializing TSFE (c7c0ba8ad)
  • [TASK:11.5] Minimal changes to Templates to make Bootstrap 5.1 working (d5940d393)
  • [TASK] Standardize *.php files header declaration (514717864)
  • [TASK] Use and apply TYPO3 coding standards, rector and type hinting (61076e3ed)
  • [BUGFIX] Skip rootline check in be for records stored at pid 0 (6800394c0)
  • [BUGFIX] Prevent "undefined array key" warnings with php 8 in page indexer (d4afa18d1)
  • FIX: Argument 1 passed to ApacheSolrForTypo3\Solr\Task\AbstractSolrTask::setRootPageId() must be of the type int, string given (2858e45aa)
  • Added info about the virtual field __solr_contents (8002707ed)
  • Added info about using page content in fields (85741400b)
  • FIX: Argument 1 passed to ApacheSolrForTypo3\Solr\System\Url\UrlHelper::setPort() must be of the type int, string given (9afe701ad)
  • [TASK] Bootstrap 5.1 adaptions (0d6f62a30)
  • [CLEANUP] Delete obsolete TypoScript example ConnectionFromConfVars (cb5b5284a)
  • [BUGFIX] Ensure proper items per page setting (84d70b1f1)
  • [BUGFIX:11.5] Access restricted pages can not be indexed on TYPO3 11.5 (74d316358)
  • [BUGFUX] Fix #3221: exception in page browser (094e70fa6)
  • [TASK] Follow-up changes by EXT:solrfal for TYPO3 11.5 (41ac7ffd5)
  • [TASK] Supress warnings of strftime (fbf20c41d)
  • [TASK] Remove unnecessary bootstrap_package (1582b646f)
  • [TASK] Reenable skipped test of SearchControllerTest (1e0be7a51)
  • [BUGFIX] Fix feuser initialisation in BE context (3ea33b4f8)

Release 11.5.0-rc-2 (862e02d27) :

  • [TASK] Improve error handling in index queue module (cb0292d6f)
  • [BUGFIX] Add type cast to TaskProviders (ab070482e)
  • [BUGFIX] Missing dot in configuration in numberOfResultsPerGroup method (59a49ba41)
  • [DOCS] Align README.md with other extensions (#3218) (9b4a1153b)
  • [DOCS] Align with new TYPO3 documentation standards (#3242) (ec66f49e5)
  • [TASK] Prevent type errors (061ef243a)
  • [TASK] Allow SearchResultSetService instantiation via makeInstance (b15f2444e)
  • [TASK] Move ObjectManager to constructor in AbstractFacet (35405f349)

Release 11.5.0-rc-3 (a62b64503)

  • [FEATURE] Make pageRangeFirst and pageRangeLast accessible in fluid (31ba843a1)
  • [BUGFIX] Fix return type error for option facet (002661140)
  • [BUGFIX] change detection of free mode records (eb87e83ba)
  • [BUGFIX] Avoid yoda-style conditions in PHP (48e52dbd0)
  • [TASK] Sync with new TYPO3 coding standards (b15838961)
  • [TASK] Sync with EXT:solrfluidgrouping for TYPO3 11.5 (1ef155471)
  • Update GarbageCollector.php (eab5887f1)
  • [BUGFIX] AbstractSolrTask::setRootPageId(): Argument #1 () must be of type int, string given (506b540e4)
  • Silence DebugWriter for PageIndexerRequest (56203dfa0)
  • [BUGFIX] Undefined array key in ..Domain\Site\Site:L130 (8e1d5ed0e)
  • [BUGFIX] Fix PSR-4 Namesppaces and Paths (49a797884)
  • [BUGFIX] Ensure array value is set when accessing (3fa4ff496)
  • [BUGFIX:11.5] Frequent Searches plugin does not work (49b32a195)
  • [BUGFIX] Class properties must not be accessed before initialization (5a9556488)
  • [BUGFIX] Respect indexing configuration for new and updated subpages (6196913be)
  • [BUGFIX:BP:11.5] Empty suggest query triggers a PHP error (f564a31b9)
  • [TASK:BP:11.5] Adjust typo3/coding-standards settings (c0b0e1a6f)
  • [DOCS:BP:11.5] add missing doc for plugin.tx_solr.logging.indexing.pageIndexed (e309f0f9f)
  • [TASK:BP:11.5] Require TYPO3 11.5.14 (b698f86e9)
  • [TASK:BP:11.5] Adapt column arrangement within sites config (bd628be99)
  • [FEATURE:BP:11.5] Add custom field processors (173c7a5d4)

Release 11.5.0 (44f94a7)

  • [TASK:11.5] Fix TYPO3 coding standards issues after upgrade to v0.5.5 (55830f209)
  • Ensure keywords string does not exceed database field length (9f2c81768)
  • [BUG] make sure that $currentPageNumber in resultsAction is always >= 1 (#3324) (be8cc90b6)
  • [FEATURE] add logging for failed http requests (f9edd8bc4)
  • [BUGFIX] fix infinite loop in Tsfe::getPidToUseForTsfeInitialization() (3a2b8d0e8)

Full change log:

c0a3e62...11.5.0


Contributors

Like always this release would not have been possible without the help from our
awesome community. Here are the contributors to this release.

(patches, comments, bug reports, reviews, ... in alphabetical order)

  • Achim Fritz
  • Andreas Beutel
  • Andreas Kießling
  • @ayacoo
  • Christoph Lehmann
  • Christopher Schnell
  • Daniel Koether
  • @dev-rke
  • Dmitry Dulepov
  • @dsone
  • FearFreddy
  • Georg Ringer
  • @garfieldius
  • Guido Schmechel
  • Henrik Elsner
  • Jan Delius
  • Jens Jacobsen
  • Lars Tode
  • @leslawp
  • Marc Bastian Heinrichs
  • Mario Lubenka
  • Marcus Balasch
  • Marcus Schwemer
  • Markus Friedrich
  • Markus Kobligk
  • Michael Kettel
  • Michael Wagner
  • Michiel Roos
  • Nicola Widmer
  • Pascal Hofmair
  • Peter, CyberForum e.V
  • Philipp Kitzberger
  • Rafael Kähm
  • René Maas
  • Rudy Gnodde
  • Sascha Egerer
  • Sebastian Hofer
  • Sebastian Michaelsen
  • Soren Malling
  • Stefan Frömken
  • Stefano Kowalke
  • @twojtylak
  • Thomas Löffler
  • Tobias Kretschmann
  • Tobias Schmidt

Also a big thank you to our partners who have already concluded one of our new development participation packages such as Apache Solr EB for TYPO3 11 LTS (Feature), Apache Solr EB for TYPO3 10 LTS (Maintenance)
or Apache Solr EB for TYPO3 9 ELTS (Extended):

  • .hausformat GmbH
  • ACO Ahlmann SE & Co. KG
  • avenit AG
  • b13 GmbH
  • Cobytes B.V.
  • Connetation Web Engineering GmbH
  • cyperfection GmbH
  • DVT - Daten-Verarbeitung-Tirol GmbH
  • Earlybird GmbH & Co KG
  • elancer-team GmbH
  • FONDA GmbH
  • GFE Media GmbH
  • graphodata GmbH
  • Hochschule Niederrhein
  • i-fabrik GmbH
  • in2code GmbH
  • internezzo ag
  • Intersim AG
  • IW Medien GmbH
  • Jochen Weiland
  • Kreis Euskirchen
  • Landeskriminalamt Thüringen
  • L.N. Schaffrath DigitalMedien GmbH
  • Leitgab Gernot
  • LOUIS INTERNET GmbH
  • Marketing Factory Consulting GmbH
  • medien.de mde GmbH
  • MEDIA::ESSENZ
  • mehrwert intermediale kommunikation GmbH
  • Neue Medien GmbH
  • NEW.EGO GmbH
  • novotegra GmbH
  • Pädagogische Hochschule Karlsruhe
  • peytz.dk
  • ProPotsdam GmbH
  • Provitex GmbH
  • Proud Nerds
  • rms. relationship marketing solutions GmbH
  • Québec.ca
  • seam media group gmbh
  • SITE'NGO
  • SOS Software Service GmbH
  • Stämpfli AG
  • Studio 9 GmbH
  • systime.dk
  • techniConcept Sàrl
  • TOUMORØ
  • WACON Internet GmbH
  • we.byte GmbH
  • wegewerk GmbH
  • werkraum Digitalmanufaktur GmbH
  • WIND Internet

How to Get Involved

There are many ways to get involved with Apache Solr for TYPO3:

  • Submit bug reports and feature requests on GitHub
  • Ask or help or answer questions in our Slack channel
  • Provide patches through pull requests or review and comment on
    existing pull requests
  • Go to www.typo3-solr.com or call dkd to sponsor the ongoing
    development of Apache Solr for TYPO3

Support us by becoming an EB partner:
https://shop.dkd.de/Produkte/Apache-Solr-fuer-TYPO3/

or call:
+49 (0)69 - 2475218 0