WikidataBuilder has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/385341 )
Change subject: New Wikidata Build - 2017-10-20T10:00:01+0000
......................................................................
New Wikidata Build - 2017-10-20T10:00:01+0000
Change-Id: I0c98b6dbdbabf5114f71f872cb03d190448fe079
---
M composer.lock
M extensions/ArticlePlaceholder/includes/ItemNotabilityFilter.php
M extensions/Constraints/api/CheckConstraints.php
M extensions/Constraints/i18n/uk.json
M extensions/Constraints/includes/ConstraintCheck/Context/ApiV2Context.php
M extensions/Constraints/includes/ConstraintCheck/Context/Context.php
M extensions/Constraints/includes/ConstraintCheck/Context/StatementContext.php
M
extensions/Constraints/includes/ConstraintCheck/DelegatingConstraintChecker.php
A extensions/Constraints/includes/ConstraintCheck/Result/NullResult.php
M extensions/Constraints/tests/phpunit/Context/MainSnakContextTest.php
M extensions/Constraints/tests/phpunit/Context/QualifierContextTest.php
M extensions/Constraints/tests/phpunit/Context/ReferenceContextTest.php
M extensions/Constraints/tests/phpunit/Context/StatementContextTest.php
M extensions/Constraints/tests/phpunit/Fake/FakeSnakContext.php
M extensions/Wikibase/client/i18n/hu.json
M extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php
M
extensions/Wikibase/client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTestCase.php
M extensions/Wikibase/composer.json
M extensions/Wikibase/lib/i18n/ais.json
M extensions/Wikibase/lib/i18n/ur.json
M extensions/Wikibase/lib/includes/Store/DispatchingPropertyInfoLookup.php
M extensions/Wikibase/lib/includes/Units/BaseUnitStorage.php
M extensions/Wikibase/lib/includes/Units/CSVUnitStorage.php
M extensions/Wikibase/lib/includes/Units/JsonUnitStorage.php
M extensions/Wikibase/lib/includes/Units/UnitConverter.php
M extensions/Wikibase/lib/includes/Units/UnitStorage.php
M extensions/Wikibase/phpcs.xml
M extensions/Wikibase/repo/i18n/ais.json
M extensions/Wikibase/repo/i18n/ur.json
M extensions/Wikibase/repo/includes/Actions/EditEntityAction.php
M extensions/Wikibase/repo/includes/Api/SetAliases.php
M extensions/Wikibase/repo/includes/Diff/EntityContentDiffView.php
M extensions/Wikibase/repo/includes/Search/Elastic/WikibasePrefixSearcher.php
M extensions/Wikibase/repo/includes/Specials/HTMLForm/HTMLTrimmedTextField.php
M extensions/Wikibase/repo/maintenance/SPARQLClient.php
M extensions/Wikibase/repo/maintenance/addUnitConversions.php
M extensions/Wikibase/repo/maintenance/searchEntities.php
M extensions/Wikibase/repo/maintenance/updateUnits.php
M
extensions/Wikibase/repo/tests/phpunit/includes/Diff/EntityDiffVisualizerFactoryTest.php
M extensions/Wikibase/repo/tests/phpunit/includes/NewItem.php
M extensions/Wikibase/repo/tests/phpunit/includes/NewStatement.php
M extensions/Wikibase/repo/tests/phpunit/maintenance/AddUnitsTest.php
M extensions/Wikibase/repo/tests/phpunit/maintenance/UpdateUnitsTest.php
M extensions/Wikibase/tests/phan/config.php
M vendor/composer/autoload_classmap.php
M vendor/composer/autoload_static.php
M vendor/composer/installed.json
47 files changed, 645 insertions(+), 129 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata
refs/changes/41/385341/1
diff --git a/composer.lock b/composer.lock
index 6797854..bc1df58 100644
--- a/composer.lock
+++ b/composer.lock
@@ -767,12 +767,12 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-ArticlePlaceholder.git",
- "reference": "b356d178444f899069e2f5f647c7f483d7b556b3"
+ "reference": "bab4ba945646b81b510fc904f43b0d3d23469683"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/b356d178444f899069e2f5f647c7f483d7b556b3",
- "reference": "b356d178444f899069e2f5f647c7f483d7b556b3",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/bab4ba945646b81b510fc904f43b0d3d23469683",
+ "reference": "bab4ba945646b81b510fc904f43b0d3d23469683",
"shasum": ""
},
"require": {
@@ -801,7 +801,7 @@
],
"description": "Provides a special page with Wikibase information
about a certain topic, with invitation to create an article for the topic",
"homepage":
"https://www.mediawiki.org/wiki/Extension:ArticlePlaceholder",
- "time": "2017-10-15 17:38:18"
+ "time": "2017-10-20 07:57:50"
},
{
"name": "propertysuggester/property-suggester",
@@ -971,7 +971,7 @@
"source": {
"type": "git",
"url":
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints",
- "reference": "ae7f775d6522c67efe47c54b480c4baeb494f367"
+ "reference": "0b42b96d328b7a2d7abcd168702b1d4e51b9794e"
},
"require": {
"php": ">=5.5.9",
@@ -1031,7 +1031,7 @@
"support": {
"issues":
"https://phabricator.wikimedia.org/project/profile/1202/"
},
- "time": "2017-10-19 09:21:36"
+ "time": "2017-10-19 21:29:54"
},
{
"name": "wikibase/data-model",
@@ -1542,12 +1542,12 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git",
- "reference": "3d3ff504b2e9f68a212739b0904e90c5f6e9e48c"
+ "reference": "e2397f95e4a71965f1bc60aa4a1e6d1e584819e4"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/3d3ff504b2e9f68a212739b0904e90c5f6e9e48c",
- "reference": "3d3ff504b2e9f68a212739b0904e90c5f6e9e48c",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/e2397f95e4a71965f1bc60aa4a1e6d1e584819e4",
+ "reference": "e2397f95e4a71965f1bc60aa4a1e6d1e584819e4",
"shasum": ""
},
"require": {
@@ -1580,7 +1580,7 @@
"jakub-onderka/php-console-highlighter": "0.3.2",
"jakub-onderka/php-parallel-lint": ">=0.3 <0.10",
"mediawiki/minus-x": "0.1.0",
- "wikibase/wikibase-codesniffer": "^0.1.0"
+ "wikibase/wikibase-codesniffer": "^0.2.0"
},
"type": "mediawiki-extension",
"autoload": {
@@ -1592,6 +1592,7 @@
"lib/maintenance/",
"repo/includes/",
"repo/maintenance/",
+ "repo/tests/phpunit/maintenance/MockAddUnits.php",
"repo/Wikibase.hooks.php"
],
"psr-4": {
@@ -1625,7 +1626,7 @@
"wikibaserepo",
"wikidata"
],
- "time": "2017-10-18 20:54:57"
+ "time": "2017-10-20 09:32:04"
},
{
"name": "wikibase/wikimedia-badges",
diff --git a/extensions/ArticlePlaceholder/includes/ItemNotabilityFilter.php
b/extensions/ArticlePlaceholder/includes/ItemNotabilityFilter.php
index b71bbb5..2fb0e14 100644
--- a/extensions/ArticlePlaceholder/includes/ItemNotabilityFilter.php
+++ b/extensions/ArticlePlaceholder/includes/ItemNotabilityFilter.php
@@ -79,13 +79,17 @@
$numericItemIds = [];
- $statementClaimsCount = $this->getStatementClaimsCount(
$itemIds );
+ $pagePropsByItem = $this->getPagePropsByItem( $itemIds );
foreach ( $itemIds as $itemId ) {
$itemIdSerialization = $itemId->getSerialization();
+ $pageProps = $pagePropsByItem[$itemIdSerialization];
- if (
$statementClaimsCount[$itemIdSerialization]['wb-claims'] >= self::MIN_STATEMENTS
- &&
$statementClaimsCount[$itemIdSerialization]['wb-sitelinks'] >=
self::MIN_SITELINKS
+ if (
+ isset( $pageProps['wb-claims'] ) &&
+ isset( $pageProps['wb-sitelinks'] ) &&
+ $pageProps['wb-claims'] >= self::MIN_STATEMENTS
&&
+ $pageProps['wb-sitelinks'] >=
self::MIN_SITELINKS
) {
$numericItemIds[] = $itemId->getNumericId();
}
@@ -99,9 +103,9 @@
*
* @param ItemId[] $itemIds
*
- * @return array() int[page_title][propname] => value
+ * @return int[][] Map of page_title => propname => numeric value
*/
- private function getStatementClaimsCount( array $itemIds ) {
+ private function getPagePropsByItem( array $itemIds ) {
$statementsClaimsCount = [];
$dbr = $this->connectionManager->getReadConnection();
@@ -111,7 +115,7 @@
$this->connectionManager->releaseConnection( $dbr );
foreach ( $res as $row ) {
-
$statementsClaimsCount[$row->page_title][$row->pp_propname] = $row->pp_value ?:
0;
+
$statementsClaimsCount[$row->page_title][$row->pp_propname] = intval(
$row->pp_value ?: 0 );
}
return $statementsClaimsCount;
diff --git a/extensions/Constraints/api/CheckConstraints.php
b/extensions/Constraints/api/CheckConstraints.php
index 613a218..bed10bd 100644
--- a/extensions/Constraints/api/CheckConstraints.php
+++ b/extensions/Constraints/api/CheckConstraints.php
@@ -27,6 +27,7 @@
use
WikibaseQuality\ConstraintReport\ConstraintCheck\DelegatingConstraintChecker;
use
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConstraintParameterParser;
use WikibaseQuality\ConstraintReport\ConstraintCheck\Result\CheckResult;
+use WikibaseQuality\ConstraintReport\ConstraintCheck\Result\NullResult;
use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
use WikibaseQuality\ConstraintReport\ConstraintReportFactory;
@@ -217,12 +218,21 @@
$this->resultBuilder->markSuccess( 1 );
}
+ public function defaultResults( Context $context ) {
+ return $context->getType() === Context::TYPE_STATEMENT ?
+ [ new NullResult( $context ) ] :
+ [];
+ }
+
private function checkItems( array $entityIds, $constraintIds ) {
$checkResults = [];
foreach ( $entityIds as $entityId ) {
$currentCheckResults =
$this->delegatingConstraintChecker->checkAgainstConstraintsOnEntityId(
- $entityId, $constraintIds );
+ $entityId,
+ $constraintIds,
+ [ $this, "defaultResults" ]
+ );
if ( $currentCheckResults ) {
$checkResults = array_merge( $checkResults,
$currentCheckResults );
}
@@ -236,7 +246,10 @@
foreach ( $claimIds as $claimId ) {
$currentCheckResults =
$this->delegatingConstraintChecker->checkAgainstConstraintsOnClaimId(
- $claimId, $constraintIds );
+ $claimId,
+ $constraintIds,
+ [ $this, "defaultResults" ]
+ );
if ( $currentCheckResults ) {
$checkResults = array_merge( $checkResults,
$currentCheckResults );
}
@@ -328,33 +341,37 @@
}
foreach ( $checkResults as $checkResult ) {
- $entityId =
$checkResult->getEntityId()->getSerialization();
- $constraintId =
$checkResult->getConstraint()->getConstraintId();
- $typeItemId =
$checkResult->getConstraint()->getConstraintTypeItemId();
+ if ( $checkResult instanceof NullResult ) {
+ $result = null;
+ } else {
+ $entityId =
$checkResult->getEntityId()->getSerialization();
+ $constraintId =
$checkResult->getConstraint()->getConstraintId();
+ $typeItemId =
$checkResult->getConstraint()->getConstraintTypeItemId();
- $title = $this->entityTitleLookup->getTitleForId(
$checkResult->getContext()->getSnak()->getPropertyId() );
- $statementGuid = $this->statementGuidParser->parse(
$constraintId );
- $typeLabel =
$this->entityIdLabelFormatter->formatEntityId( new ItemId( $typeItemId ) );
- // TODO link to the statement when possible (T169224)
- $link = $title->getFullUrl() . '#' .
$this->config->get( 'WBQualityConstraintsPropertyConstraintId' );
+ $title =
$this->entityTitleLookup->getTitleForId(
$checkResult->getContext()->getSnak()->getPropertyId() );
+ $statementGuid =
$this->statementGuidParser->parse( $constraintId );
+ $typeLabel =
$this->entityIdLabelFormatter->formatEntityId( new ItemId( $typeItemId ) );
+ // TODO link to the statement when possible
(T169224)
+ $link = $title->getFullUrl() . '#' .
$this->config->get( 'WBQualityConstraintsPropertyConstraintId' );
- $result = [
- 'status' => $checkResult->getStatus(),
- 'property' =>
$checkResult->getContext()->getSnak()->getPropertyId()->getSerialization(),
- 'constraint' => [
- 'id' => $checkResult->getConstraintId(),
- 'type' => $typeItemId,
- 'typeLabel' => $typeLabel,
- 'link' => $link,
- 'detail' =>
$checkResult->getParameters(),
- 'detailHTML' =>
$this->constraintParameterRenderer->formatParameters(
$checkResult->getParameters() )
- ]
- ];
- if ( $checkResult->getMessage() ) {
- $result['message-html'] =
$checkResult->getMessage();
- }
- if ( $checkResult->getContext()->getType() ===
Context::TYPE_STATEMENT ) {
- $result['claim'] =
$checkResult->getContext()->getSnakStatement()->getGuid();
+ $result = [
+ 'status' => $checkResult->getStatus(),
+ 'property' =>
$checkResult->getContext()->getSnak()->getPropertyId()->getSerialization(),
+ 'constraint' => [
+ 'id' =>
$checkResult->getConstraintId(),
+ 'type' => $typeItemId,
+ 'typeLabel' => $typeLabel,
+ 'link' => $link,
+ 'detail' =>
$checkResult->getParameters(),
+ 'detailHTML' =>
$this->constraintParameterRenderer->formatParameters(
$checkResult->getParameters() )
+ ]
+ ];
+ if ( $checkResult->getMessage() ) {
+ $result['message-html'] =
$checkResult->getMessage();
+ }
+ if ( $checkResult->getContext()->getType() ===
Context::TYPE_STATEMENT ) {
+ $result['claim'] =
$checkResult->getContext()->getSnakStatement()->getGuid();
+ }
}
$checkResult->getContext()->storeCheckResultInArray(
$result, $constraintReport );
diff --git a/extensions/Constraints/i18n/uk.json
b/extensions/Constraints/i18n/uk.json
index 403a9a3..e3cbbd9 100644
--- a/extensions/Constraints/i18n/uk.json
+++ b/extensions/Constraints/i18n/uk.json
@@ -48,6 +48,14 @@
"apihelp-wbcheckconstraints-param-claimid": "Список GUID, який визначає
запис, щодо якого слід виконати перевірку й отримати звіт щодо обмежень.
Відокремлюйте значення за допомогою '|'.",
"apihelp-wbcheckconstraints-param-constraintid": "Необов'язковий фільтр
для виведення лише тих обмежень. які мають вказаний ідентифікатор обмеження.",
"apihelp-wbcheckconstraintparameters-summary": "Перевіряє параметри
тверджень обмежень.",
+ "apihelp-wbcheckconstraintparameters-extended-description": "Можна
вказати обидва або один з параметрів <var>property</var> та
<var>constraintid</var>; перевірені будуть усі обмеження, вибрані іншим
параметром.",
+ "apihelp-wbcheckconstraintparameters-param-propertyid": "Список
ідентифікаторів властивостей, які слід перевірити. Всі твердження обмежень цих
властивостей буде перевірено.\n\nЯкщо цей параметр вказано, він не повинен бути
порожнім.",
+ "apihelp-wbcheckconstraintparameters-param-constraintid": "Список
ідентифікаторів обмежень (GUID тверджень обмежень), які слід
перевірити.\n\nЯкщо цей параметр вказано, він не повинен бути порожнім.",
+ "apihelp-wbcheckconstraints-example-1": "Перевірити всі обмеження в
елементах Q5 та Q42.",
+ "apihelp-wbcheckconstraints-example-2": "Перевірити всі обмеження в
одному твердженні.",
+ "apihelp-wbcheckconstraints-example-3": "Перевірити одне конкретне
обмеження в елементі Q2.",
+ "apihelp-wbcheckconstraintparameters-example-propertyid-1": "Перевірити
параметри усіх обмежень у властивості.",
+ "apihelp-wbcheckconstraintparameters-example-constraintid-2":
"Перевірити параметри двох конкретних обмежень.",
"wbq-subextension-name-wbqc": "Обмеження",
"wbqc-violation-header-parameters": "Параметри:",
"wbqc-violations-group": "Обмеження",
@@ -55,9 +63,25 @@
"wbqc-violation-message-not-yet-implemented": "З технічних причин
перевірку щодо обмеження «$1» ще не було впроваджено.",
"wbqc-violation-message-security-reason": "З міркувань безпеки,
перевірку обмеження «$1» на цей момент провести не можна. Ми працюємо над
рішенням.",
"wbqc-violation-message-value-needed-of-type": "Властивості «$1»
повинні мати значення типу «$2».",
+ "wbqc-violation-message-value-needed-of-types-2": "Властивості з
обмеженням «$1» повинні мати значення типу «$2» або «$3».",
"wbqc-violation-message-parameter-needed": "Властивості з обмеженням
«$1» потребують параметра «$2».",
+ "wbqc-violation-message-parameters-needed-3": "Властивостям з
обмеженням «$1» необхідні параметри «$2», «$3» та «$4».",
"wbqc-violation-message-target-entity-must-exist": "Цільова сутність
повинна існувати.",
"wbqc-violation-message-value-entity-must-exist": "Сутність для цього
значення повинна існувати.",
+ "wbqc-violation-message-parameter-value": "Параметр «$1» повинен мати
нестандартне значення, не «без значення» чи «невідоме значення».",
+ "wbqc-violation-message-parameter-value-or-novalue": "Параметр «$1»
повинен мати нестандартне значення або «без значення», але в жодному разі не
«невідоме значення».",
+ "wbqc-violation-message-parameter-entity": "Значення для параметра «$1»
має бути сутністю, не «$2».",
+ "wbqc-violation-message-parameter-item": "Значення для параметра «$1»
має бути елементом, не «$2».",
+ "wbqc-violation-message-parameter-property": "Значення для параметра
«$1» має бути властивістю, не «$2».",
+ "wbqc-violation-message-parameter-string": "Значення для параметра «$1»
має бути рядком, не «$2».",
+ "wbqc-violation-message-parameter-monolingualtext": "Значення для
параметра «$1» має бути мономовним текстом, не «$2».",
+ "wbqc-violation-message-parameter-single": "Параметр «$1» повинен мати
лише одне значення.",
+ "wbqc-violation-message-parameter-single-per-language": "Параметр «$1»
повинен мати лише одне значення на мову, натомість він має кілька значень для
$2 ($3).",
+ "wbqc-violation-message-parameter-oneof": "Параметр «$1» повинен бути
{{PLURAL:$2|1=$4.|2=або $4, або $5.|одним з такого: $3}}",
+ "wbqc-violation-message-parameter-regex": "$1 не є валідним регулярним
виразом.",
+ "wbqc-violation-message-sparql-error": "Запит SPARQL видав помилку.",
+ "wbqc-violation-message-parameters-error-unknown": "Параметри цього
обмеження не вдалося імпортувати.",
+ "wbqc-violation-message-parameters-error-toolong": "Параметри цього
обмеження не вдалося імпортувати, оскільки вони були надто довгими.",
"wbqc-violation-message-commons-link-no-existent": "Посилання на
Вікісховище повинно існувати.",
"wbqc-violation-message-commons-link-not-well-formed": "Посилання на
Вікісховище повинно бути правильно вказане.",
"wbqc-violation-message-commons-link-check-for-namespace-not-yet-implemented":
"Перевірка за простором назв «$1» ще не впроваджена.",
diff --git
a/extensions/Constraints/includes/ConstraintCheck/Context/ApiV2Context.php
b/extensions/Constraints/includes/ConstraintCheck/Context/ApiV2Context.php
index 32e7326..5ac66e9 100644
--- a/extensions/Constraints/includes/ConstraintCheck/Context/ApiV2Context.php
+++ b/extensions/Constraints/includes/ConstraintCheck/Context/ApiV2Context.php
@@ -74,8 +74,15 @@
*/
abstract protected function &getMainArray( array &$container );
- public function storeCheckResultInArray( array $result, array
&$container ) {
- $this->getMainArray( $container )['results'][] = $result;
+ public function storeCheckResultInArray( $result, array &$container ) {
+ $mainArray = &$this->getMainArray( $container );
+ if ( !array_key_exists( 'results', $mainArray ) ) {
+ $mainArray['results'] = [];
+ }
+
+ if ( $result !== null ) {
+ $mainArray['results'][] = $result;
+ }
}
}
diff --git
a/extensions/Constraints/includes/ConstraintCheck/Context/Context.php
b/extensions/Constraints/includes/ConstraintCheck/Context/Context.php
index 4bf07c4..844bc8b 100644
--- a/extensions/Constraints/includes/ConstraintCheck/Context/Context.php
+++ b/extensions/Constraints/includes/ConstraintCheck/Context/Context.php
@@ -80,9 +80,12 @@
*
* Mainly used in the API, where $container is part of the API response.
*
- * @param array $result
+ * If $result is null, don’t actually store it,
+ * but still populate the appropriate location for this context in
$container.
+ *
+ * @param array|null $result
* @param array &$container
*/
- public function storeCheckResultInArray( array $result, array
&$container );
+ public function storeCheckResultInArray( $result, array &$container );
}
diff --git
a/extensions/Constraints/includes/ConstraintCheck/Context/StatementContext.php
b/extensions/Constraints/includes/ConstraintCheck/Context/StatementContext.php
index ed20b9d..2968a0d 100644
---
a/extensions/Constraints/includes/ConstraintCheck/Context/StatementContext.php
+++
b/extensions/Constraints/includes/ConstraintCheck/Context/StatementContext.php
@@ -49,15 +49,28 @@
* then by claim ID, and then contains the $result in a list:
* { "Q1": { "P1": { "Q1$1a2b...": [ { "status": "compliance", ... } ]
} } }
*
- * @param array $result
+ * @param array|null $result
* @param array &$container
*/
- public function storeCheckResultInArray( array $result, array
&$container ) {
+ public function storeCheckResultInArray( $result, array &$container ) {
$entityId = $this->entity->getId()->getSerialization();
- $propertyId =
$this->statement->getPropertyId()->getSerialization();
- $statementId = $this->statement->getGuid();
+ if ( !array_key_exists( $entityId, $container ) ) {
+ $container[$entityId] = [];
+ }
- $container[$entityId][$propertyId][$statementId][] = $result;
+ $propertyId =
$this->statement->getPropertyId()->getSerialization();
+ if ( !array_key_exists( $propertyId, $container[$entityId] ) ) {
+ $container[$entityId][$propertyId] = [];
+ }
+
+ $statementId = $this->statement->getGuid();
+ if ( !array_key_exists( $statementId,
$container[$entityId][$propertyId] ) ) {
+ $container[$entityId][$propertyId][$statementId] = [];
+ }
+
+ if ( $result !== null ) {
+ $container[$entityId][$propertyId][$statementId][] =
$result;
+ }
}
}
diff --git
a/extensions/Constraints/includes/ConstraintCheck/DelegatingConstraintChecker.php
b/extensions/Constraints/includes/ConstraintCheck/DelegatingConstraintChecker.php
index 1561840..eb45648 100644
---
a/extensions/Constraints/includes/ConstraintCheck/DelegatingConstraintChecker.php
+++
b/extensions/Constraints/includes/ConstraintCheck/DelegatingConstraintChecker.php
@@ -119,15 +119,27 @@
*
* @param EntityId $entityId
* @param array $constraintIds
+ * @param callable|null $defaultResults Optional function to
pre-populate the check results.
+ * For each {@link Context} where constraints will be checked,
+ * this function (if not null) is first called with that context as
argument,
+ * and may return an array of check results to which the regular
results are appended.
*
* @return CheckResult[]
*
*/
- public function checkAgainstConstraintsOnEntityId( EntityId $entityId,
$constraintIds = null ) {
+ public function checkAgainstConstraintsOnEntityId(
+ EntityId $entityId,
+ $constraintIds = null,
+ callable $defaultResults = null
+ ) {
$entity = $this->entityLookup->getEntity( $entityId );
if ( $entity instanceof StatementListProvider ) {
- $result = $this->checkEveryStatement(
$this->entityLookup->getEntity( $entityId ), $constraintIds );
+ $result = $this->checkEveryStatement(
+ $this->entityLookup->getEntity( $entityId ),
+ $constraintIds,
+ $defaultResults
+ );
$output = $this->sortResult( $result );
return $output;
}
@@ -141,9 +153,18 @@
*
* @param string $guid
* @param array $constraintIds
+ * @param callable|null $defaultResults Optional function to
pre-populate the check results.
+ * For each {@link Context} where constraints will be checked,
+ * this function (if not null) is first called with that context as
argument,
+ * and may return an array of check results to which the regular
results are appended.
+ *
* @return CheckResult[]
*/
- public function checkAgainstConstraintsOnClaimId( $guid, $constraintIds
= null ) {
+ public function checkAgainstConstraintsOnClaimId(
+ $guid,
+ $constraintIds = null,
+ callable $defaultResults = null
+ ) {
$parsedGuid = $this->statementGuidParser->parse( $guid );
$entityId = $parsedGuid->getEntityId();
@@ -151,7 +172,12 @@
if ( $entity instanceof StatementListProvider ) {
$statement =
$entity->getStatements()->getFirstStatementWithGuid( $guid );
if ( $statement ) {
- $result = $this->checkStatement( $entity,
$statement, $constraintIds );
+ $result = $this->checkStatement(
+ $entity,
+ $statement,
+ $constraintIds,
+ $defaultResults
+ );
$output = $this->sortResult( $result );
return $output;
}
@@ -246,15 +272,26 @@
/**
* @param EntityDocument|StatementListProvider $entity
* @param string[]|null $constraintIds list of constraints to check (if
null: all constraints)
+ * @param callable|null $defaultResults optional function to
pre-populate the check results
*
* @return CheckResult[]
*/
- private function checkEveryStatement( EntityDocument $entity,
$constraintIds = null ) {
+ private function checkEveryStatement(
+ EntityDocument $entity,
+ $constraintIds = null,
+ callable $defaultResults = null
+ ) {
$result = [];
/** @var Statement $statement */
foreach ( $entity->getStatements() as $statement ) {
- $result = array_merge( $result, $this->checkStatement(
$entity, $statement, $constraintIds ) );
+ $result = array_merge( $result,
+ $this->checkStatement(
+ $entity,
+ $statement,
+ $constraintIds,
+ $defaultResults
+ ) );
}
return $result;
@@ -264,23 +301,44 @@
* @param EntityDocument|StatementListProvider $entity
* @param Statement $statement
* @param string[]|null $constraintIds list of constraints to check (if
null: all constraints)
+ * @param callable|null $defaultResults optional function to
pre-populate the check results
*
* @return CheckResult[]
*/
- private function checkStatement( EntityDocument $entity, Statement
$statement, $constraintIds = null ) {
+ private function checkStatement(
+ EntityDocument $entity,
+ Statement $statement,
+ $constraintIds = null,
+ callable $defaultResults = null
+ ) {
$result = [];
$result = array_merge( $result,
- $this->checkConstraintsForMainSnak( $entity,
$statement, $constraintIds ) );
+ $this->checkConstraintsForMainSnak(
+ $entity,
+ $statement,
+ $constraintIds,
+ $defaultResults
+ ) );
if ( $this->checkQualifiers ) {
$result = array_merge( $result,
- $this->checkConstraintsForQualifiers( $entity,
$statement, $constraintIds ) );
+ $this->checkConstraintsForQualifiers(
+ $entity,
+ $statement,
+ $constraintIds,
+ $defaultResults
+ ) );
}
if ( $this->checkReferences ) {
$result = array_merge( $result,
- $this->checkConstraintsForReferences( $entity,
$statement, $constraintIds ) );
+ $this->checkConstraintsForReferences(
+ $entity,
+ $statement,
+ $constraintIds,
+ $defaultResults
+ ) );
}
return $result;
@@ -314,14 +372,16 @@
* @param EntityDocument $entity
* @param Statement $statement
* @param string[]|null $constraintIds list of constraints to check (if
null: all constraints)
+ * @param callable|null $defaultResults optional function to
pre-populate the check results
+ *
* @return CheckResult[]
*/
private function checkConstraintsForMainSnak(
EntityDocument $entity,
Statement $statement,
- array $constraintIds = null
+ array $constraintIds = null,
+ callable $defaultResults = null
) {
- $result = [];
$context = $this->apiV2 ?
new MainSnakContext( $entity, $statement ) :
new StatementContext( $entity, $statement );
@@ -329,6 +389,7 @@
$statement->getPropertyId(),
$constraintIds
);
+ $result = $defaultResults !== null ? $defaultResults( $context
) : [];
foreach ( $constraints as $constraint ) {
$parameters = $constraint->getConstraintParameters();
@@ -355,17 +416,23 @@
* @param EntityDocument $entity
* @param Statement $statement
* @param string[]|null $constraintIds list of constraints to check (if
null: all constraints)
+ * @param callable|null $defaultResults optional function to
pre-populate the check results
+ *
* @return CheckResult[]
*/
private function checkConstraintsForQualifiers(
EntityDocument $entity,
Statement $statement,
- array $constraintIds = null
+ array $constraintIds = null,
+ callable $defaultResults = null
) {
$result = [];
foreach ( $statement->getQualifiers() as $qualifier ) {
$qualifierContext = new QualifierContext( $entity,
$statement, $qualifier );
+ if ( $defaultResults !== null ) {
+ $result = array_merge( $result,
$defaultResults( $qualifierContext ) );
+ }
$qualifierConstraints = $this->getConstraintsToUse(
$qualifierContext->getSnak()->getPropertyId(),
$constraintIds
@@ -382,12 +449,15 @@
* @param EntityDocument $entity
* @param Statement $statement
* @param string[]|null $constraintIds list of constraints to check (if
null: all constraints)
+ * @param callable|null $defaultResults optional function to
pre-populate the check results
+ *
* @return CheckResult[]
*/
private function checkConstraintsForReferences(
EntityDocument $entity,
Statement $statement,
- array $constraintIds = null
+ array $constraintIds = null,
+ callable $defaultResults = null
) {
$result = [];
@@ -396,6 +466,9 @@
$referenceContext = new ReferenceContext(
$entity, $statement, $reference, $snak
);
+ if ( $defaultResults !== null ) {
+ $result = array_merge( $result,
$defaultResults( $referenceContext ) );
+ }
$referenceConstraints =
$this->getConstraintsToUse(
$referenceContext->getSnak()->getPropertyId(),
$constraintIds
diff --git
a/extensions/Constraints/includes/ConstraintCheck/Result/NullResult.php
b/extensions/Constraints/includes/ConstraintCheck/Result/NullResult.php
new file mode 100644
index 0000000..d0e0804
--- /dev/null
+++ b/extensions/Constraints/includes/ConstraintCheck/Result/NullResult.php
@@ -0,0 +1,46 @@
+<?php
+
+namespace WikibaseQuality\ConstraintReport\ConstraintCheck\Result;
+
+use DomainException;
+use Wikibase\DataModel\Entity\PropertyId;
+use WikibaseQuality\ConstraintReport\Constraint;
+use WikibaseQuality\ConstraintReport\ConstraintCheck\Context\Context;
+
+/**
+ * A blank CheckResult that only holds a context, but no actual result.
+ * Used for contexts that should appear in the API output
+ * even if no constraints are defined for them.
+ *
+ * @package WikibaseQuality\ConstraintReport\ConstraintCheck\Result
+ * @author Lucas Werkmeister
+ * @license GNU GPL v2+
+ */
+class NullResult extends CheckResult {
+
+ /**
+ * The property ID that is used for the fake constraint passed to the
superclass.
+ * Since the PropertyId constructor prevents invalid property IDs like
“P0”,
+ * we use the maximum permitted property ID and assume that it’s
unlikely to actually exist.
+ */
+ const NULL_PROPERTY_ID = 'P2147483647';
+
+ public function __construct( Context $context ) {
+ $constraint = new Constraint(
+ 'null',
+ new PropertyId( self::NULL_PROPERTY_ID ),
+ 'none',
+ []
+ );
+ parent::__construct( $context, $constraint );
+ }
+
+ public function getConstraint() {
+ throw new DomainException( 'NullResult holds no constraint' );
+ }
+
+ public function getConstraintId() {
+ throw new DomainException( 'NullResult holds no constraint' );
+ }
+
+}
diff --git
a/extensions/Constraints/tests/phpunit/Context/MainSnakContextTest.php
b/extensions/Constraints/tests/phpunit/Context/MainSnakContextTest.php
index d039adb..c0b6bb9 100644
--- a/extensions/Constraints/tests/phpunit/Context/MainSnakContextTest.php
+++ b/extensions/Constraints/tests/phpunit/Context/MainSnakContextTest.php
@@ -132,4 +132,58 @@
$this->assertSame( $expected, $actual );
}
+ public function testStoreCheckResultInArray_NullResult() {
+ $entity = NewItem::withId( 'Q1' )->build();
+ $statement1 = NewStatement::noValueFor( 'P1' )
+ ->withGuid( 'P1$13ea0742-0190-4d88-b7b0-baee67573818' )
+ ->build();
+ $statement2 = NewStatement::noValueFor( 'P1' )
+ ->withGuid( 'P1$9fbfae7f-6f21-4967-8e2c-ec04ca16873d' )
+ ->build();
+ $statement3 = NewStatement::noValueFor( 'P2' )
+ ->withGuid( 'P2$4638ca58-5128-4a1f-88a9-b379fe9f8ad9' )
+ ->build();
+ $context1 = new MainSnakContext( $entity, $statement1 );
+ $context2 = new MainSnakContext( $entity, $statement2 );
+ $context3 = new MainSnakContext( $entity, $statement3 );
+
+ $actual = [];
+ $context1->storeCheckResultInArray( null, $actual );
+ $context2->storeCheckResultInArray( null, $actual );
+ $context3->storeCheckResultInArray( null, $actual );
+
+ $expected = [
+ 'Q1' => [
+ 'claims' => [
+ 'P1' => [
+ [
+ 'id' =>
'P1$13ea0742-0190-4d88-b7b0-baee67573818',
+ 'mainsnak' => [
+ 'hash' =>
$statement1->getMainSnak()->getHash(),
+ 'results' => [],
+ ],
+ ],
+ [
+ 'id' =>
'P1$9fbfae7f-6f21-4967-8e2c-ec04ca16873d',
+ 'mainsnak' => [
+ 'hash' =>
$statement2->getMainSnak()->getHash(),
+ 'results' => [],
+ ],
+ ],
+ ],
+ 'P2' => [
+ [
+ 'id' =>
'P2$4638ca58-5128-4a1f-88a9-b379fe9f8ad9',
+ 'mainsnak' => [
+ 'hash' =>
$statement3->getMainSnak()->getHash(),
+ 'results' => [],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ];
+ $this->assertSame( $expected, $actual );
+ }
+
}
diff --git
a/extensions/Constraints/tests/phpunit/Context/QualifierContextTest.php
b/extensions/Constraints/tests/phpunit/Context/QualifierContextTest.php
index 0b49baa..cc5f0f7 100644
--- a/extensions/Constraints/tests/phpunit/Context/QualifierContextTest.php
+++ b/extensions/Constraints/tests/phpunit/Context/QualifierContextTest.php
@@ -171,4 +171,87 @@
$this->assertSame( $expected, $actual );
}
+ public function testStoreCheckResultInArray_NullResult() {
+ $entity = NewItem::withId( 'Q1' )->build();
+ $statement1 = NewStatement::noValueFor( 'P1' )
+ ->withGuid( 'P1$13ea0742-0190-4d88-b7b0-baee67573818' )
+ ->build();
+ $statement2 = NewStatement::noValueFor( 'P1' )
+ ->withGuid( 'P1$9fbfae7f-6f21-4967-8e2c-ec04ca16873d' )
+ ->build();
+ $statement3 = NewStatement::noValueFor( 'P2' )
+ ->withGuid( 'P2$4638ca58-5128-4a1f-88a9-b379fe9f8ad9' )
+ ->build();
+ $snak1 = NewStatement::noValueFor( 'P11'
)->build()->getMainSnak();
+ $snak2 = NewStatement::someValueFor( 'P11'
)->build()->getMainSnak();
+ $snak3 = NewStatement::noValueFor( 'P12'
)->build()->getMainSnak();
+ $context1 = new QualifierContext( $entity, $statement1, $snak1
);
+ $context2 = new QualifierContext( $entity, $statement1, $snak2
);
+ $context3 = new QualifierContext( $entity, $statement1, $snak3
);
+ $context4 = new QualifierContext( $entity, $statement2, $snak3
);
+ $context5 = new QualifierContext( $entity, $statement3, $snak3
);
+
+ $actual = [];
+ $context1->storeCheckResultInArray( null, $actual );
+ $context2->storeCheckResultInArray( null, $actual );
+ $context3->storeCheckResultInArray( null, $actual );
+ $context4->storeCheckResultInArray( null, $actual );
+ $context5->storeCheckResultInArray( null, $actual );
+
+ $expected = [
+ 'Q1' => [
+ 'claims' => [
+ 'P1' => [
+ [
+ 'id' =>
'P1$13ea0742-0190-4d88-b7b0-baee67573818',
+ 'qualifiers' => [
+ 'P11' => [
+ [
+
'hash' => $snak1->getHash(),
+
'results' => []
+ ],
+ [
+
'hash' => $snak2->getHash(),
+
'results' => []
+ ]
+ ],
+ 'P12' => [
+ [
+
'hash' => $snak3->getHash(),
+
'results' => []
+ ]
+ ]
+ ],
+ ],
+ [
+ 'id' =>
'P1$9fbfae7f-6f21-4967-8e2c-ec04ca16873d',
+ 'qualifiers' => [
+ 'P12' => [
+ [
+
'hash' => $snak3->getHash(),
+
'results' => []
+ ]
+ ]
+ ],
+ ],
+ ],
+ 'P2' => [
+ [
+ 'id' =>
'P2$4638ca58-5128-4a1f-88a9-b379fe9f8ad9',
+ 'qualifiers' => [
+ 'P12' => [
+ [
+
'hash' => $snak3->getHash(),
+
'results' => []
+ ]
+ ]
+ ],
+ ],
+ ],
+ ],
+ ],
+ ];
+ $this->assertSame( $expected, $actual );
+ }
+
}
diff --git
a/extensions/Constraints/tests/phpunit/Context/ReferenceContextTest.php
b/extensions/Constraints/tests/phpunit/Context/ReferenceContextTest.php
index 1ba883c..22bbdf9 100644
--- a/extensions/Constraints/tests/phpunit/Context/ReferenceContextTest.php
+++ b/extensions/Constraints/tests/phpunit/Context/ReferenceContextTest.php
@@ -227,4 +227,127 @@
$this->assertSame( $expected, $actual['Q1']['claims'] );
}
+ public function testStoreCheckResultInArray_NullResult() {
+ $entity = NewItem::withId( 'Q1' )->build();
+ $statement1 = NewStatement::noValueFor( 'P1' )
+ ->withGuid( 'P1$13ea0742-0190-4d88-b7b0-baee67573818' )
+ ->build();
+ $statement2 = NewStatement::noValueFor( 'P1' )
+ ->withGuid( 'P1$9fbfae7f-6f21-4967-8e2c-ec04ca16873d' )
+ ->build();
+ $statement3 = NewStatement::noValueFor( 'P2' )
+ ->withGuid( 'P2$4638ca58-5128-4a1f-88a9-b379fe9f8ad9' )
+ ->build();
+ $snak1 = NewStatement::noValueFor( 'P11'
)->build()->getMainSnak();
+ $snak2 = NewStatement::someValueFor( 'P11'
)->build()->getMainSnak();
+ $snak3 = NewStatement::noValueFor( 'P12'
)->build()->getMainSnak();
+ $reference1 = new Reference( [ $snak1, $snak2, $snak3 ] );
+ $statement1->getReferences()->addReference( $reference1 );
+ $reference2 = new Reference( [ $snak2, $snak3 ] );
+ $statement1->getReferences()->addReference( $reference2 );
+ $statement2->getReferences()->addReference( $reference1 );
+ $statement3->getReferences()->addReference( $reference2 );
+ $context1 = new ReferenceContext( $entity, $statement1,
$reference1, $snak1 );
+ $context2 = new ReferenceContext( $entity, $statement1,
$reference1, $snak2 );
+ $context3 = new ReferenceContext( $entity, $statement1,
$reference1, $snak3 );
+ $context4 = new ReferenceContext( $entity, $statement1,
$reference2, $snak2 );
+ $context5 = new ReferenceContext( $entity, $statement1,
$reference2, $snak3 );
+ $context6 = new ReferenceContext( $entity, $statement2,
$reference1, $snak1 );
+ $context7 = new ReferenceContext( $entity, $statement3,
$reference2, $snak3 );
+
+ $actual = [];
+ $context1->storeCheckResultInArray( null, $actual );
+ $context2->storeCheckResultInArray( null, $actual );
+ $context3->storeCheckResultInArray( null, $actual );
+ $context4->storeCheckResultInArray( null, $actual );
+ $context5->storeCheckResultInArray( null, $actual );
+ $context6->storeCheckResultInArray( null, $actual );
+ $context7->storeCheckResultInArray( null, $actual );
+
+ $expected = [
+ 'P1' => [
+ [
+ 'id' =>
'P1$13ea0742-0190-4d88-b7b0-baee67573818',
+ 'references' => [
+ [
+ 'hash' =>
$reference1->getHash(),
+ 'snaks' => [
+ 'P11' => [
+ [
+
'hash' => $snak1->getHash(),
+
'results' => []
+ ],
+ [
+
'hash' => $snak2->getHash(),
+
'results' => []
+ ]
+ ],
+ 'P12' => [
+ [
+
'hash' => $snak3->getHash(),
+
'results' => []
+ ]
+ ]
+ ]
+ ],
+ [
+ 'hash' =>
$reference2->getHash(),
+ 'snaks' => [
+ 'P11' => [
+ [
+
'hash' => $snak2->getHash(),
+
'results' => []
+ ]
+ ],
+ 'P12' => [
+ [
+
'hash' => $snak3->getHash(),
+
'results' => []
+ ]
+ ]
+ ]
+ ],
+ ],
+ ],
+ [
+ 'id' =>
'P1$9fbfae7f-6f21-4967-8e2c-ec04ca16873d',
+ 'references' => [
+ [
+ 'hash' =>
$reference1->getHash(),
+ 'snaks' => [
+ 'P11' => [
+ [
+
'hash' => $snak1->getHash(),
+
'results' => []
+ ],
+ ],
+ ]
+ ],
+ ],
+ ],
+ ],
+ 'P2' => [
+ [
+ 'id' =>
'P2$4638ca58-5128-4a1f-88a9-b379fe9f8ad9',
+ 'references' => [
+ [
+ 'hash' =>
$reference2->getHash(),
+ 'snaks' => [
+ 'P12' => [
+ [
+
'hash' => $snak3->getHash(),
+
'results' => []
+ ],
+ ],
+ ]
+ ],
+ ],
+ ],
+ ],
+ ];
+ $this->assertSame( [ 'Q1' ], array_keys( $actual ) );
+ $this->assertSame( [ 'claims' ], array_keys( $actual['Q1'] ) );
+ $this->assertSame( $expected, $actual['Q1']['claims'] );
+ }
+
}
diff --git
a/extensions/Constraints/tests/phpunit/Context/StatementContextTest.php
b/extensions/Constraints/tests/phpunit/Context/StatementContextTest.php
index a55eb1d..0eb6097 100644
--- a/extensions/Constraints/tests/phpunit/Context/StatementContextTest.php
+++ b/extensions/Constraints/tests/phpunit/Context/StatementContextTest.php
@@ -111,4 +111,38 @@
$this->assertSame( $expected, $actual );
}
+ public function testStoreCheckResultInArray_NullResult() {
+ $entity = NewItem::withId( 'Q1' )->build();
+ $statement1 = NewStatement::noValueFor( 'P1' )
+ ->withGuid( 'P1$13ea0742-0190-4d88-b7b0-baee67573818' )
+ ->build();
+ $statement2 = NewStatement::noValueFor( 'P1' )
+ ->withGuid( 'P1$9fbfae7f-6f21-4967-8e2c-ec04ca16873d' )
+ ->build();
+ $statement3 = NewStatement::noValueFor( 'P2' )
+ ->withGuid( 'P2$4638ca58-5128-4a1f-88a9-b379fe9f8ad9' )
+ ->build();
+ $context1 = new StatementContext( $entity, $statement1 );
+ $context2 = new StatementContext( $entity, $statement2 );
+ $context3 = new StatementContext( $entity, $statement3 );
+
+ $actual = [];
+ $context1->storeCheckResultInArray( null, $actual );
+ $context2->storeCheckResultInArray( null, $actual );
+ $context3->storeCheckResultInArray( null, $actual );
+
+ $expected = [
+ 'Q1' => [
+ 'P1' => [
+
'P1$13ea0742-0190-4d88-b7b0-baee67573818' => [],
+
'P1$9fbfae7f-6f21-4967-8e2c-ec04ca16873d' => [],
+ ],
+ 'P2' => [
+
'P2$4638ca58-5128-4a1f-88a9-b379fe9f8ad9' => [],
+ ],
+ ],
+ ];
+ $this->assertSame( $expected, $actual );
+ }
+
}
diff --git a/extensions/Constraints/tests/phpunit/Fake/FakeSnakContext.php
b/extensions/Constraints/tests/phpunit/Fake/FakeSnakContext.php
index 76eed30..c51f11e 100644
--- a/extensions/Constraints/tests/phpunit/Fake/FakeSnakContext.php
+++ b/extensions/Constraints/tests/phpunit/Fake/FakeSnakContext.php
@@ -32,8 +32,10 @@
return 'statement';
}
- public function storeCheckResultInArray( array $result, array
&$container ) {
- $container[] = $result;
+ public function storeCheckResultInArray( $result, array &$container ) {
+ if ( $result !== null ) {
+ $container[] = $result;
+ }
}
}
diff --git a/extensions/Wikibase/client/i18n/hu.json
b/extensions/Wikibase/client/i18n/hu.json
index 48c8cee..bce56d6 100644
--- a/extensions/Wikibase/client/i18n/hu.json
+++ b/extensions/Wikibase/client/i18n/hu.json
@@ -68,7 +68,7 @@
"wikibase-unconnectedpages-format-row": "($1 nyelvközi hivatkozás a
lapon)",
"wikibase-unconnectedpages-submit": "Lapok megjelenítése",
"pageswithbadges": "Lapok plecsnikkel",
- "pageswithbadges-summary": "A plecsnikkel (például jó vagy kiemelt
szócikk) rendelkező lapok listája. A lista lapazonosítók alapján van rendezve,
tehát az újabb lapok vannak előbb.",
+ "pageswithbadges-summary": "A plecsnikkel (például jó vagy kiemelt
szócikk minősítéssel) rendelkező lapok listája. A lista a lapazonosítók alapján
van rendezve, tehát az újabb lapok vannak előbb.",
"wikibase-pageswithbadges-invalid-id": "$1 nem egy érvényes
elemazonosító",
"wikibase-pageswithbadges-submit": "Lapok megjelenítése",
"entityusage": "Állítások használata",
diff --git a/extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php
b/extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php
index 40d9be4..c555d8e 100644
--- a/extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php
+++ b/extensions/Wikibase/client/includes/Usage/Sql/EntityUsageTable.php
@@ -81,7 +81,7 @@
//TODO: Inject
$this->readConnection =
MediaWikiServices::getInstance()->getDBLoadBalancer()
- ->getConnection( DB_REPLICA );
+ ->getConnection( DB_REPLICA );
}
/**
diff --git
a/extensions/Wikibase/client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTestCase.php
b/extensions/Wikibase/client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTestCase.php
index fd0065c..c8a13a8 100644
---
a/extensions/Wikibase/client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTestCase.php
+++
b/extensions/Wikibase/client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTestCase.php
@@ -15,6 +15,8 @@
if ( !class_exists( Scribunto_LuaEngineTestBase::class ) ) {
/**
+ * Fake base class in case Scribunto is not available.
+ *
* @license GPL-2.0+
* @author Marius Hoch < [email protected] >
*/
diff --git a/extensions/Wikibase/composer.json
b/extensions/Wikibase/composer.json
index d8e8b7b..4d1335f 100644
--- a/extensions/Wikibase/composer.json
+++ b/extensions/Wikibase/composer.json
@@ -45,7 +45,7 @@
},
"require-dev": {
"jakub-onderka/php-parallel-lint": ">=0.3 <0.10",
- "wikibase/wikibase-codesniffer": "^0.1.0",
+ "wikibase/wikibase-codesniffer": "^0.2.0",
"jakub-onderka/php-console-highlighter": "0.3.2",
"mediawiki/minus-x": "0.1.0"
},
@@ -61,6 +61,7 @@
"lib/maintenance/",
"repo/includes/",
"repo/maintenance/",
+ "repo/tests/phpunit/maintenance/MockAddUnits.php",
"repo/Wikibase.hooks.php"
],
"psr-4": {
@@ -81,9 +82,6 @@
"test": [
"composer validate --no-interaction",
"parallel-lint . --exclude vendor",
- "@cs"
- ],
- "cs": [
"phpcs -p -s"
]
}
diff --git a/extensions/Wikibase/lib/i18n/ais.json
b/extensions/Wikibase/lib/i18n/ais.json
index 239c414..3a8ed9e 100644
--- a/extensions/Wikibase/lib/i18n/ais.json
+++ b/extensions/Wikibase/lib/i18n/ais.json
@@ -56,6 +56,7 @@
"wikibase-validator-not-allowed": "caay kalikecay a sulyang: $1",
"wikibase-validator-no-validators": "satezep",
"datatypes-type-wikibase-item": "kasacacay",
+ "datatypes-type-commonsMedia": "kasasimel katahkalan nu kalisiw myiti
tangan",
"datatypes-type-geo-shape": "hekal nu lala’-liwliw",
"datatypes-type-external-id": "ihekalay mapulitaay a kodo",
"version-wikibase": "Wikibase",
@@ -67,6 +68,7 @@
"wikibase-time-precision-BCE-annum": "ayaw nu Yis mihca {{PLURAL:$1|$1
a mihca}}",
"wikibase-time-precision-BCE-millennium": "ayaw nu Yis mihca $1 malebut
a mihca",
"wikibase-time-precision-BCE-century": "ayaw nu Yis mihca $1 lasubu a
mihca",
+ "wikibase-time-precision-BCE-10annum": "ayaw nu Yis mihca $1 a mihca",
"wikibase-snakformatter-valuetype-mismatch": "sulyang kakuniza \"$1\"
atu susin kakuniza \"$2\" caay kataneng.",
"wikibase-snakformatter-property-not-found": "caay katepa susin $1,
la’cu taazihan apisaungay a kalunasulitan kakuniza.",
"wikibase-entity-summary-wbsetitem": "patizeng tuway baluhay kasacacay",
diff --git a/extensions/Wikibase/lib/i18n/ur.json
b/extensions/Wikibase/lib/i18n/ur.json
index 340c9f6..9242c3f 100644
--- a/extensions/Wikibase/lib/i18n/ur.json
+++ b/extensions/Wikibase/lib/i18n/ur.json
@@ -3,11 +3,13 @@
"authors": [
"පසිඳු කාවින්ද",
"عثمان خان شاہ",
- "Noor2020"
+ "Noor2020",
+ "Muhammad Shuaib"
]
},
"wikibase-sitelinks-wikipedia": "ویکیپیڈیا",
"wikibase-tooltip-error-details": "تفصیلات",
+ "wikibase-entity-summary-wbsetitem": "نیا آئٹم بنائیں",
"wikibase-entity-summary-wbsetclaim-update": "تبدیل کر دیا گیا
{{PLURAL:$3| دعوی|دعوے}}",
"wikibase-entity-summary-wbsetclaim-create": "تخلیق کر دیا گیا
{{PLURAL:$3| دعوی|دعوے}}",
"wikibase-entity-summary-wbsetclaim-update-qualifiers": "تبدیل کر دیا
گیا {{PLURAL:$4|تصفیہ کار کا| $4 تصفیہ کاران کے}} {{PLURAL:$3| دعوی|دعوے}}",
diff --git
a/extensions/Wikibase/lib/includes/Store/DispatchingPropertyInfoLookup.php
b/extensions/Wikibase/lib/includes/Store/DispatchingPropertyInfoLookup.php
index 802d3d3..4f21294 100644
--- a/extensions/Wikibase/lib/includes/Store/DispatchingPropertyInfoLookup.php
+++ b/extensions/Wikibase/lib/includes/Store/DispatchingPropertyInfoLookup.php
@@ -8,17 +8,21 @@
use Wikimedia\Rdbms\DBError;
/**
+ * A dispatching PropertyInfoLookup implementation that is able to understand
property ID strings
+ * prefixed with repository names, and forwards to the service responsible for
the repository.
+ *
* @license GPL-2.0+
*/
class DispatchingPropertyInfoLookup implements PropertyInfoLookup {
/**
- * @var PropertyInfoLookup[]
+ * @var PropertyInfoLookup[] indexed by repository name
*/
private $lookups;
/**
- * @param PropertyInfoLookup[] $lookups
+ * @param PropertyInfoLookup[] $lookups Map of repository name strings
to PropertyInfoLookup
+ * objects.
*/
public function __construct( array $lookups ) {
Assert::parameter( !empty( $lookups ), '$lookups', 'must not be
empty' );
diff --git a/extensions/Wikibase/lib/includes/Units/BaseUnitStorage.php
b/extensions/Wikibase/lib/includes/Units/BaseUnitStorage.php
index e4b2c27..9c4c9b1 100644
--- a/extensions/Wikibase/lib/includes/Units/BaseUnitStorage.php
+++ b/extensions/Wikibase/lib/includes/Units/BaseUnitStorage.php
@@ -5,6 +5,9 @@
/**
* Basic unit storage functionality.
* Concrete classes need to fill in data loading.
+ *
+ * @license GPL-2.0+
+ * @author Stas Malyshev
*/
abstract class BaseUnitStorage implements UnitStorage {
diff --git a/extensions/Wikibase/lib/includes/Units/CSVUnitStorage.php
b/extensions/Wikibase/lib/includes/Units/CSVUnitStorage.php
index e25eb0c..7df3bf3 100644
--- a/extensions/Wikibase/lib/includes/Units/CSVUnitStorage.php
+++ b/extensions/Wikibase/lib/includes/Units/CSVUnitStorage.php
@@ -7,6 +7,9 @@
* The units are stored as:
* Qsource,factor,QstandardUnit
* E.g.: Q130964,4.19,Q25269
+ *
+ * @license GPL-2.0+
+ * @author Stas Malyshev
*/
class CSVUnitStorage extends BaseUnitStorage {
diff --git a/extensions/Wikibase/lib/includes/Units/JsonUnitStorage.php
b/extensions/Wikibase/lib/includes/Units/JsonUnitStorage.php
index 97688f9..e4dfa89 100644
--- a/extensions/Wikibase/lib/includes/Units/JsonUnitStorage.php
+++ b/extensions/Wikibase/lib/includes/Units/JsonUnitStorage.php
@@ -16,6 +16,9 @@
* Primary units must have factor of 1.
* Another acceptable format is:
* "Q103510": { "factor": "100000", "unit": "Q44395" },
+ *
+ * @license GPL-2.0+
+ * @author Stas Malyshev
*/
class JsonUnitStorage extends BaseUnitStorage {
diff --git a/extensions/Wikibase/lib/includes/Units/UnitConverter.php
b/extensions/Wikibase/lib/includes/Units/UnitConverter.php
index 6b20c35..c2aae8c 100644
--- a/extensions/Wikibase/lib/includes/Units/UnitConverter.php
+++ b/extensions/Wikibase/lib/includes/Units/UnitConverter.php
@@ -8,6 +8,9 @@
/**
* Convert quantities to other units.
+ *
+ * @license GPL-2.0+
+ * @author Stas Malyshev
*/
class UnitConverter {
diff --git a/extensions/Wikibase/lib/includes/Units/UnitStorage.php
b/extensions/Wikibase/lib/includes/Units/UnitStorage.php
index 4a1a752..9ec1168 100644
--- a/extensions/Wikibase/lib/includes/Units/UnitStorage.php
+++ b/extensions/Wikibase/lib/includes/Units/UnitStorage.php
@@ -4,6 +4,9 @@
/**
* Storage interface for Unit conversion information.
+ *
+ * @license GPL-2.0+
+ * @author Stas Malyshev
*/
interface UnitStorage {
diff --git a/extensions/Wikibase/phpcs.xml b/extensions/Wikibase/phpcs.xml
index 9b40f57..aa154d3 100644
--- a/extensions/Wikibase/phpcs.xml
+++ b/extensions/Wikibase/phpcs.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<ruleset name="Wikibase">
- <rule ref="vendor/wikibase/wikibase-codesniffer/Wikibase"/>
+ <rule ref="./vendor/wikibase/wikibase-codesniffer/Wikibase"/>
<!-- Exceptions -->
@@ -37,9 +37,6 @@
<exclude-pattern>(RdfWriterFactory|UrlSchemeValidators)</exclude-pattern>
</rule>
<rule ref="Generic.Metrics.NestingLevel" />
-
- <!-- TODO: Move to the Wikibase CodeSniffer library. -->
- <rule ref="Squiz.WhiteSpace.CastSpacing" />
<file>.</file>
<exclude-pattern type="relative">^extensions/</exclude-pattern>
diff --git a/extensions/Wikibase/repo/i18n/ais.json
b/extensions/Wikibase/repo/i18n/ais.json
index 4b8d36b..2ad717b 100644
--- a/extensions/Wikibase/repo/i18n/ais.json
+++ b/extensions/Wikibase/repo/i18n/ais.json
@@ -15,6 +15,7 @@
"wikibase-cancel": "palawpes",
"wikibase-add": "cunusen",
"wikibase-addqualifier": "micunus nikayadah a sulit",
+ "wikibase-addreference": "micunus miazih tu tatenga’ay nasulitan",
"wikibase-remove-inprogress": "misipu henay ayza",
"wikibase-entitytermsview-entitytermsforlanguagelistview-toggler":
"yadah zuma a kamu",
"wikibase-entitytermsview-entitytermsforlanguagelistview-configure-link-label":
"setin",
@@ -75,6 +76,7 @@
"wikibase-statementview-rank-normal": "habutud kasaselel",
"wikibase-statementview-rank-deprecated": "caay matatungus kasaselel",
"wikibase-snakview-unsupportedsnaktype": "kakimad-kamu nikalahizaan
\"$1\". caay henay midama milisimet tina kakimad-kamu nikalahizaan.",
+ "wikibase-snakview-choosesnaktype": "kapipili’ sulyang kakuniza.",
"wikibase-snakview-variation-datavaluetypemismatch": "kya sulyang caay
matatungus susin pasaheci.",
"wikibase-snakview-variation-datavaluetypemismatch-details":
"talibahalay susin kakuniza \"$2\" atu sulyang kakuniza \"$1\" sasula’cus.",
"wikibase-snakview-variation-nonewvaluefordeletedproperty": "amana
misaheci baluhay sulyang tu masipuay tu susin.",
@@ -142,6 +144,7 @@
"wikibase-setlabeldescriptionaliases-label-label": "aazihen paya:",
"wikibase-setlabeldescriptionaliases-description-label": "sapuelac:",
"wikibase-setlabeldescriptionaliases-aliases-label": "pacimilay a
ngangan:",
+ "wikibase-setlabeldescriptionaliases-submit": "setin aazihen a paya,
sapuelac atu pacimilay ngangan",
"special-setsitelink": "misetin calay-kakacawan(wangcan) masasiket",
"wikibase-setsitelink-introfull": "misetin kisu [[$1]] a
calay-kakacawan(wangcan) masasiket $2.",
"wikibase-setsitelink-intro-badges": "u zuma sa,kapah kisu tu tina
calay-kakacawan(wangcan) masasiket setin isasa’ay kalu kunpay.",
@@ -171,6 +174,7 @@
"wikibase-tokencheck-mustposttoken": "pisaungay dada’ POST milunguc
miteka mikawaway-kalumyiti.",
"special-dispatchstats": "misumad patiyak sausi",
"wikibase-dispatchstats-no-stats": "ayzasa inayi’ ngaayay a sausi
kalunasulitan.",
+ "wikibase-dispatchstats-changes": "misumad nasulitan nazipa’an sausi
cesyun",
"wikibase-dispatchstats-stats": "patiyak sausi a cesyun",
"wikibase-dispatchstats-change-id": "ID",
"wikibase-dispatchstats-change-timestamp": "nisulitan nu takukian",
diff --git a/extensions/Wikibase/repo/i18n/ur.json
b/extensions/Wikibase/repo/i18n/ur.json
index 13e89d6..314f83e 100644
--- a/extensions/Wikibase/repo/i18n/ur.json
+++ b/extensions/Wikibase/repo/i18n/ur.json
@@ -86,6 +86,10 @@
"wikibase-itemdisambiguation-lookup-language": "زبان کا کوڈ:",
"wikibase-itemdisambiguation-lookup-label": "لیبل:",
"wikibase-itemdisambiguation-submit": "تلاش",
+ "special-newproperty": "نئی خاصیت بنائیں",
+ "wikibase-newproperty-fieldset": "نئی خاصیت بنائیں",
+ "special-newitem": "نیا آئٹم بنائیں",
+ "wikibase-newitem-fieldset": "نیا آئٹم بنائیں",
"wikibase-newentity-language": "زبان:",
"wikibase-newentity-label": "لیبل:",
"wikibase-newentity-description": "وضاحت:",
diff --git a/extensions/Wikibase/repo/includes/Actions/EditEntityAction.php
b/extensions/Wikibase/repo/includes/Actions/EditEntityAction.php
index 9950f33..ca89333 100644
--- a/extensions/Wikibase/repo/includes/Actions/EditEntityAction.php
+++ b/extensions/Wikibase/repo/includes/Actions/EditEntityAction.php
@@ -2,8 +2,6 @@
namespace Wikibase;
-use Diff\Comparer\ComparableComparer;
-use Diff\Differ\OrderedListDiffer;
use Html;
use IContextSource;
use Linker;
@@ -16,16 +14,8 @@
use Page;
use Revision;
use Status;
-use ValueFormatters\FormatterOptions;
-use ValueFormatters\ValueFormatter;
use WebRequest;
-use Wikibase\DataModel\Services\Lookup\EntityRetrievingTermLookup;
-use Wikibase\Lib\SnakFormatter;
-use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookupFactory;
use Wikibase\Repo\Content\EntityContentDiff;
-use Wikibase\Repo\Diff\ClaimDiffer;
-use Wikibase\Repo\Diff\ClaimDifferenceVisualizer;
-use Wikibase\Repo\Diff\DifferencesSnakVisualizer;
use Wikibase\Repo\Diff\BasicEntityDiffVisualizer;
use Wikibase\Repo\Diff\DispatchingEntityDiffVisualizer;
use Wikibase\Repo\WikibaseRepo;
diff --git a/extensions/Wikibase/repo/includes/Api/SetAliases.php
b/extensions/Wikibase/repo/includes/Api/SetAliases.php
index 249d1d8..58d2869 100644
--- a/extensions/Wikibase/repo/includes/Api/SetAliases.php
+++ b/extensions/Wikibase/repo/includes/Api/SetAliases.php
@@ -4,12 +4,9 @@
use ApiMain;
use ApiUsageException;
-use InvalidArgumentException;
use MediaWiki\MediaWikiServices;
-use Wikibase\Repo\Store\EntityPermissionChecker;
use Wikibase\Summary;
use Wikibase\Repo\ChangeOp\ChangeOp;
-use Wikibase\Repo\ChangeOp\ChangeOpAliases;
use Wikibase\Repo\ChangeOp\ChangeOps;
use Wikibase\Repo\ChangeOp\FingerprintChangeOpFactory;
use Wikibase\DataModel\Entity\EntityDocument;
diff --git a/extensions/Wikibase/repo/includes/Diff/EntityContentDiffView.php
b/extensions/Wikibase/repo/includes/Diff/EntityContentDiffView.php
index f32c04d..a8bd1ba 100644
--- a/extensions/Wikibase/repo/includes/Diff/EntityContentDiffView.php
+++ b/extensions/Wikibase/repo/includes/Diff/EntityContentDiffView.php
@@ -3,8 +3,6 @@
namespace Wikibase\Repo\Diff;
use Content;
-use Diff\Comparer\ComparableComparer;
-use Diff\Differ\OrderedListDiffer;
use DifferenceEngine;
use Html;
use IContextSource;
@@ -13,13 +11,7 @@
use MWException;
use ParserOutput;
use Revision;
-use ValueFormatters\FormatterOptions;
-use ValueFormatters\ValueFormatter;
-use Wikibase\DataModel\Services\EntityId\EntityIdFormatter;
-use Wikibase\DataModel\Services\Lookup\EntityRetrievingTermLookup;
use Wikibase\EntityContent;
-use Wikibase\Lib\SnakFormatter;
-use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookupFactory;
use Wikibase\Repo\WikibaseRepo;
use WikiPage;
diff --git
a/extensions/Wikibase/repo/includes/Search/Elastic/WikibasePrefixSearcher.php
b/extensions/Wikibase/repo/includes/Search/Elastic/WikibasePrefixSearcher.php
index 879a0af..fdfde3c 100644
---
a/extensions/Wikibase/repo/includes/Search/Elastic/WikibasePrefixSearcher.php
+++
b/extensions/Wikibase/repo/includes/Search/Elastic/WikibasePrefixSearcher.php
@@ -46,11 +46,11 @@
];
$searchQuery = new Query();
$searchQuery->setQuery( $this->query );
+ $resultType = $this->getSearchContext()->getResultsType();
+ $searchQuery->setSource( $resultType->getSourceFiltering() );
+ $searchQuery->setStoredFields( $resultType->getStoredFields() );
- $searchQuery->setSource(
$this->resultsType->getSourceFiltering() );
- $searchQuery->setStoredFields(
$this->resultsType->getStoredFields() );
-
- $highlight = $this->searchContext->getHighlight(
$this->resultsType );
+ $highlight = $this->searchContext->getHighlight( $resultType );
if ( $highlight ) {
$searchQuery->setHighlight( $highlight );
}
diff --git
a/extensions/Wikibase/repo/includes/Specials/HTMLForm/HTMLTrimmedTextField.php
b/extensions/Wikibase/repo/includes/Specials/HTMLForm/HTMLTrimmedTextField.php
index 6e56935..ca82093 100644
---
a/extensions/Wikibase/repo/includes/Specials/HTMLForm/HTMLTrimmedTextField.php
+++
b/extensions/Wikibase/repo/includes/Specials/HTMLForm/HTMLTrimmedTextField.php
@@ -6,6 +6,8 @@
use Wikibase\StringNormalizer;
/**
+ * A variant of an HTMLTextField that forcefully applies trimming.
+ *
* @license GPL-2.0+
*/
class HTMLTrimmedTextField extends HTMLTextField {
diff --git a/extensions/Wikibase/repo/maintenance/SPARQLClient.php
b/extensions/Wikibase/repo/maintenance/SPARQLClient.php
index dcb8a60..44c3118 100644
--- a/extensions/Wikibase/repo/maintenance/SPARQLClient.php
+++ b/extensions/Wikibase/repo/maintenance/SPARQLClient.php
@@ -6,6 +6,9 @@
/**
* Simple SPARQL client
+ *
+ * @license GPL-2.0+
+ * @author Stas Malyshev
*/
class SPARQLClient {
diff --git a/extensions/Wikibase/repo/maintenance/addUnitConversions.php
b/extensions/Wikibase/repo/maintenance/addUnitConversions.php
index f44f834..87bd695 100644
--- a/extensions/Wikibase/repo/maintenance/addUnitConversions.php
+++ b/extensions/Wikibase/repo/maintenance/addUnitConversions.php
@@ -23,7 +23,9 @@
/**
* Generate dump-like RDF for newly added units without running full dump.
- * @package Wikibase
+ *
+ * @license GPL-2.0+
+ * @author Stas Malyshev
*/
class AddUnitConversions extends Maintenance {
diff --git a/extensions/Wikibase/repo/maintenance/searchEntities.php
b/extensions/Wikibase/repo/maintenance/searchEntities.php
index 8d1f29c..86def17 100644
--- a/extensions/Wikibase/repo/maintenance/searchEntities.php
+++ b/extensions/Wikibase/repo/maintenance/searchEntities.php
@@ -21,8 +21,12 @@
*
* The script accepts search requests from stdin, line by line,
* and outputs results, preserving order.
+ *
+ * @license GPL-2.0+
+ * @author Stas Malyshev
*/
class SearchEntities extends Maintenance {
+
/**
* @var WikibaseRepo
*/
@@ -44,10 +48,10 @@
$this->addOption( 'display-language', "Language for the
display.", false, true );
$this->addOption( 'strict', "Should we use strict language
match?", false, true );
$this->addOption( 'engine', "Which engine to use - e.g. sql,
elastic.", false, true );
- $this->addOption( 'fork', 'Fork multiple processes to run
queries from.' .
- 'defaults to false.', false, true );
- $this->addOption( 'options', 'A JSON object mapping from global
variable to ' .
- 'its test value', false, true );
+ $this->addOption( 'fork', 'Fork multiple processes to run
queries from. Defaults to false.',
+ false, true );
+ $this->addOption( 'options', 'A JSON object mapping from global
variable to its test value',
+ false, true );
}
/**
@@ -173,7 +177,6 @@
default:
throw new \MWException( "Unknown engine:
$engine, valid values: sql, elastic." );
}
-
}
}
diff --git a/extensions/Wikibase/repo/maintenance/updateUnits.php
b/extensions/Wikibase/repo/maintenance/updateUnits.php
index ae9e117..e15d2c9 100644
--- a/extensions/Wikibase/repo/maintenance/updateUnits.php
+++ b/extensions/Wikibase/repo/maintenance/updateUnits.php
@@ -23,7 +23,9 @@
* mwscript
extensions/WikidataBuildResources/extensions/Wikibase/repo/maintenance/updateUnits.php
* --wiki wikidatawiki --base-unit-types Q223662,Q208469 --base-uri
http://www.wikidata.org/entity/
* --unit-class Q1978718 > unitConversion.json
- * @package Wikibase
+ *
+ * @license GPL-2.0+
+ * @author Stas Malyshev
*/
class UpdateUnits extends Maintenance {
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/Diff/EntityDiffVisualizerFactoryTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/Diff/EntityDiffVisualizerFactoryTest.php
index da9e044..d27afc0 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/Diff/EntityDiffVisualizerFactoryTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/Diff/EntityDiffVisualizerFactoryTest.php
@@ -51,7 +51,6 @@
] );
$this->assertSame( $dummyVisualizer,
$factory->newEntityDiffVisualizer( 'item' ) );
-
}
public function
testGivenInstantiatorDoesReturnDiffVisualizer_factoryThrowsException() {
diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/NewItem.php
b/extensions/Wikibase/repo/tests/phpunit/includes/NewItem.php
index 5cfbcf8..b2895d6 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/NewItem.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/NewItem.php
@@ -10,6 +10,8 @@
/**
* Immutable Wikibase entity builder.
+ *
+ * @license GPL-2.0+
*/
class NewItem {
diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/NewStatement.php
b/extensions/Wikibase/repo/tests/phpunit/includes/NewStatement.php
index 32b35f7..1d5ab56 100644
--- a/extensions/Wikibase/repo/tests/phpunit/includes/NewStatement.php
+++ b/extensions/Wikibase/repo/tests/phpunit/includes/NewStatement.php
@@ -15,6 +15,8 @@
use Wikibase\DataModel\Statement\Statement;
/**
+ * Immutable Wikibase statement builder.
+ *
* @license GPL-2.0+
*/
class NewStatement {
diff --git
a/extensions/Wikibase/repo/tests/phpunit/maintenance/AddUnitsTest.php
b/extensions/Wikibase/repo/tests/phpunit/maintenance/AddUnitsTest.php
index 1eb8bca..6f1d217 100644
--- a/extensions/Wikibase/repo/tests/phpunit/maintenance/AddUnitsTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/maintenance/AddUnitsTest.php
@@ -10,11 +10,13 @@
use Wikibase\Repo\Tests\Rdf\NTriplesRdfTestHelper;
use Wikibase\Repo\Tests\Rdf\RdfBuilderTestData;
-require_once __DIR__ . '/MockAddUnits.php';
-
/**
* @covers Wikibase\AddUnitConversions
+ *
* @group Wikibase
+ *
+ * @license GPL-2.0+
+ * @author Stas Malyshev
*/
class AddUnitsTest extends MediaWikiLangTestCase {
diff --git
a/extensions/Wikibase/repo/tests/phpunit/maintenance/UpdateUnitsTest.php
b/extensions/Wikibase/repo/tests/phpunit/maintenance/UpdateUnitsTest.php
index 1da25e5..13f0496 100644
--- a/extensions/Wikibase/repo/tests/phpunit/maintenance/UpdateUnitsTest.php
+++ b/extensions/Wikibase/repo/tests/phpunit/maintenance/UpdateUnitsTest.php
@@ -7,7 +7,11 @@
/**
* @covers Wikibase\UpdateUnits
+ *
* @group Wikibase
+ *
+ * @license GPL-2.0+
+ * @author Stas Malyshev
*/
class UpdateUnitsTest extends MediaWikiLangTestCase {
diff --git a/extensions/Wikibase/tests/phan/config.php
b/extensions/Wikibase/tests/phan/config.php
index f559871..18828d6 100644
--- a/extensions/Wikibase/tests/phan/config.php
+++ b/extensions/Wikibase/tests/phan/config.php
@@ -1,6 +1,5 @@
<?php
-use \Phan\Config;
// If xdebug is enabled, we need to increase the nesting level for phan
ini_set( 'xdebug.max_nesting_level', 1000 );
diff --git a/vendor/composer/autoload_classmap.php
b/vendor/composer/autoload_classmap.php
index a6008b9..15b608d 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -293,6 +293,7 @@
'WikibaseQuality\\ConstraintReport\\ConstraintCheck\\Helper\\ValueCountCheckerHelper'
=> $baseDir .
'/extensions/Constraints/includes/ConstraintCheck/Helper/ValueCountCheckerHelper.php',
'WikibaseQuality\\ConstraintReport\\ConstraintCheck\\ItemIdSnakValue' =>
$baseDir .
'/extensions/Constraints/includes/ConstraintCheck/ItemIdSnakValue.php',
'WikibaseQuality\\ConstraintReport\\ConstraintCheck\\Result\\CheckResult'
=> $baseDir .
'/extensions/Constraints/includes/ConstraintCheck/Result/CheckResult.php',
+ 'WikibaseQuality\\ConstraintReport\\ConstraintCheck\\Result\\NullResult'
=> $baseDir .
'/extensions/Constraints/includes/ConstraintCheck/Result/NullResult.php',
'WikibaseQuality\\ConstraintReport\\ConstraintLookup' => $baseDir .
'/extensions/Constraints/includes/ConstraintLookup.php',
'WikibaseQuality\\ConstraintReport\\ConstraintParameterRenderer' =>
$baseDir . '/extensions/Constraints/includes/ConstraintParameterRenderer.php',
'WikibaseQuality\\ConstraintReport\\ConstraintReportFactory' => $baseDir .
'/extensions/Constraints/includes/ConstraintReportFactory.php',
@@ -1763,6 +1764,7 @@
'Wikibase\\TermIndex' => $baseDir .
'/extensions/Wikibase/lib/includes/Store/TermIndex.php',
'Wikibase\\TermIndexEntry' => $baseDir .
'/extensions/Wikibase/lib/includes/TermIndexEntry.php',
'Wikibase\\TermSearchKeyBuilder' => $baseDir .
'/extensions/Wikibase/repo/includes/Store/Sql/TermSearchKeyBuilder.php',
+ 'Wikibase\\Test\\MockAddUnits' => $baseDir .
'/extensions/Wikibase/repo/tests/phpunit/maintenance/MockAddUnits.php',
'Wikibase\\Test\\MockClientStore' => $baseDir .
'/extensions/Wikibase/client/tests/phpunit/MockClientStore.php',
'Wikibase\\UpdateUnits' => $baseDir .
'/extensions/Wikibase/repo/maintenance/updateUnits.php',
'Wikibase\\ViewEntityAction' => $baseDir .
'/extensions/Wikibase/repo/includes/Actions/ViewEntityAction.php',
diff --git a/vendor/composer/autoload_static.php
b/vendor/composer/autoload_static.php
index af45f86..1f75640 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -597,6 +597,7 @@
'WikibaseQuality\\ConstraintReport\\ConstraintCheck\\Helper\\ValueCountCheckerHelper'
=> __DIR__ . '/../..' .
'/extensions/Constraints/includes/ConstraintCheck/Helper/ValueCountCheckerHelper.php',
'WikibaseQuality\\ConstraintReport\\ConstraintCheck\\ItemIdSnakValue'
=> __DIR__ . '/../..' .
'/extensions/Constraints/includes/ConstraintCheck/ItemIdSnakValue.php',
'WikibaseQuality\\ConstraintReport\\ConstraintCheck\\Result\\CheckResult' =>
__DIR__ . '/../..' .
'/extensions/Constraints/includes/ConstraintCheck/Result/CheckResult.php',
+
'WikibaseQuality\\ConstraintReport\\ConstraintCheck\\Result\\NullResult' =>
__DIR__ . '/../..' .
'/extensions/Constraints/includes/ConstraintCheck/Result/NullResult.php',
'WikibaseQuality\\ConstraintReport\\ConstraintLookup' => __DIR__ .
'/../..' . '/extensions/Constraints/includes/ConstraintLookup.php',
'WikibaseQuality\\ConstraintReport\\ConstraintParameterRenderer' =>
__DIR__ . '/../..' .
'/extensions/Constraints/includes/ConstraintParameterRenderer.php',
'WikibaseQuality\\ConstraintReport\\ConstraintReportFactory' =>
__DIR__ . '/../..' .
'/extensions/Constraints/includes/ConstraintReportFactory.php',
@@ -2067,6 +2068,7 @@
'Wikibase\\TermIndex' => __DIR__ . '/../..' .
'/extensions/Wikibase/lib/includes/Store/TermIndex.php',
'Wikibase\\TermIndexEntry' => __DIR__ . '/../..' .
'/extensions/Wikibase/lib/includes/TermIndexEntry.php',
'Wikibase\\TermSearchKeyBuilder' => __DIR__ . '/../..' .
'/extensions/Wikibase/repo/includes/Store/Sql/TermSearchKeyBuilder.php',
+ 'Wikibase\\Test\\MockAddUnits' => __DIR__ . '/../..' .
'/extensions/Wikibase/repo/tests/phpunit/maintenance/MockAddUnits.php',
'Wikibase\\Test\\MockClientStore' => __DIR__ . '/../..' .
'/extensions/Wikibase/client/tests/phpunit/MockClientStore.php',
'Wikibase\\UpdateUnits' => __DIR__ . '/../..' .
'/extensions/Wikibase/repo/maintenance/updateUnits.php',
'Wikibase\\ViewEntityAction' => __DIR__ . '/../..' .
'/extensions/Wikibase/repo/includes/Actions/ViewEntityAction.php',
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 0901dc7..249c6d3 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -125,12 +125,12 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-ArticlePlaceholder.git",
- "reference": "b356d178444f899069e2f5f647c7f483d7b556b3"
+ "reference": "bab4ba945646b81b510fc904f43b0d3d23469683"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/b356d178444f899069e2f5f647c7f483d7b556b3",
- "reference": "b356d178444f899069e2f5f647c7f483d7b556b3",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/bab4ba945646b81b510fc904f43b0d3d23469683",
+ "reference": "bab4ba945646b81b510fc904f43b0d3d23469683",
"shasum": ""
},
"require": {
@@ -141,7 +141,7 @@
"jakub-onderka/php-parallel-lint": "0.9.2",
"wikibase/wikibase-codesniffer": "^0.2.0"
},
- "time": "2017-10-15 17:38:18",
+ "time": "2017-10-20 07:57:50",
"type": "mediawiki-extension",
"installation-source": "dist",
"autoload": {
@@ -1389,12 +1389,12 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git",
- "reference": "3d3ff504b2e9f68a212739b0904e90c5f6e9e48c"
+ "reference": "e2397f95e4a71965f1bc60aa4a1e6d1e584819e4"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/3d3ff504b2e9f68a212739b0904e90c5f6e9e48c",
- "reference": "3d3ff504b2e9f68a212739b0904e90c5f6e9e48c",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/e2397f95e4a71965f1bc60aa4a1e6d1e584819e4",
+ "reference": "e2397f95e4a71965f1bc60aa4a1e6d1e584819e4",
"shasum": ""
},
"require": {
@@ -1427,9 +1427,9 @@
"jakub-onderka/php-console-highlighter": "0.3.2",
"jakub-onderka/php-parallel-lint": ">=0.3 <0.10",
"mediawiki/minus-x": "0.1.0",
- "wikibase/wikibase-codesniffer": "^0.1.0"
+ "wikibase/wikibase-codesniffer": "^0.2.0"
},
- "time": "2017-10-18 20:54:57",
+ "time": "2017-10-20 09:32:04",
"type": "mediawiki-extension",
"installation-source": "dist",
"autoload": {
@@ -1441,6 +1441,7 @@
"lib/maintenance/",
"repo/includes/",
"repo/maintenance/",
+ "repo/tests/phpunit/maintenance/MockAddUnits.php",
"repo/Wikibase.hooks.php"
],
"psr-4": {
@@ -1774,7 +1775,7 @@
"source": {
"type": "git",
"url":
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints",
- "reference": "ae7f775d6522c67efe47c54b480c4baeb494f367"
+ "reference": "0b42b96d328b7a2d7abcd168702b1d4e51b9794e"
},
"require": {
"php": ">=5.5.9",
@@ -1790,7 +1791,7 @@
"satooshi/php-coveralls": "master-dev",
"wikibase/wikibase-codesniffer": "^0.2.0"
},
- "time": "2017-10-19 09:01:07",
+ "time": "2017-10-19 21:29:54",
"type": "mediawiki-extension",
"installation-source": "source",
"autoload": {
--
To view, visit https://gerrit.wikimedia.org/r/385341
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I0c98b6dbdbabf5114f71f872cb03d190448fe079
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