JanZerebecki has uploaded a new change for review.

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

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
Change-Id: I21d3f62303a7e602b3f4f96194b539e07726a5e6
(cherry picked from commit ea531dec429cb22e5ca500d0b8eb07b0c049aa9a)
---
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/64/240364/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/240364
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I21d3f62303a7e602b3f4f96194b539e07726a5e6
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: master
Gerrit-Owner: JanZerebecki <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to