Page MenuHomePhabricator

Wikibase CI broken by removal of mTitle property from SearchResult base classes
Closed, ResolvedPublic

Description

Seen in this CI job:

There were 3 errors:

1) Wikibase\Lexeme\Search\Elastic\Tests\LexemeFulltextResultTest::testTransformResult with data set "by form id" ('fr', array('Q1', 'Q2', 'Q3'), array(array('L1', array('en', 'Q1'), 'Q2', array('duck', 'goose'), array(array('L1-F1', array('ducks', 'geese')), array('L1-F2', array('moreducks', 'moregeese'), array('Q3')))), array(array('L1-F2'))), array('L1', 'duck', 'Q1', 'en', 'Q2', 'L1-F2', 'moreducks', array(Wikibase\DataModel\Entity\ItemId Object (...)), 'moreducks', array('unit_test_fr_singular', 'duck', 'unit_test_fr_english')))
Undefined property: Wikibase\Lexeme\Search\Elastic\LexemeResult::$mTitle

/workspace/src/extensions/WikibaseLexemeCirrusSearch/src/LexemeResult.php:56
/workspace/src/extensions/WikibaseLexemeCirrusSearch/src/LexemeResultSet.php:71
/workspace/src/extensions/CirrusSearch/includes/Search/BaseCirrusSearchResultSet.php:136
/workspace/src/extensions/CirrusSearch/includes/Search/BaseCirrusSearchResultSet.php:242
/workspace/src/extensions/WikibaseLexemeCirrusSearch/tests/phpunit/LexemeFulltextResultTest.php:282

2) Wikibase\Lexeme\Search\Elastic\Tests\LexemeFulltextResultTest::testTransformResult with data set "by form repr" ('fr', array('Q1', 'Q2', 'Q4'), array(array('L1', array('en', 'Q1'), 'Q2', array('duck', 'goose'), array(array('L1-F1', array('ducks', 'geese'), array('Q4')), array('L1-F2', array('moreducks', 'moregeese'), array('Q3')))), array(array('ducks'))), array('L1', 'duck', 'Q1', 'en', 'Q2', 'L1-F1', 'ducks', array(Wikibase\DataModel\Entity\ItemId Object (...)), 'ducks', array('unit_test_fr_plural', 'duck', 'unit_test_fr_noun')))
Undefined property: Wikibase\Lexeme\Search\Elastic\LexemeResult::$mTitle

/workspace/src/extensions/WikibaseLexemeCirrusSearch/src/LexemeResult.php:56
/workspace/src/extensions/WikibaseLexemeCirrusSearch/src/LexemeResultSet.php:71
/workspace/src/extensions/CirrusSearch/includes/Search/BaseCirrusSearchResultSet.php:136
/workspace/src/extensions/CirrusSearch/includes/Search/BaseCirrusSearchResultSet.php:242
/workspace/src/extensions/WikibaseLexemeCirrusSearch/tests/phpunit/LexemeFulltextResultTest.php:282

3) Wikibase\Lexeme\Search\Elastic\Tests\LexemeFulltextResultTest::testTransformResult with data set "by another form repr" ('fr', array('Q1', 'Q2', 'Q3'), array(array('L1', array('en', 'Q1'), 'Q2', array('duck', 'goose'), array(array('L1-F1', array('ducks', 'geese'), array('Q4')), array('L1-F2', array('moreducks', 'moregeese'), array('Q3')))), array(array('moregeese'))), array('L1', 'duck', 'Q1', 'en', 'Q2', Wikibase\Lexeme\Domain\Model\FormId Object (...), 'moregeese', array(Wikibase\DataModel\Entity\ItemId Object (...)), 'moregeese', array('unit_test_fr_singular', 'duck', 'unit_test_fr_english')))
Undefined property: Wikibase\Lexeme\Search\Elastic\LexemeResult::$mTitle

/workspace/src/extensions/WikibaseLexemeCirrusSearch/src/LexemeResult.php:56
/workspace/src/extensions/WikibaseLexemeCirrusSearch/src/LexemeResultSet.php:71
/workspace/src/extensions/CirrusSearch/includes/Search/BaseCirrusSearchResultSet.php:136
/workspace/src/extensions/CirrusSearch/includes/Search/BaseCirrusSearchResultSet.php:242
/workspace/src/extensions/WikibaseLexemeCirrusSearch/tests/phpunit/LexemeFulltextResultTest.php:282

The property in question was just removed by search: Finish refactor of SearchResult; it was previously in RevisionSearchResultTrait AFAICT.

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Marking this as a train blocker for next week because I think it would also break in production, not just in CI.

Change #1196944 had a related patch set uploaded (by Lucas Werkmeister (WMDE); author: Lucas Werkmeister (WMDE)):

[mediawiki/extensions/WikibaseLexemeCirrusSearch@master] Update LexemeResult for upstream refactoring

https://gerrit.wikimedia.org/r/1196944

I suspect that:

			// This copies FormTitleStoreLookup, we could instantiate one instead
			// but that would add a lot of wrapper code.
			if ( $this->mTitle !== null ) {
				$this->mTitle->setFragment( '#' . $result['formId'] );
			}

never quite worked, cirrussearch does not initialize mTitle, it sets title tho... looking into it

Change #1196944 merged by jenkins-bot:

[mediawiki/extensions/WikibaseLexemeCirrusSearch@master] Update LexemeResult for upstream refactoring

https://gerrit.wikimedia.org/r/1196944