JanZerebecki has uploaded a new change for review.
https://gerrit.wikimedia.org/r/240365
Change subject: Update Wikidata - No longer ignore changes to statements when
processing changes on the client
......................................................................
Update Wikidata - No longer ignore changes to statements when processing
changes on the client
BACKPORT
Bug: T113456
Build-For: Change-Id: I21d3f62303a7e602b3f4f96194b539e07726a5e6
(cherry picked from commit ea531dec429cb22e5ca500d0b8eb07b0c049aa9a)
Change-Id: I6fedf0283b24311a5b67b305c8734a8b1b7f5723
---
M composer.lock
M extensions/Wikibase/client/includes/Changes/AffectedPagesFinder.php
M
extensions/Wikibase/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php
M extensions/Wikibase/lib/includes/changes/EntityChangeFactory.php
M vendor/composer/autoload_classmap.php
M vendor/composer/installed.json
6 files changed, 47 insertions(+), 19 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata
refs/changes/65/240365/1
diff --git a/composer.lock b/composer.lock
index d342695..4f2d1db 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1,7 +1,7 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
- "Read more about it at
https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
+ "Read more about it at
http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "b773d2978bb9441065f4be59fec020fd",
@@ -1385,7 +1385,7 @@
"source": {
"type": "git",
"url":
"https://gerrit.wikimedia.org/r/mediawiki/extensions/Wikibase",
- "reference": "61a3888d245e1ce27f874bce7d0ea0134e9c5ac5"
+ "reference": "fab4d7fdc1ac3d68245430adf497b5aa9d433bd1"
},
"require": {
"data-values/common": "~0.3.0",
@@ -1467,7 +1467,7 @@
"issues": "https://phabricator.wikimedia.org/",
"irc": "irc://irc.freenode.net/wikidata"
},
- "time": "2015-09-21 13:04:56"
+ "time": "2015-09-23 13:10:00"
},
{
"name": "wikibase/wikimedia-badges",
diff --git
a/extensions/Wikibase/client/includes/Changes/AffectedPagesFinder.php
b/extensions/Wikibase/client/includes/Changes/AffectedPagesFinder.php
index 3ec8073..827ca0f 100644
--- a/extensions/Wikibase/client/includes/Changes/AffectedPagesFinder.php
+++ b/extensions/Wikibase/client/includes/Changes/AffectedPagesFinder.php
@@ -128,6 +128,15 @@
$diff = $change->getDiff();
$remainingDiffOps = count( $diff ); // this is a "deep" count!
+ if ( $remainingDiffOps === 0 ) {
+ // HACK: assume an empty diff implies that some "other"
aspect of the entity was changed.
+ // This is needed since
EntityChangeFactory::newFromUpdate suppresses statement diffs for
+ // performance reasons.
+ // For a better solution, see T113468.
+ $aspects[] = EntityUsage::OTHER_USAGE;
+ return $aspects;
+ }
+
if ( $diff instanceof ItemDiff &&
!$diff->getSiteLinkDiff()->isEmpty() ) {
$siteLinkDiff = $diff->getSiteLinkDiff();
diff --git
a/extensions/Wikibase/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php
b/extensions/Wikibase/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php
index d1eb145..2365d83 100644
---
a/extensions/Wikibase/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php
+++
b/extensions/Wikibase/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php
@@ -3,6 +3,8 @@
namespace Wikibase\Client\Tests\Changes;
use ArrayIterator;
+use DataValues\DataValue;
+use DataValues\StringValue;
use Title;
use Wikibase\Client\Changes\AffectedPagesFinder;
use Wikibase\Client\Store\TitleFactory;
@@ -11,6 +13,9 @@
use Wikibase\Client\Usage\SiteLinkUsageLookup;
use Wikibase\DataModel\Entity\Item;
use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\DataModel\Entity\PropertyId;
+use Wikibase\DataModel\Snak\PropertyValueSnak;
+use Wikibase\DataModel\Statement\Statement;
use Wikibase\ItemChange;
use Wikibase\Lib\Store\StorageException;
use Wikibase\Test\TestChanges;
@@ -157,7 +162,7 @@
)
);
- $cases['other language label change on Q1'] = array(
+ $cases['alias change on Q1'] = array(
array( EntityUsage::OTHER_USAGE ),
$changeFactory->newFromUpdate(
ItemChange::UPDATE,
@@ -181,6 +186,15 @@
$changeFactory->newFromUpdate( ItemChange::UPDATE,
$this->getItemWithSiteLinks( $q1, array(
'enwiki' => '1' ) ),
$this->getItemWithSiteLinks( $q1, array(
'enwiki' => '1' ), $badges ) )
+ );
+
+ $cases['statement change on Q1'] = array(
+ array( EntityUsage::OTHER_USAGE ),
+ $changeFactory->newFromUpdate(
+ ItemChange::UPDATE,
+ new Item( $q1 ),
+ $this->getItemWithStatement( $q1, new
PropertyId( 'P5' ), new StringValue( 'Hello' ) )
+ )
);
return $cases;
@@ -522,6 +536,22 @@
}
/**
+ * @param ItemId $qid
+ * @param PropertyId $pid
+ * @param DataValue $value
+ *
+ * @return Item
+ */
+ private function getItemWithStatement( ItemId $qid, PropertyId $pid,
DataValue $value ) {
+ $snak = new PropertyValueSnak( $pid, $value );
+
+ $item = new Item( $qid );
+ $item->getStatements()->addNewStatement( $snak );
+
+ return $item;
+ }
+
+ /**
* @param PageEntityUsages[]|Iterator<PageEntityUsages> $usagesPerPage
*
* @return PageEntityUsages[]
diff --git a/extensions/Wikibase/lib/includes/changes/EntityChangeFactory.php
b/extensions/Wikibase/lib/includes/changes/EntityChangeFactory.php
index 78fdeb1..ac49cb6 100644
--- a/extensions/Wikibase/lib/includes/changes/EntityChangeFactory.php
+++ b/extensions/Wikibase/lib/includes/changes/EntityChangeFactory.php
@@ -137,8 +137,9 @@
$id = $newEntity->getId();
}
- // don't include statements diff, since those are unused and
not helpful
+ // HACK: don't include statements diff, since those are unused
and not helpful
// performance-wise to the dispatcher and change handling.
+ // For a better solution, see T113468.
if ( $oldEntity instanceof StatementListHolder ) {
$oldEntity->setStatements( new StatementList() );
$newEntity->setStatements( new StatementList() );
diff --git a/vendor/composer/autoload_classmap.php
b/vendor/composer/autoload_classmap.php
index 5b34fc4..c705be3 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -254,11 +254,6 @@
'WikibaseQuality\\ConstraintReport\\EvaluateConstraintReportJobService' =>
$baseDir .
'/extensions/Constraints/includes/EvaluateConstraintReportJobService.php',
'WikibaseQuality\\ConstraintReport\\Maintenance\\UpdateConstraintsTable'
=> $baseDir . '/extensions/Constraints/maintenance/UpdateConstraintsTable.php',
'WikibaseQuality\\ConstraintReport\\Specials\\SpecialConstraintReport' =>
$baseDir . '/extensions/Constraints/specials/SpecialConstraintReport.php',
- 'WikibaseQuality\\ConstraintReport\\Tests\\ConstraintRepositoryTest' =>
$baseDir . '/extensions/Constraints/tests/phpunit/ConstraintRepositoryTest.php',
- 'WikibaseQuality\\ConstraintReport\\Tests\\ConstraintTest' => $baseDir .
'/extensions/Constraints/tests/phpunit/ConstraintTest.php',
-
'WikibaseQuality\\ConstraintReport\\Tests\\EvaluateConstraintReportJobServiceTest'
=> $baseDir .
'/extensions/Constraints/tests/phpunit/EvaluateConstraintReportJobServiceTest.php',
-
'WikibaseQuality\\ConstraintReport\\Tests\\Maintenance\\UpdateConstraintsTableTest'
=> $baseDir .
'/extensions/Constraints/tests/phpunit/Maintenance/UpdateConstraintsTableTest.php',
-
'WikibaseQuality\\ConstraintReport\\Tests\\Specials\\SpecialConstraintReport\\SpecialConstraintReportTest'
=> $baseDir .
'/extensions/Constraints/tests/phpunit/Specials/SpecialConstraintReportTest.php',
'WikibaseQuality\\Html\\HtmlTableBuilder' => $baseDir .
'/extensions/Quality/includes/Html/HtmlTableBuilder.php',
'WikibaseQuality\\Html\\HtmlTableCellBuilder' => $baseDir .
'/extensions/Quality/includes/Html/HtmlTableCellBuilder.php',
'WikibaseQuality\\Html\\HtmlTableHeaderBuilder' => $baseDir .
'/extensions/Quality/includes/Html/HtmlTableHeaderBuilder.php',
@@ -1365,14 +1360,7 @@
'Wikimedia\\Purtle\\RdfWriter' => $baseDir .
'/extensions/Wikibase/purtle/src/RdfWriter.php',
'Wikimedia\\Purtle\\RdfWriterBase' => $baseDir .
'/extensions/Wikibase/purtle/src/RdfWriterBase.php',
'Wikimedia\\Purtle\\RdfWriterFactory' => $baseDir .
'/extensions/Wikibase/purtle/src/RdfWriterFactory.php',
- 'Wikimedia\\Purtle\\Tests\\BNodeLabelerTest' => $baseDir .
'/extensions/Wikibase/purtle/tests/phpunit/BNodeLabelerTest.php',
- 'Wikimedia\\Purtle\\Tests\\N3QuoterTest' => $baseDir .
'/extensions/Wikibase/purtle/tests/phpunit/N3QuoterTest.php',
- 'Wikimedia\\Purtle\\Tests\\NTriplesRdfWriterTest' => $baseDir .
'/extensions/Wikibase/purtle/tests/phpunit/NTriplesRdfWriterTest.php',
- 'Wikimedia\\Purtle\\Tests\\RdfWriterFactoryTest' => $baseDir .
'/extensions/Wikibase/purtle/tests/phpunit/RdfWriterFactoryTest.php',
'Wikimedia\\Purtle\\Tests\\RdfWriterTestBase' => $baseDir .
'/extensions/Wikibase/purtle/tests/phpunit/RdfWriterTestBase.php',
- 'Wikimedia\\Purtle\\Tests\\TurtleRdfWriterTest' => $baseDir .
'/extensions/Wikibase/purtle/tests/phpunit/TurtleRdfWriterTest.php',
- 'Wikimedia\\Purtle\\Tests\\UnicodeEscaperTest' => $baseDir .
'/extensions/Wikibase/purtle/tests/phpunit/UnicodeEscaperTest.php',
- 'Wikimedia\\Purtle\\Tests\\XmlRdfWriterTest' => $baseDir .
'/extensions/Wikibase/purtle/tests/phpunit/XmlRdfWriterTest.php',
'Wikimedia\\Purtle\\TurtleRdfWriter' => $baseDir .
'/extensions/Wikibase/purtle/src/TurtleRdfWriter.php',
'Wikimedia\\Purtle\\UnicodeEscaper' => $baseDir .
'/extensions/Wikibase/purtle/src/UnicodeEscaper.php',
'Wikimedia\\Purtle\\XmlRdfWriter' => $baseDir .
'/extensions/Wikibase/purtle/src/XmlRdfWriter.php',
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index e6bc782..6863645 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1473,7 +1473,7 @@
"source": {
"type": "git",
"url":
"https://gerrit.wikimedia.org/r/mediawiki/extensions/Wikibase",
- "reference": "61a3888d245e1ce27f874bce7d0ea0134e9c5ac5"
+ "reference": "fab4d7fdc1ac3d68245430adf497b5aa9d433bd1"
},
"require": {
"data-values/common": "~0.3.0",
@@ -1503,7 +1503,7 @@
"require-dev": {
"squizlabs/php_codesniffer": "~2.1"
},
- "time": "2015-09-18 08:43:25",
+ "time": "2015-09-23 12:04:22",
"type": "mediawiki-extension",
"installation-source": "source",
"autoload": {
--
To view, visit https://gerrit.wikimedia.org/r/240365
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6fedf0283b24311a5b67b305c8734a8b1b7f5723
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: wmf/1.26wmf22
Gerrit-Owner: JanZerebecki <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits