WikidataBuilder has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/368580 )

Change subject: New Wikidata Build - 2017-07-30T10:00:02+0000
......................................................................

New Wikidata Build - 2017-07-30T10:00:02+0000

Change-Id: I1f5ae8790678e67d04ba577195a12a4eacf4cfe0
---
M composer.lock
M extensions/Constraints/i18n/roa-tara.json
A extensions/Quality/i18n/sr-ec.json
M extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php
M 
extensions/Wikibase/client/tests/phpunit/includes/Usage/Sql/EntityUsageTableTest.php
M extensions/Wikibase/lib/i18n/sr-ec.json
M extensions/Wikibase/repo/i18n/ko.json
M extensions/Wikibase/repo/i18n/sr-ec.json
M extensions/Wikibase/repo/includes/Specials/SpecialNewEntity.php
M extensions/Wikibase/repo/maintenance/dispatchChanges.php
M vendor/composer/installed.json
11 files changed, 147 insertions(+), 35 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata 
refs/changes/80/368580/1

diff --git a/composer.lock b/composer.lock
index 8432002..12acc10 100644
--- a/composer.lock
+++ b/composer.lock
@@ -966,7 +966,7 @@
             "source": {
                 "type": "git",
                 "url": 
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints";,
-                "reference": "744bc12339f0d6567ce2790ffd01d73b9f60310a"
+                "reference": "ebbaf106782b8e6c6639a6edcb02587b8e7bfeaf"
             },
             "require": {
                 "php": ">=5.5.9",
@@ -1027,7 +1027,7 @@
             "support": {
                 "issues": 
"https://phabricator.wikimedia.org/project/profile/1202/";
             },
-            "time": "2017-07-27 21:24:23"
+            "time": "2017-07-28 20:48:18"
         },
         {
             "name": "wikibase/data-model",
@@ -1432,7 +1432,7 @@
             "source": {
                 "type": "git",
                 "url": 
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQuality";,
-                "reference": "1e4dfadae8a41c5794d0670c83bf28243b2e2481"
+                "reference": "22aafec778ad7605863090758753c21e79ed44df"
             },
             "require": {
                 "php": ">=5.5.9",
@@ -1491,7 +1491,7 @@
             "support": {
                 "issues": 
"https://phabricator.wikimedia.org/project/profile/989/";
             },
-            "time": "2017-07-26 20:59:16"
+            "time": "2017-07-28 20:48:10"
         },
         {
             "name": "wikibase/serialization-javascript",
@@ -1540,12 +1540,12 @@
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-                "reference": "83ce335686dbd44384d9e5704191e32dd286da51"
+                "reference": "10974ed2f854d8590ef4feed325d32f190bf48b8"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/83ce335686dbd44384d9e5704191e32dd286da51";,
-                "reference": "83ce335686dbd44384d9e5704191e32dd286da51",
+                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/10974ed2f854d8590ef4feed325d32f190bf48b8";,
+                "reference": "10974ed2f854d8590ef4feed325d32f190bf48b8",
                 "shasum": ""
             },
             "require": {
@@ -1621,7 +1621,7 @@
                 "wikibaserepo",
                 "wikidata"
             ],
-            "time": "2017-07-27 21:24:03"
+            "time": "2017-07-30 08:58:55"
         },
         {
             "name": "wikibase/wikimedia-badges",
diff --git a/extensions/Constraints/i18n/roa-tara.json 
b/extensions/Constraints/i18n/roa-tara.json
index 2267129..f7c655d 100644
--- a/extensions/Constraints/i18n/roa-tara.json
+++ b/extensions/Constraints/i18n/roa-tara.json
@@ -4,5 +4,27 @@
                        "Joetaras"
                ]
        },
-       "wbqc-constraintreport-status-bad-parameters": "Parametre sbagghiate"
+       "wbqc-constraintreport": "Elenghe de le vingole",
+       "wbqc-desc": "Condrolle le vingole sus a le eleminde e sus a le 
probbietà e face 'ndrucà le resultate jndr'à 'na pàgena speciale",
+       "wbqc-constraintreport-form-section": "Condrolle le vingole pe entità",
+       "wbqc-constraintreport-form-submit-label": "Verifiche",
+       "wbqc-constraintreport-form-entityid-label": "ID de l'entità:",
+       "wbqc-constraintreport-result-headline": "Resultate pe",
+       "wbqc-constraintreport-invalid-entity-id": "ID de l'entità non valide.",
+       "wbqc-constraintreport-not-existent-entity": "L'entità non g'esiste.",
+       "wbqc-constraintreport-empty-result": "Non ge stonne vingole definite 
sus a st'entità.",
+       "wbqc-constraintreport-status-violation": "Violazione",
+       "wbqc-constraintreport-status-compliance": "Conforme",
+       "wbqc-constraintreport-status-exception": "Eccezzione",
+       "wbqc-constraintreport-status-todo": "Da fà",
+       "wbqc-constraintreport-status-bad-parameters": "Parametre sbagghiate",
+       "wbqc-constraintreport-status-deprecated": "Sconzigliate",
+       "wbqc-constraintreport-status-warning": "Avvertimende",
+       "wbqc-constraintreport-result-table-header-status": "State",
+       "wbqc-constraintreport-result-table-header-claim": "Asserzione",
+       "wbqc-constraintreport-result-table-header-constraint": "Vingole",
+       "wbqc-constraintreport-result-link-to-claim": "vèje a l'asserzione",
+       "wbqc-constraintreport-result-link-to-constraint": "vèje a 'u vingole",
+       "wbqc-constraintreport-no-parameter": "ninde",
+       "wbqc-problems-short": "Probbleme"
 }
diff --git a/extensions/Quality/i18n/sr-ec.json 
b/extensions/Quality/i18n/sr-ec.json
new file mode 100644
index 0000000..023b0a9
--- /dev/null
+++ b/extensions/Quality/i18n/sr-ec.json
@@ -0,0 +1,18 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Милан Јелисавчић"
+               ]
+       },
+       "wbq-violations-group-label": "Група:",
+       "wbq-violations-type-label": "Врста:",
+       "wbq-violations-form-select-all": "(све)",
+       "wbq-violations-exceptions-checkbox-label": "Прикажи изузетке",
+       "wbq-violations-table-header-claim": "Тврдња",
+       "wbq-violations-table-header-constraint-type": "Врста",
+       "wbq-violations-table-header-status": "Статус",
+       "wbq-violations-table-header-additional-info": "Додатне информације",
+       "wbq-violations-status-unverified": "Непроверено",
+       "wbq-violations-status-exception": "Изузетак",
+       "wbq-violations-mark-as-exception": "Означи као изузетак"
+}
diff --git a/extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php 
b/extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php
index 7ad70b2..913fe21 100644
--- a/extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php
+++ b/extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php
@@ -105,11 +105,20 @@
 
                // Collect affected row IDs, so we can use them for an
                // efficient update query on the master db.
-               $where = [
-                       'eu_page_id' => (int)$pageId,
-                       $db->makeList( $usageConditions, LIST_OR )
-               ];
-               return $this->getPrimaryKeys( $where, __METHOD__ );
+               $rowIds = [];
+               foreach ( array_chunk( $usageConditions, $this->batchSize ) as 
$usageConditionChunk ) {
+                       $where = [
+                               'eu_page_id' => (int)$pageId,
+                               $db->makeList( $usageConditionChunk, LIST_OR )
+                       ];
+
+                       $rowIds = array_merge(
+                               $this->getPrimaryKeys( $where, __METHOD__ ),
+                               $rowIds
+                       );
+               }
+
+               return $rowIds;
        }
 
        /**
diff --git 
a/extensions/Wikibase/client/tests/phpunit/includes/Usage/Sql/EntityUsageTableTest.php
 
b/extensions/Wikibase/client/tests/phpunit/includes/Usage/Sql/EntityUsageTableTest.php
index 7faf802..ff8d310 100644
--- 
a/extensions/Wikibase/client/tests/phpunit/includes/Usage/Sql/EntityUsageTableTest.php
+++ 
b/extensions/Wikibase/client/tests/phpunit/includes/Usage/Sql/EntityUsageTableTest.php
@@ -130,11 +130,13 @@
 
                $usages = [
                        new EntityUsage( $q3, EntityUsage::SITELINK_USAGE ),
+                       new EntityUsage( $q3, EntityUsage::LABEL_USAGE, 'de' ),
+                       new EntityUsage( $q3, EntityUsage::OTHER_USAGE ),
                        new EntityUsage( $q3, EntityUsage::LABEL_USAGE ),
                        new EntityUsage( $q4, EntityUsage::LABEL_USAGE ),
                ];
 
-               $usageTable = $this->getEntityUsageTable();
+               $usageTable = $this->getEntityUsageTable( /* $batchSize = */ 2 
);
 
                // Adding usages should put them into the database
                $usageTable->addUsages( 23, $usages );
@@ -142,10 +144,12 @@
                $rows = $this->getUsageRows( 23, $usages );
                $this->assertUsageTableContains( $rows );
 
-               $usageTable->removeUsages( 23, [ $usages[0] ] );
+               // Test batching by removing more usages than $batchSize
+               $usageTable->removeUsages( 23, [ $usages[0], $usages[2], 
$usages[3] ] );
 
-               $this->assertUsageTableDoesNotContain( array_slice( $rows, 0, 1 
) );
-               $this->assertUsageTableContains( array_slice( $rows, 1 ) );
+               $rows = array_values( $rows );
+               $this->assertUsageTableDoesNotContain( [ $rows[0], $rows[2], 
$rows[3] ] );
+               $this->assertUsageTableContains( [ $rows[1], $rows[4] ] );
        }
 
        private function getUsageStrings( array $usages ) {
diff --git a/extensions/Wikibase/lib/i18n/sr-ec.json 
b/extensions/Wikibase/lib/i18n/sr-ec.json
index a50e87f..5c4f2a9 100644
--- a/extensions/Wikibase/lib/i18n/sr-ec.json
+++ b/extensions/Wikibase/lib/i18n/sr-ec.json
@@ -25,20 +25,26 @@
        "wikibase-error-ui-edit-conflict": "Дошло је до сукоба измена. Сачувате 
измене на локалном нивоу, поново учитајте страницу и сачувајте их.",
        "wikibase-language-fallback-transliteration-hint": "$1 
(транслитерација)",
        "wikibase-quantitydetails-amount": "Количина",
+       "wikibase-quantitydetails-upperbound": "Горња граница",
+       "wikibase-quantitydetails-lowerbound": "Доња граница",
        "wikibase-quantitydetails-unit": "Јединица",
        "wikibase-timedetails-time": "време",
+       "wikibase-timedetails-isotime": "Време и датум",
        "wikibase-timedetails-timezone": "Временска зона",
        "wikibase-timedetails-calendar": "Календар",
+       "wikibase-timedetails-precision": "Прецизност",
        "wikibase-timedetails-before": "Пре",
        "wikibase-timedetails-after": "После",
        "wikibase-globedetails-longitude": "Географска дужина",
        "wikibase-globedetails-latitude": "Географска ширина",
+       "wikibase-globedetails-precision": "Прецизност",
        "wikibase-sitelinks-wikipedia": "Википедија",
        "wikibase-sitelinks-sitename-columnheading": "Језик",
        "wikibase-sitelinks-link-columnheading": "Повезана страница",
        "wikibase-snakview-snaktypeselector-somevalue": "непозната вредност",
        "wikibase-snakview-snaktypeselector-novalue": "нема вредности",
        "wikibase-tooltip-error-details": "Детаљи",
+       "wikibase-validator-invalid": "Погрешна вредност",
        "wikibase-validator-bad-type": "$2 уместо $1",
        "wikibase-validator-too-long": "Не сме бити дуже од {{PLURAL:$1|једног 
знака|$1 знакова}}",
        "wikibase-validator-too-short": "Мора бити најмање {{PLURAL:$1|један 
знак|$1 знакова}} дуго",
@@ -47,6 +53,10 @@
        "wikibase-validator-bad-entity-type": "Неочекивана врста ентитета $1",
        "wikibase-validator-no-such-entity": "$1 није пронађено",
        "wikibase-validator-no-such-property": "Својство $1 није пронађено",
+       "wikibase-validator-bad-value": "Искварена вредност података: $1",
+       "wikibase-validator-bad-value-type": "Погрешна врста података $1, 
очекивано $2",
+       "wikibase-validator-bad-data-type": "Погрешна врста података: $1",
+       "wikibase-validator-unknown-unit": "Непозната јединица: $1",
        "wikibase-validator-not-allowed": "Недозвољена вредност: $1",
        "wikibase-validator-no-validators": "Забрањено",
        "datatypes-type-wikibase-item": "ставка",
@@ -63,8 +73,14 @@
        "wikibase-time-precision-BCE-Mannum": "$1 милиона година п.н.е.",
        "wikibase-time-precision-BCE-annum": "{{PLURAL:$1|$1 године|$1 година}} 
п.н.е.",
        "wikibase-snakformatter-valuetype-mismatch": "Врста вредности „$1“ 
непоклапа се са врстом својства „$2“.",
+       "wikibase-snakformatter-formatting-exception": "Грешка форматирања: 
$1.",
        "wikibase-entity-summary-wbsetitem": "Направљена нова ставка",
+       "wikibase-entity-summary-wbcreate-new": "Направљена нова ставка",
        "wikibase-entity-summary-wbcreateredirect": "Преусмерено на $4",
+       "wikibase-entity-summary-wbeditentity": "Направљена нова ставка",
+       "wikibase-entity-summary-wbeditentity-create": "Направљена нова ставка",
+       "wikibase-entity-summary-wbeditentity-update": "Измењена ставка",
+       "wikibase-entity-summary-wbeditentity-override": "Очишћена ставка",
        "wikibase-entity-summary-wbsetreference": "Унета референца",
        "wikibase-entity-summary-wbsetreference-add": "Додата референца за 
тврдњу",
        "wikibase-entity-summary-wbsetreference-set": "Промењена референца за 
тврдњу:",
diff --git a/extensions/Wikibase/repo/i18n/ko.json 
b/extensions/Wikibase/repo/i18n/ko.json
index dc9c359..0d0f4b1 100644
--- a/extensions/Wikibase/repo/i18n/ko.json
+++ b/extensions/Wikibase/repo/i18n/ko.json
@@ -281,6 +281,7 @@
        "wikibase-mylanguagefallbackchain-text": "개체의 레이블을 표시하는 데 사용되는 언어 폴백 
체인을 아래에 보여줍니다.",
        "wikibase-mylanguagefallbackchain-babel": "{{GENDER:$1|자신의}} 
[[Special:MyPage|사용자 문서]]에 <nowiki>{{#babel: }}</nowiki>을 넣어 편집할 수 있습니다.",
        "wikibase-mylanguagefallbackchain-converted-item": "$1 - $2, $3 - $4에서 
변환됨",
+       "wikibase-api-no-such-entity": "ID \"$1\"의 엔티티를 찾을 수 없습니다.",
        "wikibase-api-no-such-sitelink": "배지 편집을 시도할 때 \"$1\"에 대한 사이트링크를 찾을 수 
없었습니다.",
        "wikibase-api-not-recognized-datatype": "자료형을 예측했으나 존재하지 않거나 인식하지 
못했습니다.",
        "wikibase-self-conflict-patched": "편집을 최신 버전으로 고쳤으며 중간 바뀜이 무시됩니다.",
@@ -338,6 +339,8 @@
        "apihelp-wbparsevalue-summary": "<code>ValueParser</code>를 사용하여 값의 구문을 
분석합니다.",
        "apihelp-wbremovequalifiers-param-bot": "이 편집을 봇으로 표시합니다. 이 URL 플래그는 
사용자가 그룹 \"{{int:group-bot}}\"에 속해 있을 경우에만 준수합니다.",
        "apihelp-wbremovereferences-param-bot": "이 편집을 봇으로 표시합니다. 이 URL 플래그는 
사용자가 그룹 \"{{int:group-bot}}\"에 속해 있을 경우에만 준수합니다.",
+       "apihelp-wbsearchentities-param-props": "각 엔티티마다 이 속성들을 반환합니다.",
+       "apihelp-wbsearchentities-example-5": "URL 변수를 제외하고 영어로 \"alphabet\"을 
검색합니다",
        "apihelp-wbsetaliases-param-bot": "이 편집을 봇으로 표시합니다. 이 URL 플래그는 사용자가 그룹 
\"{{int:group-bot}}\"에 속해 있을 경우에만 준수합니다.",
        "apihelp-wbsetclaim-param-bot": "이 편집을 봇으로 표시합니다. 이 URL 플래그는 사용자가 그룹 
\"{{int:group-bot}}\"에 속해 있을 경우에만 준수합니다.",
        "apihelp-wbsetclaimvalue-param-bot": "이 편집을 봇으로 표시합니다. 이 URL 플래그는 사용자가 
그룹 \"{{int:group-bot}}\"에 속해 있을 경우에만 준수합니다.",
diff --git a/extensions/Wikibase/repo/i18n/sr-ec.json 
b/extensions/Wikibase/repo/i18n/sr-ec.json
index 63eeedf..19032eb 100644
--- a/extensions/Wikibase/repo/i18n/sr-ec.json
+++ b/extensions/Wikibase/repo/i18n/sr-ec.json
@@ -43,6 +43,9 @@
        "wikibase-content-language-edit-label": "Језик:",
        "wikibase-diffview-reference": "референца",
        "wikibase-diffview-rank": "ранг",
+       "wikibase-diffview-rank-preferred": "Пожељни ранг",
+       "wikibase-diffview-rank-normal": "Нормални ранг",
+       "wikibase-diffview-rank-deprecated": "Застарели ранг",
        "wikibase-diffview-qualifier": "квалификатор",
        "wikibase-diffview-label": "назив",
        "wikibase-diffview-alias": "псеудоними",
@@ -115,7 +118,9 @@
        "wikibase-itembytitle-submit": "Претражи",
        "wikibase-itembytitle-create": "Можете такође и [$1 направити ставку].",
        "wikibase-gotolinkedpage-lookup-site": "Сајт:",
+       "wikibase-gotolinkedpage-lookup-item": "Ознака ставке:",
        "wikibase-gotolinkedpage-submit": "Иди",
+       "wikibase-gotolinkedpage-error-item-not-found": "Ставка није пронађена",
        "special-itemdisambiguation": "Вишезначна ставка",
        "wikibase-itemdisambiguation-lookup-fieldset": "Претрага ставки према 
језику и називу",
        "wikibase-itemdisambiguation-lookup-language": "Код језика:",
@@ -129,8 +134,8 @@
        "wikibase-newproperty-datatype": "Врста податка:",
        "wikibase-newproperty-invalid-datatype": "Назначена је неважећа врста 
податка.",
        "wikibase-newproperty-pick-data-type": "(одаберите тип података)",
-       "wikibase-description-helppage": "Помоћ:Опис",
-       "wikibase-label-helppage": "Помоћ:Назив",
+       "wikibase-description-helppage": "Help:Опис",
+       "wikibase-label-helppage": "Help:Назив",
        "special-newitem": "Нова ставка",
        "wikibase-newitem-summary": "Обавезно проверите [[Special:Search|да ли 
ставка већ постоји]]!<br />Требало би да додате 
[[{{int:Wikibase-label-helppage}}|назив]] и 
[[{{int:Wikibase-description-helppage}}|опис]] за све нове ставке.",
        "wikibase-newitem-fieldset": "Прављење нове ставке",
@@ -158,12 +163,17 @@
        "wikibase-setlabeldescriptionaliases-description-label": "Опис:",
        "wikibase-setlabeldescriptionaliases-aliases-label": "Псеудоними:",
        "wikibase-setlabeldescriptionaliases-submit": "Поставите назив, опис и 
псеудониме",
+       "wikibase-setsitelink-site": "Ознака сајта:",
        "wikibase-setsitelink-label": "Веза странице:",
        "wikibase-setsitelink-badges": "Значке:",
        "wikibase-modifyentity-id": "ИД:",
        "wikibase-modifyterm-language": "Код језика:",
+       "special-mergeitems": "Спој две ставке",
+       "wikibase-mergeitems-fromid": "Идентификатор за спајање од",
+       "wikibase-mergeitems-toid": "Идентификатор за спајање у",
        "wikibase-mergeitems-submit": "Споји ставке",
        "wikibase-mergeitems-success": "$1 је спојена у $3 и преусмерена.",
+       "wikibase-itemmerge-permissiondenied": "Приступ је одбијен.",
        "wikibase-itemmerge-no-such-entity": "Ставка није пронађена.",
        "special-dispatchstats": "Статистика дневника отпрема",
        "wikibase-dispatchstats-no-stats": "Тренутно нема расположивих 
статистика.",
@@ -206,6 +216,7 @@
        "wikibase-entitydata-unsupported-format": "Формат података $1 не 
подржава овај интерфејс.",
        "wikibase-entitydata-title": "Подаци за унос",
        "wikibase-entitydata-text": "Ова страница садржи интерфејс повезаних 
података до вредности ентитета. Молимо да повежете ID ентитета у URL, користећи 
синтаксу подстранице.\n* Преговарање око садржаја се примењује на основу 
клијентовог заглавља Прихвати. Ово значи да ће подаци за ентитете да буду дати 
у формату који је одабрао Ваш клијент. За веб-прегледаче, ово ће да буде HTML, 
због чега ће Ваш прегледач да преусмери до обичне странице ентитета.\n* Можете 
експлицитно захтевати одређени формат података додавањем припадајуће екстензије 
датотеке на ID ентитета: Q23.json ће вратити податке у JSON формату, Q23.ttl ће 
вратити RDF/Turtle итд. Подржани формати су: $1.",
+       "wikibase-entitypage-bad-id": "Неисправан идентификатор: $1.",
        "wikibase-redirectentity-success": "$1 је успешно преусмерено на $2.",
        "wikibase-redirectentity-submit": "Преусмерење",
        "wikibase-mylanguagefallbackchain-converted-item": "$1 - $2, претворено 
из $3 - $4",
@@ -242,5 +253,13 @@
        "wikibase-pageinfo-subscription-none": "Нема",
        "apihelp-wbeditentity-example-12": "Уклања назив",
        "apihelp-wbmergeitems-description": "Спаја више ставки.",
-       "apihelp-wbmergeitems-param-toid": "Идентификатор за спајање са"
+       "apihelp-wbmergeitems-param-toid": "Идентификатор за спајање са",
+       "apihelp-wbsearchentities-param-search": "Претрага за овај текст.",
+       "apihelp-wbsearchentities-param-language": "Претрага на овом језику.",
+       "apihelp-wbsearchentities-param-limit": "Максимални број резултата",
+       "apihelp-query+wbsearch-param-search": "Претрага за овај текст.",
+       "apihelp-query+wbsearch-param-language": "Претрага на овом језику.",
+       "apihelp-query+wbsearch-param-limit": "Максимални број резултата",
+       "apihelp-query+wbsubscribers-param-limit": "Максимални број резултата",
+       "apihelp-wbsetdescription-param-language": "Језик описа"
 }
diff --git a/extensions/Wikibase/repo/includes/Specials/SpecialNewEntity.php 
b/extensions/Wikibase/repo/includes/Specials/SpecialNewEntity.php
index 86a193d..ed93d41 100644
--- a/extensions/Wikibase/repo/includes/Specials/SpecialNewEntity.php
+++ b/extensions/Wikibase/repo/includes/Specials/SpecialNewEntity.php
@@ -75,7 +75,7 @@
         * @see SpecialPage::isListed()
         */
        public function isListed() {
-               return (bool)$this->entityNamespaceLookup->getEntityNamespace( 
$this->getEntityType() );
+               return $this->entityNamespaceLookup->getEntityNamespace( 
$this->getEntityType() ) !== null;
        }
 
        /**
diff --git a/extensions/Wikibase/repo/maintenance/dispatchChanges.php 
b/extensions/Wikibase/repo/maintenance/dispatchChanges.php
index 0dfc063..7189bda 100644
--- a/extensions/Wikibase/repo/maintenance/dispatchChanges.php
+++ b/extensions/Wikibase/repo/maintenance/dispatchChanges.php
@@ -8,6 +8,7 @@
 use MediaWiki\MediaWikiServices;
 use MWException;
 use MWExceptionHandler;
+use UnexpectedValueException;
 use Wikibase\Lib\Reporting\ObservableMessageReporter;
 use Wikibase\Lib\Reporting\ReportingExceptionHandler;
 use Wikibase\Lib\Store\Sql\EntityChangeLookup;
@@ -17,6 +18,7 @@
 use Wikibase\Repo\Store\Sql\LockManagerSqlChangeDispatchCoordinator;
 use Wikibase\Store\Sql\SqlChangeDispatchCoordinator;
 use Wikibase\Store\Sql\SqlSubscriptionLookup;
+use Wikimedia\Assert\Assert;
 
 $basePath = getenv( 'MW_INSTALL_PATH' ) !== false ? getenv( 'MW_INSTALL_PATH' 
) : __DIR__ . '/../../../..';
 
@@ -64,18 +66,34 @@
        }
 
        /**
-        * @param SettingsArray $settings
+        * @param string[] $clientWikis as defined in the localClientDatabases 
config setting.
         *
         * @return string[] A mapping of client wiki site IDs to logical 
database names.
         */
-       private function getClientWikis( SettingsArray $settings ) {
-               $clientWikis = $settings->getSetting( 'localClientDatabases' );
+       private function getClientWikis( array $clientWikis ) {
+               Assert::parameterElementType( 'string', $clientWikis, 
'$clientWikis' );
 
                // make sure we have a mapping from siteId to database name in 
clientWikis:
                foreach ( $clientWikis as $siteID => $dbName ) {
                        if ( is_int( $siteID ) ) {
                                unset( $clientWikis[$siteID] );
-                               $clientWikis[$dbName] = $dbName;
+                               $siteID = $dbName;
+                       }
+                       $clientWikis[$siteID] = $dbName;
+               }
+
+               // If this repo is also a client, make sure it dispatches also 
to itself.
+               if ( WikibaseSettings::isClientEnabled() ) {
+                       $clientSettings = WikibaseSettings::getClientSettings();
+                       $repoName = $clientSettings->getSetting( 'repoSiteId' );
+                       $repoDb = $clientSettings->getSetting( 'repoDatabase' );
+
+                       if ( $repoDb === false ) {
+                               $repoDb = 
MediaWikiServices::getInstance()->getMainConfig()->get( 'DBname' );
+                       }
+
+                       if ( !isset( $clientWikis[$repoName] ) ) {
+                               $clientWikis[$repoName] = $repoDb;
                        }
                }
 
@@ -165,7 +183,10 @@
                $delay = (int)$this->getOption( 'idle-delay', 10 );
 
                $wikibaseRepo = WikibaseRepo::getDefaultInstance();
-               $clientWikis = $this->getClientWikis( 
$wikibaseRepo->getSettings() );
+
+               $clientWikis = $this->getClientWikis(
+                       $wikibaseRepo->getSettings()->getSetting( 
'localClientDatabases' )
+               );
 
                if ( empty( $clientWikis ) ) {
                        throw new MWException( "No client wikis configured! 
Please set \$wgWBRepoSettings['localClientDatabases']." );
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 4cbdb73..ddb4da9 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1380,12 +1380,12 @@
         "source": {
             "type": "git",
             "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-            "reference": "83ce335686dbd44384d9e5704191e32dd286da51"
+            "reference": "10974ed2f854d8590ef4feed325d32f190bf48b8"
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/83ce335686dbd44384d9e5704191e32dd286da51";,
-            "reference": "83ce335686dbd44384d9e5704191e32dd286da51",
+            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/10974ed2f854d8590ef4feed325d32f190bf48b8";,
+            "reference": "10974ed2f854d8590ef4feed325d32f190bf48b8",
             "shasum": ""
         },
         "require": {
@@ -1418,7 +1418,7 @@
             "jakub-onderka/php-parallel-lint": ">=0.3 <0.10",
             "wikibase/wikibase-codesniffer": "^0.1.0"
         },
-        "time": "2017-07-27 21:24:03",
+        "time": "2017-07-30 08:58:55",
         "type": "mediawiki-extension",
         "installation-source": "dist",
         "autoload": {
@@ -1699,7 +1699,7 @@
         "source": {
             "type": "git",
             "url": 
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQuality";,
-            "reference": "1e4dfadae8a41c5794d0670c83bf28243b2e2481"
+            "reference": "22aafec778ad7605863090758753c21e79ed44df"
         },
         "require": {
             "php": ">=5.5.9",
@@ -1719,7 +1719,7 @@
             "wikibase/data-model-serialization": ">=0.1 <3.0",
             "wikibase/wikibase-codesniffer": "^0.1.0"
         },
-        "time": "2017-07-26 20:59:16",
+        "time": "2017-07-28 20:48:10",
         "type": "mediawiki-extension",
         "installation-source": "source",
         "autoload": {
@@ -1768,7 +1768,7 @@
         "source": {
             "type": "git",
             "url": 
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints";,
-            "reference": "744bc12339f0d6567ce2790ffd01d73b9f60310a"
+            "reference": "ebbaf106782b8e6c6639a6edcb02587b8e7bfeaf"
         },
         "require": {
             "php": ">=5.5.9",
@@ -1784,7 +1784,7 @@
             "satooshi/php-coveralls": "master-dev",
             "wikibase/wikibase-codesniffer": "^0.1.0"
         },
-        "time": "2017-07-27 21:24:23",
+        "time": "2017-07-28 20:48:18",
         "type": "mediawiki-extension",
         "installation-source": "source",
         "autoload": {

-- 
To view, visit https://gerrit.wikimedia.org/r/368580
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

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

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

Reply via email to