WikidataBuilder has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/393365 )
Change subject: New Wikidata Build - 2017-11-25T10:00:01+0000 ...................................................................... New Wikidata Build - 2017-11-25T10:00:01+0000 Change-Id: Ic8aabd1877e1882fedff36f9ac03298b2f950c8e --- M composer.lock M extensions/Constraints/i18n/es.json M extensions/Quality/i18n/roa-tara.json M extensions/Wikibase/client/i18n/az.json M extensions/Wikibase/client/i18n/roa-tara.json M extensions/Wikibase/client/i18n/sat.json M extensions/Wikibase/client/includes/Changes/AffectedPagesFinder.php M extensions/Wikibase/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php M extensions/Wikibase/lib/i18n/ur.json M extensions/Wikibase/repo/i18n/be-tarask.json M extensions/Wikibase/repo/i18n/sat.json M extensions/Wikibase/repo/includes/Content/ItemHandler.php M extensions/Wikibase/repo/includes/Content/PropertyHandler.php M extensions/Wikibase/repo/tests/phpunit/includes/Actions/HistoryEntityActionTest.php M extensions/Wikibase/repo/tests/phpunit/includes/Content/EntityHandlerTest.php M vendor/composer/installed.json 16 files changed, 147 insertions(+), 107 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata refs/changes/65/393365/1 diff --git a/composer.lock b/composer.lock index 7a3dba4..f18e964 100644 --- a/composer.lock +++ b/composer.lock @@ -855,7 +855,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints", - "reference": "c92db5bdcede9018eaf39821049fd10801cd21b9" + "reference": "881e265221b80e6ea20a4baff90e5d53b69ed8a6" }, "require": { "php": ">=5.5.9", @@ -906,7 +906,7 @@ "support": { "issues": "https://phabricator.wikimedia.org/project/profile/1202/" }, - "time": "2017-11-23 15:31:29" + "time": "2017-11-24 22:29:05" }, { "name": "wikibase/data-model", @@ -1166,7 +1166,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQuality", - "reference": "e9b0e8a9f25da82678452a27c2161687d1a23abf" + "reference": "c4ffcf0e023827e167adf2483dcabad36888bc13" }, "require": { "php": ">=5.5.9", @@ -1220,7 +1220,7 @@ "support": { "issues": "https://phabricator.wikimedia.org/project/profile/989/" }, - "time": "2017-11-13 14:54:24" + "time": "2017-11-24 22:28:58" }, { "name": "wikibase/wikibase", @@ -1228,7 +1228,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/Wikibase", - "reference": "3c5940f36b0b4aa706504387672cc67b663e6b82" + "reference": "14bed7070fc07bb9ca6a2cc653d727228029360a" }, "require": { "composer/installers": ">=1.0.1", @@ -1289,7 +1289,7 @@ "issues": "https://phabricator.wikimedia.org/", "irc": "irc://irc.freenode.net/wikidata" }, - "time": "2017-11-24 09:19:37" + "time": "2017-11-24 22:28:34" }, { "name": "wikibase/wikimedia-badges", diff --git a/extensions/Constraints/i18n/es.json b/extensions/Constraints/i18n/es.json index d31db0f..43bb3da 100644 --- a/extensions/Constraints/i18n/es.json +++ b/extensions/Constraints/i18n/es.json @@ -29,8 +29,8 @@ "wbqc-badparameters-short": "Parámetros incorrectos", "wbqc-parameterissues-short": "Incidencias avanzadas", "wbqc-constrainttypehelp-short": "Ayuda", - "wbqc-cached-generic": "Este resultado ha sido cachado y puede ser post-datado", - "wbqc-cached-minutes": "Este resultado esta bloqueado y puede ser post-datado hasta {{PLURAL:$1|1=one minute|$1 minutes}}.", + "wbqc-cached-generic": "Este resultado está prealmacenado y puede estar desfasado.", + "wbqc-cached-minutes": "Este resultado está prealmacenado y puede estar desfasado por hasta {{PLURAL:$1|1=un minuto|$1 minutos}}.", "wbqc-violation-header-parameters": "Parámetros:", "wbqc-violations-group": "Restricciones", "wbqc-violation-message": "La verificación de restricciones ha señalado una violación. Pulsa el icono para obtener más información.", diff --git a/extensions/Quality/i18n/roa-tara.json b/extensions/Quality/i18n/roa-tara.json index 42e9414..a4f0849 100644 --- a/extensions/Quality/i18n/roa-tara.json +++ b/extensions/Quality/i18n/roa-tara.json @@ -12,5 +12,17 @@ "wbq-violations-form-select-all": "(tutte)", "wbq-violations-exceptions-checkbox-label": "Fà 'ndrucà le eccezziune", "wbq-violations-submit-button-label": "Fà 'ndrucà le violazziune", - "wbq-violations-mark-as-exception": "Signe cumme eccezzione" + "wbq-violations-table-header-entity": "Entità", + "wbq-violations-table-header-claim": "Asserzione", + "wbq-violations-table-header-constraint-type": "Tipe", + "wbq-violations-table-header-updated-at": "Urteme aggiornamende", + "wbq-violations-table-header-status": "State", + "wbq-violations-table-header-additional-info": "Otre 'mbormazione", + "wbq-violations-status-violation": "Violazione", + "wbq-violations-status-unverified": "Non verificate", + "wbq-violations-status-exception": "Eccezzione", + "wbq-violations-mark-as-exception": "Signe cumme eccezzione", + "wbq-violations-mark-as-violation": "Signe cumme violazione", + "wbq-violations-next-page": "Pàgena successive >>", + "wbq-violations-prev-page": "<< Pàgena precedende" } diff --git a/extensions/Wikibase/client/i18n/az.json b/extensions/Wikibase/client/i18n/az.json index 65d93a0..6e07278 100644 --- a/extensions/Wikibase/client/i18n/az.json +++ b/extensions/Wikibase/client/i18n/az.json @@ -20,5 +20,6 @@ "wikibase-rc-wikibase-edit-letter": "D", "wikibase-rc-wikibase-edit-title": "{{WBREPONAME}} redaktəsi", "wikibase-rcfilters-hide-wikibase-label": "{{WBREPONAME}} redaktələri", + "wikibase-pageinfo-entity-id": "Elementin {{WBREPONAME}} identifikatoru", "wikibase-otherprojects": "Digər layihələr" } diff --git a/extensions/Wikibase/client/i18n/roa-tara.json b/extensions/Wikibase/client/i18n/roa-tara.json index a06f3d6..85a4f99 100644 --- a/extensions/Wikibase/client/i18n/roa-tara.json +++ b/extensions/Wikibase/client/i18n/roa-tara.json @@ -6,6 +6,8 @@ }, "wikibase-client-desc": "Cliende pe l'estenzione Uicchibase", "tooltip-t-wikibase": "Appuende a 'a vôsce de l'archivije date collegate", + "apihelp-query+wbentityusage-description": "Tuèrne tutte le ID de l'entità ausate jndr'à le pàggene indicate.", + "apihelp-query+wbentityusage-summary": "Tuèrne tutte le ID de l'entità ausate jndr'à le pàggene indicate.", "wikibase-comment-update": "Vôsce de {{WBREPONAME}} cangiate", "wikibase-comment-sitelink-add": "Collegamende d'a lènghe aggiunde: $1", "wikibase-comment-sitelink-change": "Collegamende 'a lènghe cangiate da $1 a $2", @@ -31,9 +33,13 @@ "wikibase-replicationnote": "Pe piacere te 'mbormame ca ponne passà diverse minute fine ca le cangiaminde ponne essere 'ndrucate sus a tutte le uicchi", "wikibase-watchlist-show-changes-pref": "Fà vedè le cangiaminde de {{WBREPONAME}} jndr'à l'elenghe de le pàggene condrollate", "wikibase-error-serialize-error": "'A serializzazzione de le date ave sciute a male.", + "unconnectedpages": "Pàggene none collegate a le eleminde", "wikibase-unconnectedpages-submit": "'Ndruche le pàggene", "pageswithbadges": "Pàggene cu le badge", "wikibase-pageswithbadges-badge": "Badge:", + "wikibase-entityusage-entity": "Entità:", + "wikibase-entityusage-submit": "'Ndruche le pàggene", + "wikibase-pageinfo-entity-id": "ID d'a vôsce de {{WBREPONAME}}", "wikibase-pageinfo-entity-id-none": "Ninde", "wikibase-otherprojects": "Jndr'à otre pruggette" } diff --git a/extensions/Wikibase/client/i18n/sat.json b/extensions/Wikibase/client/i18n/sat.json index a88cc7b..3cd6927 100644 --- a/extensions/Wikibase/client/i18n/sat.json +++ b/extensions/Wikibase/client/i18n/sat.json @@ -6,15 +6,15 @@ "Ramjit Tudu" ] }, - "tooltip-t-wikibase": "ᱜᱩᱫᱟᱹᱢ ᱚᱲᱟᱜ ᱥᱟᱶᱛᱮᱱ ᱠᱟᱛᱷᱟᱠᱩ ᱡᱳᱱᱳᱲ", + "tooltip-t-wikibase": "ᱜᱩᱫᱟᱹᱢ ᱚᱲᱟᱜ ᱥᱟᱶᱛᱮᱱ ᱠᱟᱛᱷᱟᱠᱩ ᱡᱚᱱᱚᱲ", "wikibase-comment-update": "{{WBREPONAME}} ᱥᱟᱛᱚᱢ ᱵᱚᱫᱚᱞ ᱦᱩᱭᱠᱟᱱᱟ", "wikibase-dataitem": "{{WBREPONAME}} item", - "wikibase-editlinks": "Joṛao jut", - "wikibase-editlinkstitle": "ᱵᱷᱤᱛᱨᱤ ᱯᱟᱹᱨᱥᱤ ᱡᱳᱱᱳᱲ ᱠᱚ ᱵᱚᱫᱚᱞ", + "wikibase-editlinks": "ᱡᱚᱱᱚᱲᱠᱩ ᱥᱟᱯᱲᱟᱣ", + "wikibase-editlinkstitle": "ᱵᱷᱤᱛᱨᱤ ᱯᱟᱹᱨᱥᱤ ᱡᱚᱱᱚᱲ ᱠᱚ ᱵᱚᱫᱚᱞ", "wikibase-rc-hide-wikidata": "$1 {{WBREPONAME}}", "wikibase-rc-hide-wikidata-hide": "Danaṅ", "wikibase-rc-hide-wikidata-show": "Uduḱme", "wikibase-rc-wikibase-edit-letter": "Ḍ", "wikibase-rc-wikibase-edit-title": "Toṅge", - "wikibase-otherprojects": "eṭaḱ porjeṭko" + "wikibase-otherprojects": "ᱮᱴᱟᱜ ᱯᱨᱚᱡᱮᱠᱴ ᱠᱚᱨᱮ" } diff --git a/extensions/Wikibase/client/includes/Changes/AffectedPagesFinder.php b/extensions/Wikibase/client/includes/Changes/AffectedPagesFinder.php index 91d2440..99632b5 100644 --- a/extensions/Wikibase/client/includes/Changes/AffectedPagesFinder.php +++ b/extensions/Wikibase/client/includes/Changes/AffectedPagesFinder.php @@ -3,11 +3,6 @@ namespace Wikibase\Client\Changes; use ArrayIterator; -use Diff\DiffOp\Diff\Diff; -use Diff\DiffOp\DiffOp; -use Diff\DiffOp\DiffOpAdd; -use Diff\DiffOp\DiffOpChange; -use Diff\DiffOp\DiffOpRemove; use InvalidArgumentException; use Title; use Traversable; @@ -19,10 +14,10 @@ use Wikibase\Client\Usage\UsageAspectTransformer; use Wikibase\Client\Usage\UsageLookup; use Wikibase\DataModel\Entity\EntityId; -use Wikibase\DataModel\Services\Diff\EntityDiff; -use Wikibase\DataModel\Services\Diff\ItemDiff; use Wikibase\EntityChange; use Wikibase\ItemChange; +use Wikibase\Lib\Changes\EntityDiffChangedAspects; +use Wikibase\Lib\Changes\EntityDiffChangedAspectsFactory; use Wikibase\Lib\Store\StorageException; /** @@ -120,58 +115,56 @@ } /** - * @param EntityChange $change + * @param EntityChange|EntityDiffChangedAspects $change * * @return string[] */ - public function getChangedAspects( EntityChange $change ) { + public function getChangedAspects( $change ) { $aspects = []; - $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, description - // and alias diffs for performance reasons. - // For a better solution, see T113468. - $aspects[] = EntityUsage::OTHER_USAGE; - return $aspects; + if ( $change instanceof EntityChange ) { + $diff = $change->getDiff(); + $diffAspects = ( new EntityDiffChangedAspectsFactory() )->newFromEntityDiff( $diff ); + } elseif ( $change instanceof EntityDiffChangedAspects ) { + $diffAspects = $change; + } else { + throw new InvalidArgumentException( 'AffectedPagesFinder::getChangedAspects accepts ' . + 'EntityChange or EntityDiffChangedAspects' ); } - if ( $diff instanceof ItemDiff && !$diff->getSiteLinkDiff()->isEmpty() ) { - $siteLinkDiff = $diff->getSiteLinkDiff(); - + if ( $diffAspects->getSiteLinkChanges() !== [] ) { + $sitelinkChanges = $diffAspects->getSiteLinkChanges(); $aspects[] = EntityUsage::SITELINK_USAGE; - $remainingDiffOps -= count( $siteLinkDiff ); - if ( isset( $siteLinkDiff[$this->siteId] ) - && !$this->isBadgesOnlyChange( $siteLinkDiff[$this->siteId] ) + if ( isset( $sitelinkChanges[$this->siteId] ) + && !$this->isBadgesOnlyChange( $sitelinkChanges[$this->siteId] ) ) { $aspects[] = EntityUsage::TITLE_USAGE; } } - if ( $diff instanceof EntityDiff ) { - $labelsDiff = $diff->getLabelsDiff(); - $descriptionsDiff = $diff->getDescriptionsDiff(); - - if ( !$labelsDiff->isEmpty() ) { - $labelAspects = $this->getChangedTermAspects( EntityUsage::LABEL_USAGE, $labelsDiff ); - $aspects = array_merge( $aspects, $labelAspects ); - $remainingDiffOps -= count( $labelAspects ); - } - - if ( !$descriptionsDiff->isEmpty() ) { - $descriptionsAspects = $this->getChangedTermAspects( EntityUsage::DESCRIPTION_USAGE, $descriptionsDiff ); - $aspects = array_merge( $aspects, $descriptionsAspects ); - $remainingDiffOps -= count( $descriptionsAspects ); - } + if ( $diffAspects->getLabelChanges() !== [] ) { + $labelAspects = $this->getChangedTermAspects( + EntityUsage::LABEL_USAGE, + $diffAspects->getLabelChanges() + ); + $aspects = array_merge( $aspects, $labelAspects ); } - // FIXME: EntityChange suppresses various kinds of diffs (see above). T113468. + if ( $diffAspects->getDescriptionChanges() !== [] ) { + $descriptionsAspects = $this->getChangedTermAspects( + EntityUsage::DESCRIPTION_USAGE, + $diffAspects->getDescriptionChanges() + ); + $aspects = array_merge( $aspects, $descriptionsAspects ); + } - if ( $remainingDiffOps > 0 ) { + if ( ( $diffAspects->getStatementChanges() !== [] ) || ( $diffAspects->hasOtherChanges() !== false ) ) { + $aspects[] = EntityUsage::OTHER_USAGE; + } + + if ( $aspects === [] ) { + // This is needed when diff is supressed for performance reasons $aspects[] = EntityUsage::OTHER_USAGE; } @@ -180,14 +173,14 @@ /** * @param string $aspect - * @param Diff $diff + * @param string[] $diff * * @return string[] */ - private function getChangedTermAspects( $aspect, Diff $diff ) { + private function getChangedTermAspects( $aspect, array $diff ) { $aspects = []; - foreach ( $diff as $lang => $diffOp ) { + foreach ( $diff as $lang ) { $aspects[] = EntityUsage::makeAspectKey( $aspect, $lang ); } @@ -225,10 +218,18 @@ $usages = $this->transformAllPageEntityUsages( $usages, $entityId, $changedAspects ); if ( $change instanceof ItemChange && in_array( EntityUsage::TITLE_USAGE, $changedAspects ) ) { - $siteLinkDiff = $change->getSiteLinkDiff(); - $namesFromDiff = $this->getPagesReferencedInDiff( $siteLinkDiff ); + $diffChangedAspects = ( new EntityDiffChangedAspectsFactory() )->newFromEntityDiff( + $change->getDiff() + ); + $namesFromDiff = $this->getPagesReferencedInDiff( + $diffChangedAspects->getSiteLinkChanges() + ); $titlesFromDiff = $this->getTitlesFromTexts( $namesFromDiff ); - $usagesFromDiff = $this->makeVirtualUsages( $titlesFromDiff, $entityId, [ EntityUsage::SITELINK_USAGE ] ); + $usagesFromDiff = $this->makeVirtualUsages( + $titlesFromDiff, + $entityId, + [ EntityUsage::SITELINK_USAGE ] + ); //FIXME: we can't really merge if $usages is an iterator, not an array. //TODO: Inject $usagesFromDiff "on the fly" while streaming other usages. @@ -259,45 +260,33 @@ } /** - * @param Diff $siteLinkDiff + * @param array[] $siteLinkDiff * * @throws UnexpectedValueException * @return string[] */ - private function getPagesReferencedInDiff( Diff $siteLinkDiff ) { + private function getPagesReferencedInDiff( array $siteLinkDiff ) { $pagesToUpdate = []; + $siteLinkDiffWiki = $siteLinkDiff[$this->siteId]; - // $siteLinkDiff changed from containing atomic diffs to - // containing map diffs. For B/C, handle both cases. - $siteLinkDiffOp = $siteLinkDiff[$this->siteId]; - - if ( $siteLinkDiffOp instanceof Diff && array_key_exists( 'name', $siteLinkDiffOp ) ) { - $siteLinkDiffOp = $siteLinkDiffOp['name']; + if ( $siteLinkDiffWiki[0] !== null ) { + $pagesToUpdate[] = $siteLinkDiffWiki[0]; } - if ( $siteLinkDiffOp instanceof DiffOpAdd ) { - $pagesToUpdate[] = $siteLinkDiffOp->getNewValue(); - } elseif ( $siteLinkDiffOp instanceof DiffOpRemove ) { - $pagesToUpdate[] = $siteLinkDiffOp->getOldValue(); - } elseif ( $siteLinkDiffOp instanceof DiffOpChange ) { - $pagesToUpdate[] = $siteLinkDiffOp->getNewValue(); - $pagesToUpdate[] = $siteLinkDiffOp->getOldValue(); - } else { - throw new UnexpectedValueException( - "Unknown change operation: " . get_class( $siteLinkDiffOp ) . ")" - ); + if ( $siteLinkDiffWiki[1] !== null ) { + $pagesToUpdate[] = $siteLinkDiffWiki[1]; } return $pagesToUpdate; } /** - * @param DiffOp $siteLinkDiffOp + * @param array $siteLinkDiff * * @return bool */ - private function isBadgesOnlyChange( DiffOp $siteLinkDiffOp ) { - return $siteLinkDiffOp instanceof Diff && !array_key_exists( 'name', $siteLinkDiffOp ); + private function isBadgesOnlyChange( array $siteLinkDiff ) { + return ( $siteLinkDiff[0] === $siteLinkDiff[1] && $siteLinkDiff[2] === true ); } /** diff --git a/extensions/Wikibase/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php b/extensions/Wikibase/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php index 7f07c52..59c9432 100644 --- a/extensions/Wikibase/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php +++ b/extensions/Wikibase/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php @@ -18,6 +18,7 @@ use Wikibase\DataModel\Entity\PropertyId; use Wikibase\DataModel\Snak\PropertyValueSnak; use Wikibase\EntityChange; +use Wikibase\Lib\Changes\EntityDiffChangedAspectsFactory; use Wikibase\Lib\Store\SiteLinkLookup; use Wikibase\Lib\Store\StorageException; use Wikibase\Lib\Tests\Changes\TestChanges; @@ -222,6 +223,24 @@ $this->assertEquals( $expected, $actual ); } + /** + * @dataProvider getChangedAspectsProvider + */ + public function testGetChangedAspectsUsingEntityChangeAspects( + array $expected, + EntityChange $change, + $trackUsagesInAllLanguages = false + ) { + $referencedPagesFinder = $this->getAffectedPagesFinder( [], [], $trackUsagesInAllLanguages ); + + $aspects = ( new EntityDiffChangedAspectsFactory() )->newFromEntityDiff( $change->getDiff() ); + $actual = $referencedPagesFinder->getChangedAspects( $aspects ); + + sort( $expected ); + sort( $actual ); + $this->assertEquals( $expected, $actual ); + } + public function getAffectedUsagesByPageProvider() { $labelUsageDe = EntityUsage::LABEL_USAGE . '.de'; $labelUsageEn = EntityUsage::LABEL_USAGE . '.en'; diff --git a/extensions/Wikibase/lib/i18n/ur.json b/extensions/Wikibase/lib/i18n/ur.json index 9242c3f..947b8fb 100644 --- a/extensions/Wikibase/lib/i18n/ur.json +++ b/extensions/Wikibase/lib/i18n/ur.json @@ -4,7 +4,8 @@ "පසිඳු කාවින්ද", "عثمان خان شاہ", "Noor2020", - "Muhammad Shuaib" + "Muhammad Shuaib", + "BukhariSaeed" ] }, "wikibase-sitelinks-wikipedia": "ویکیپیڈیا", @@ -16,5 +17,7 @@ "wikibase-entity-summary-wbsetclaim-update-references": "تبدیل کر دیا گیا {{PLURAL:$4| ایک حوالہ کا| $4 حوالہ جات کے}} {{PLURAL:$3| دعوی|دعوے}}", "wikibase-entity-summary-wbsetclaim-update-rank": "درجہ تبدیل کر دیا گیا {{PLURAL:$3| دعوی کا|دعوے کے }}", "wikibase-item-summary-wbcreate-new": "نئی شے کو تخلیق کیا", + "wikibase-item-summary-wbeditentity-override": "آئٹم کو صاف کریں", + "wikibase-item-summary-wblinktitles-create": "صفحات کے ساتھ جوڑنے کے لیے اس آئٹم کو بنائیں", "wikibase-property-summary-wbcreate-new": "ایک نئی خاصیت پیدا کیا" } diff --git a/extensions/Wikibase/repo/i18n/be-tarask.json b/extensions/Wikibase/repo/i18n/be-tarask.json index 423c18c..53eea32 100644 --- a/extensions/Wikibase/repo/i18n/be-tarask.json +++ b/extensions/Wikibase/repo/i18n/be-tarask.json @@ -142,6 +142,7 @@ "wikibase-itembytitle-lookup-site": "Сайт:", "wikibase-itembytitle-lookup-page": "Старонка:", "wikibase-itembytitle-submit": "Шукаць", + "wikibase-itembytitle-error-site": "Калі ласка, увядзіце існы ідэнтыфікатар сайту, напрыклад, «enwiki» для ангельскай Вікіпэдыі.", "wikibase-itembytitle-create": "Вы можаце таксама [$1 стварыць новы аб’ект].", "wikibase-gotolinkedpage-lookup-site": "Сайт:", "wikibase-gotolinkedpage-error-item-not-found": "Элемэнт ня знойдзены", diff --git a/extensions/Wikibase/repo/i18n/sat.json b/extensions/Wikibase/repo/i18n/sat.json index d0e02d1..b58a1ce 100644 --- a/extensions/Wikibase/repo/i18n/sat.json +++ b/extensions/Wikibase/repo/i18n/sat.json @@ -2,10 +2,11 @@ "@metadata": { "authors": [ "Albinus", - "Ramjit Tudu" + "Ramjit Tudu", + "Manik Soren" ] }, - "wikibase-edit": "Toṅge", + "wikibase-edit": "ᱥᱟᱯᱲᱟᱣ", "wikibase-add": "Joṛao", "wikibase-label-empty": "Jahan lebel Bạnuḱa", "wikibase-description-empty": "Jahan jạṛ baṅ joṅṛao akana", diff --git a/extensions/Wikibase/repo/includes/Content/ItemHandler.php b/extensions/Wikibase/repo/includes/Content/ItemHandler.php index 10a800c..fd23e32 100644 --- a/extensions/Wikibase/repo/includes/Content/ItemHandler.php +++ b/extensions/Wikibase/repo/includes/Content/ItemHandler.php @@ -31,6 +31,7 @@ use Wikibase\SubmitEntityAction; use Wikibase\TermIndex; use Wikibase\ViewEntityAction; +use WikiPage; /** * Content handler for Wikibase items. @@ -110,15 +111,15 @@ */ public function getActionOverrides() { return [ - 'history' => function( Page $page, IContextSource $context ) { + 'history' => function( Page $article, IContextSource $context ) { // NOTE: for now, the callback must work with a WikiPage as well as an Article // object. Once I0335100b2 is merged, this is no longer needed. - if ( !( $page instanceof Article ) ) { - $page = Article::newFromWikiPage( $page, $context ); + if ( $article instanceof WikiPage ) { + $article = Article::newFromWikiPage( $article, $context ); } return new HistoryEntityAction( - $page, + $article, $context, $this->entityIdLookup, $this->labelLookupFactory->newLabelDescriptionLookup( $context->getLanguage() ) diff --git a/extensions/Wikibase/repo/includes/Content/PropertyHandler.php b/extensions/Wikibase/repo/includes/Content/PropertyHandler.php index e201c0e..8b09ef1 100644 --- a/extensions/Wikibase/repo/includes/Content/PropertyHandler.php +++ b/extensions/Wikibase/repo/includes/Content/PropertyHandler.php @@ -27,6 +27,7 @@ use Wikibase\SubmitEntityAction; use Wikibase\TermIndex; use Wikibase\ViewEntityAction; +use WikiPage; /** * Content handler for Wikibase items. @@ -105,15 +106,15 @@ */ public function getActionOverrides() { return [ - 'history' => function( Page $page, IContextSource $context ) { + 'history' => function( Page $article, IContextSource $context ) { // NOTE: for now, the callback must work with a WikiPage as well as an Article // object. Once I0335100b2 is merged, this is no longer needed. - if ( !( $page instanceof Article ) ) { - $page = Article::newFromWikiPage( $page, $context ); + if ( $article instanceof WikiPage ) { + $article = Article::newFromWikiPage( $article, $context ); } return new HistoryEntityAction( - $page, + $article, $context, $this->entityIdLookup, $this->labelLookupFactory->newLabelDescriptionLookup( $context->getLanguage() ) diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/Actions/HistoryEntityActionTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/Actions/HistoryEntityActionTest.php index c1d4c3f..f67a6d3 100644 --- a/extensions/Wikibase/repo/tests/phpunit/includes/Actions/HistoryEntityActionTest.php +++ b/extensions/Wikibase/repo/tests/phpunit/includes/Actions/HistoryEntityActionTest.php @@ -36,16 +36,14 @@ const DUMMY_LANGUAGE = 'qqx'; /** - * @param string $title - * * @return Article */ - private function getPage( $title ) { + private function getArticle() { $page = $this->getMockBuilder( Article::class ) ->disableOriginalConstructor() ->getMock(); $page->method( 'getTitle' ) - ->willReturn( Title::newFromText( $title ) ); + ->willReturn( Title::newFromText( 'Page title' ) ); $page->expects( $this->never() ) ->method( 'getPage' ) // Deserializing the full entity may fail, see https://gerrit.wikimedia.org/r/262881 @@ -140,7 +138,7 @@ ->with( $expected ); $action = new HistoryEntityAction( - $this->getPage( 'Page title' ), + $this->getArticle(), $this->getContext( $output ), $entityIdLookup, $labelLookup diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/Content/EntityHandlerTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/Content/EntityHandlerTest.php index 26d13c4..2e14f32 100644 --- a/extensions/Wikibase/repo/tests/phpunit/includes/Content/EntityHandlerTest.php +++ b/extensions/Wikibase/repo/tests/phpunit/includes/Content/EntityHandlerTest.php @@ -11,6 +11,7 @@ use InvalidArgumentException; use Language; use LogicException; +use MediaWiki\Storage\PageIdentityValue; use MWException; use PHPUnit_Framework_MockObject_MockObject; use RequestContext; @@ -240,12 +241,19 @@ $title->method( 'exists' ) ->will( $this->returnValue( true ) ); - $title->method( 'getArticleId' ) + $title->method( 'getArticleID' ) ->will( $this->returnValue( $id ) ); - $title->method( 'getLatestRevId' ) + $title->method( 'getLatestRevID' ) ->will( $this->returnValue( $id ) ); + // TODO: remove conditional as soon as Title::getPageIdentity() is in core. + if ( method_exists( Title::class, 'getPageIdentity' ) ) { + $page = PageIdentityValue::newFromDBKey( $id, NS_MAIN, __CLASS__ ); + $title->method( 'getPageIdentity' ) + ->will( $this->returnValue( $page ) ); + } + $revision = new Revision( [ 'id' => $id, 'title' => $title, diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 56cd02f..e1a7841 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1298,7 +1298,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/Wikibase", - "reference": "3c5940f36b0b4aa706504387672cc67b663e6b82" + "reference": "14bed7070fc07bb9ca6a2cc653d727228029360a" }, "require": { "composer/installers": ">=1.0.1", @@ -1327,7 +1327,7 @@ "mediawiki/minus-x": "0.1.0", "wikibase/wikibase-codesniffer": "^0.2.0" }, - "time": "2017-11-24 09:19:20", + "time": "2017-11-24 22:28:34", "type": "mediawiki-extension", "installation-source": "source", "scripts": { @@ -1369,7 +1369,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQuality", - "reference": "e9b0e8a9f25da82678452a27c2161687d1a23abf" + "reference": "c4ffcf0e023827e167adf2483dcabad36888bc13" }, "require": { "php": ">=5.5.9", @@ -1390,7 +1390,7 @@ "wikibase/data-model-serialization": ">=0.1 <3.0", "wikibase/wikibase-codesniffer": "^0.2.0" }, - "time": "2017-11-13 14:54:24", + "time": "2017-11-24 22:28:58", "type": "mediawiki-extension", "installation-source": "source", "scripts": { @@ -1433,7 +1433,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints", - "reference": "c92db5bdcede9018eaf39821049fd10801cd21b9" + "reference": "881e265221b80e6ea20a4baff90e5d53b69ed8a6" }, "require": { "php": ">=5.5.9", @@ -1450,7 +1450,7 @@ "satooshi/php-coveralls": "master-dev", "wikibase/wikibase-codesniffer": "^0.2.0" }, - "time": "2017-11-23 15:21:59", + "time": "2017-11-24 22:29:05", "type": "mediawiki-extension", "installation-source": "source", "scripts": { -- To view, visit https://gerrit.wikimedia.org/r/393365 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic8aabd1877e1882fedff36f9ac03298b2f950c8e Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikidata Gerrit-Branch: master Gerrit-Owner: WikidataBuilder <wikidata-servi...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits