WikidataBuilder has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/378229 )
Change subject: New Wikidata Build - 2017-09-15T10:00:01+0000 ...................................................................... New Wikidata Build - 2017-09-15T10:00:01+0000 Change-Id: If77cadadbcf5e424dea7d34ef689f39359f1a91d --- M composer.lock M extensions/Constraints/api/CheckConstraints.php M extensions/Constraints/composer.json M extensions/Constraints/includes/ConstraintCheck/DelegatingConstraintChecker.php M extensions/Constraints/includes/ConstraintCheck/Result/CheckResult.php M extensions/Constraints/includes/ConstraintParameterRenderer.php M extensions/Quality/composer.json M extensions/Wikibase/.travis.yml M extensions/Wikibase/client/i18n/mwl.json M extensions/Wikibase/client/i18n/nb.json M extensions/Wikibase/client/i18n/tay.json M extensions/Wikibase/docs/options.wiki M extensions/Wikibase/lib/i18n/sd.json M extensions/Wikibase/repo/i18n/sd.json M extensions/Wikibase/repo/i18n/tay.json M extensions/Wikibase/repo/includes/Search/Elastic/ElasticTermResult.php M extensions/Wikibase/repo/resources/experts/resources.php M extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_de-ch-en.expected M extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_de-ch.expected M extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_de-ch_strict.expected M extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_en.expected M extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_en_strict.expected M extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_zh-de-ch.expected M extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_zh.expected M extensions/Wikibase/repo/tests/phpunit/includes/Search/Elastic/ElasticTermResultTest.php M extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.entityselector.js M extensions/Wikibase/view/resources/jquery/wikibase/themes/default/jquery.wikibase.entityselector.css M extensions/WikimediaBadges/composer.json M vendor/composer/installed.json 29 files changed, 327 insertions(+), 127 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata refs/changes/29/378229/1 diff --git a/composer.lock b/composer.lock index 74f749d..7c48d10 100644 --- a/composer.lock +++ b/composer.lock @@ -977,7 +977,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints", - "reference": "2a3b1d4ca81563664534cf6e611c8802ec0210ce" + "reference": "e3e6981757bef7e602fd09404ffc7a5b1ee3ad95" }, "require": { "php": ">=5.5.9", @@ -1011,7 +1011,7 @@ "phpcbf" ], "test": [ - "@validate --no-interaction", + "composer validate --no-interaction", "parallel-lint . --exclude vendor", "phpcs -p -s" ] @@ -1037,7 +1037,7 @@ "support": { "issues": "https://phabricator.wikimedia.org/project/profile/1202/" }, - "time": "2017-09-14 09:09:09" + "time": "2017-09-14 17:45:52" }, { "name": "wikibase/data-model", @@ -1437,7 +1437,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQuality", - "reference": "08faa829d042e947c8f39b67e7f7e8df20a3e155" + "reference": "438cc59e7d0715d58b4d1ad4dff848f861cd4c2d" }, "require": { "php": ">=5.5.9", @@ -1447,7 +1447,7 @@ }, "require-dev": { "data-values/geo": "~1.0|~2.0", - "data-values/number": ">=0.1 <0.9", + "data-values/number": ">=0.1 <0.10", "data-values/serialization": ">=0.1 <2.0", "data-values/time": ">=0.1 <0.9", "jakub-onderka/php-console-highlighter": "0.3.2", @@ -1471,7 +1471,7 @@ "phpcbf" ], "test": [ - "@validate --no-interaction", + "composer validate --no-interaction", "parallel-lint . --exclude vendor", "phpcs -p -s" ] @@ -1496,7 +1496,7 @@ "support": { "issues": "https://phabricator.wikimedia.org/project/profile/989/" }, - "time": "2017-09-12 20:57:24" + "time": "2017-09-14 19:40:46" }, { "name": "wikibase/serialization-javascript", @@ -1548,12 +1548,12 @@ "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", - "reference": "76ef2006c180401093d7f1f422b2be903ad3b06a" + "reference": "4e34de4858b0d766618b21824833df54ee68e335" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/76ef2006c180401093d7f1f422b2be903ad3b06a", - "reference": "76ef2006c180401093d7f1f422b2be903ad3b06a", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/4e34de4858b0d766618b21824833df54ee68e335", + "reference": "4e34de4858b0d766618b21824833df54ee68e335", "shasum": "" }, "require": { @@ -1631,7 +1631,7 @@ "wikibaserepo", "wikidata" ], - "time": "2017-09-14 09:41:06" + "time": "2017-09-15 09:25:58" }, { "name": "wikibase/wikimedia-badges", @@ -1639,7 +1639,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikimediaBadges", - "reference": "4f527bad680d1d99dff6ad6fa7e2e9c09d349ede" + "reference": "d1fb4b710d17d9591c00b5e28f37389caa0a9ab2" }, "require": { "php": ">=5.5.9" @@ -1660,7 +1660,7 @@ "phpcbf" ], "test": [ - "@validate --no-interaction", + "composer validate --no-interaction", "parallel-lint . --exclude vendor", "phpcs -p -s" ] @@ -1685,7 +1685,7 @@ "support": { "irc": "irc://irc.freenode.net/wikidata" }, - "time": "2017-09-04 12:23:09" + "time": "2017-09-14 09:51:19" }, { "name": "wikimedia/assert", diff --git a/extensions/Constraints/api/CheckConstraints.php b/extensions/Constraints/api/CheckConstraints.php index 2a2d45a..e4cbb6a 100644 --- a/extensions/Constraints/api/CheckConstraints.php +++ b/extensions/Constraints/api/CheckConstraints.php @@ -44,25 +44,21 @@ const PARAM_CONSTRAINT_ID = 'constraintid'; /** - * * @var EntityIdParser */ private $entityIdParser; /** - * * @var StatementGuidValidator */ private $statementGuidValidator; /** - * * @var StatementGuidParser */ private $statementGuidParser; /** - * * @var DelegatingConstraintChecker */ private $delegatingConstraintChecker; @@ -73,19 +69,16 @@ private $resultBuilder; /** - * * @var ApiErrorReporter */ private $errorReporter; /** - * * @var StatementChangeOpFactory */ private $statementChangeOpFactory; /** - * * @var ConstraintParameterRenderer */ private $constraintParameterRenderer; diff --git a/extensions/Constraints/composer.json b/extensions/Constraints/composer.json index 54493df..13c652b 100644 --- a/extensions/Constraints/composer.json +++ b/extensions/Constraints/composer.json @@ -42,7 +42,7 @@ "scripts": { "fix": "phpcbf", "test": [ - "@validate --no-interaction", + "composer validate --no-interaction", "parallel-lint . --exclude vendor", "phpcs -p -s" ] diff --git a/extensions/Constraints/includes/ConstraintCheck/DelegatingConstraintChecker.php b/extensions/Constraints/includes/ConstraintCheck/DelegatingConstraintChecker.php index 62268b0..c3ace71 100644 --- a/extensions/Constraints/includes/ConstraintCheck/DelegatingConstraintChecker.php +++ b/extensions/Constraints/includes/ConstraintCheck/DelegatingConstraintChecker.php @@ -56,7 +56,6 @@ private $constraintParameterParser; /** - * * @var StatementGuidParser */ private $statementGuidParser; @@ -246,11 +245,9 @@ } /** - * * @param EntityDocument|StatementListProvider $entity * @param Statement $statement * @param string[]|null $constraintIds list of constraints to check (if null: all constraints) - * * * @return CheckResult[] */ diff --git a/extensions/Constraints/includes/ConstraintCheck/Result/CheckResult.php b/extensions/Constraints/includes/ConstraintCheck/Result/CheckResult.php index b8ec2b5..c2bc571 100644 --- a/extensions/Constraints/includes/ConstraintCheck/Result/CheckResult.php +++ b/extensions/Constraints/includes/ConstraintCheck/Result/CheckResult.php @@ -63,13 +63,13 @@ private $context; /** - * @var array + * @var array[] * Includes arrays of ItemIds or PropertyIds or strings. */ private $parameters; /** - * @var string + * @var string One of the self::STATUS_… constants */ private $status; @@ -81,9 +81,9 @@ /** * @param Context $context * @param Constraint $constraint - * @param array $parameters (string => string[]) parsed constraint parameters + * @param array[] $parameters (string => string[]) parsed constraint parameters * ($constraint->getParameters() contains the unparsed parameters) - * @param string $status + * @param string $status One of the self::STATUS_… constants * @param string $message (sanitized HTML) */ public function __construct( @@ -150,7 +150,7 @@ } /** - * @return array + * @return array[] */ public function getParameters() { return $this->parameters; @@ -158,14 +158,14 @@ /** * @param string $key - * @param $value + * @param string $value */ public function addParameter( $key, $value ) { $this->parameters[$key][] = $value; } /** - * @return string + * @return string One of the self::STATUS_… constants */ public function getStatus() { return $this->status; diff --git a/extensions/Constraints/includes/ConstraintParameterRenderer.php b/extensions/Constraints/includes/ConstraintParameterRenderer.php index eb92403..e81b6f9 100644 --- a/extensions/Constraints/includes/ConstraintParameterRenderer.php +++ b/extensions/Constraints/includes/ConstraintParameterRenderer.php @@ -31,7 +31,6 @@ const MAX_PARAMETER_ARRAY_LENGTH = 10; /** - * * @var EntityIdFormatter */ private $entityIdLabelFormatter; diff --git a/extensions/Quality/composer.json b/extensions/Quality/composer.json index 9e1bae3..9376c3d 100644 --- a/extensions/Quality/composer.json +++ b/extensions/Quality/composer.json @@ -21,7 +21,7 @@ }, "require-dev": { "data-values/geo": "~1.0|~2.0", - "data-values/number": ">=0.1 <0.9", + "data-values/number": ">=0.1 <0.10", "data-values/serialization": ">=0.1 <2.0", "data-values/time": ">=0.1 <0.9", "jakub-onderka/php-console-highlighter": "0.3.2", @@ -42,7 +42,7 @@ "scripts": { "fix": "phpcbf", "test": [ - "@validate --no-interaction", + "composer validate --no-interaction", "parallel-lint . --exclude vendor", "phpcs -p -s" ] diff --git a/extensions/Wikibase/.travis.yml b/extensions/Wikibase/.travis.yml index ce5f5ca..bbecc60 100644 --- a/extensions/Wikibase/.travis.yml +++ b/extensions/Wikibase/.travis.yml @@ -28,6 +28,7 @@ email: recipients: - wikidata-ci-sta...@wikimedia.de + - leszek.mani...@wikimedia.de on_success: change on_failure: always irc: diff --git a/extensions/Wikibase/client/i18n/mwl.json b/extensions/Wikibase/client/i18n/mwl.json index 5c0e05e..d22cde7 100644 --- a/extensions/Wikibase/client/i18n/mwl.json +++ b/extensions/Wikibase/client/i18n/mwl.json @@ -6,6 +6,7 @@ }, "tooltip-t-wikibase": "Lhigaçon pa l eilemiento de l repositório de dados", "wikibase-after-page-move": "L sou arrastramiento deberie aora ser [$1 refletido na lhigaçon anterlhenguística de l eilemiento {{WBREPONAME}}]. Solicitamos que berifique se esto acunteciu.", + "wikibase-after-page-delete": "La lhigaçon pa esta páigina deberie tener sido retirada [$1 de l eilemiento {{WBREPONAME}} associado]. Pedimos que berifique se esto acunteciu.", "wikibase-comment-update": "Eilemiento {{WBREPONAME}} altarado", "wikibase-dataitem": "Eilemiento {{WBREPONAME}}", "wikibase-editlinks": "Eiditar lhigaçones", diff --git a/extensions/Wikibase/client/i18n/nb.json b/extensions/Wikibase/client/i18n/nb.json index 9da6476..695f6ac 100644 --- a/extensions/Wikibase/client/i18n/nb.json +++ b/extensions/Wikibase/client/i18n/nb.json @@ -11,6 +11,7 @@ "wikibase-client-desc": "Klient for Wikibase-utvidelsen", "tooltip-t-wikibase": "Lenke til koblet dataregisterelement", "apihelp-query+wbentityusage-description": "Returnerer alle entitets-ID-er som brukes i de gitte sidene.", + "apihelp-query+wbentityusage-summary": "Returnerer alle entitets-ID-er brukt på de gitte sidene.", "apihelp-query+wbentityusage-param-aspect": "Returner bare entitets-ID-er som brukte dette aspektet.", "apihelp-query+wbentityusage-param-prop": "Egenskaper å legge til resultatet.", "apihelp-query+wbentityusage-paramvalue-prop-url": "Om denne er slått på vil entitetens URL bli lagt til", @@ -18,6 +19,7 @@ "apihelp-query+wbentityusage-param-limit": "Hvor mange entitetsbruk som skal returneres.", "apihelp-query+wbentityusage-example-simple": "Få entiteter som brukes på siden <kbd>Main Page</kbd>.", "apihelp-query+wblistentityusage-description": "Returnerer alle sider som bruker de gitte entitets-ID-ene.", + "apihelp-query+wblistentityusage-summary": "Returnerer alle sider som bruker de gitte entitets-ID-ene.", "apihelp-query+wblistentityusage-param-prop": "Egenskaper å legge til resultatet.", "apihelp-query+wblistentityusage-paramvalue-prop-url": "Om denne er slått på vil entitetens URL bli lagt til resultatet.", "apihelp-query+wblistentityusage-param-aspect": "Returner bare entitets-ID-er som brukte dette aspektet.", @@ -81,7 +83,7 @@ "wikibase-watchlist-show-changes-pref": "Vis {{WBREPONAME}}-redigeringer i overvåkningslisten din", "wikibase-error-deserialize-error": "Klarte ikke å pakke ut data.", "wikibase-error-serialize-error": "Serialisering av data mislyktes", - "wikibase-error-invalid-entity-id": "ID-en du la inn er ukjent for systemet. Legg inn en gyldig ID.", + "wikibase-error-invalid-entity-id": "ID-en «$2» er ukjent for systemet. Bruk en gyldig entitets-ID.", "wikibase-error-exceeded-entity-access-limit": "For mange {{WBREPONAME}}-elementer hentet.", "unconnectedpages": "Sider som ikke er knyttet til elementer.", "unconnectedpages-summary": "Denne siden lister sider uten tilknyttet dataelement (i navnerom som støtter tilknyttede elementer). Listen er sortert på fallende side-ID, slik at nyere sider listes først.", diff --git a/extensions/Wikibase/client/i18n/tay.json b/extensions/Wikibase/client/i18n/tay.json index 770f1d2..e09b9bf 100644 --- a/extensions/Wikibase/client/i18n/tay.json +++ b/extensions/Wikibase/client/i18n/tay.json @@ -19,6 +19,7 @@ "wikibase-rc-wikibase-edit-letter": "Suwe", "wikibase-rc-wikibase-edit-title": "{{WBREPONAME}} Smr’zyut miru’", "entityusage": "Zyuwaw na spzyuang balay sptzyuwaw", + "wikibase-pageinfo-entity-id-none": "Ungat", "wikibase-pageinfo-entity-usage-X": "Kwara’ qu spzyang qbuci’ na snli’ kwara’ biru’ na ana nanu’", "wikibase-otherprojects": "Bzinah Cwan’an" } diff --git a/extensions/Wikibase/docs/options.wiki b/extensions/Wikibase/docs/options.wiki index fb35a24..f0b1752 100644 --- a/extensions/Wikibase/docs/options.wiki +++ b/extensions/Wikibase/docs/options.wiki @@ -52,8 +52,8 @@ :;length: the maximum length of the string, in characters. :Default: <code>array( 'length' => 250 )</code>. ;urlSchemes: Which URL schemes should be allowed in URL data values. The default is <code>array( 'bzr', 'cvs', 'ftp', 'git', 'http', 'https', 'irc', 'mailto', 'ssh', 'svn' )</code>. Other supported schemes are <code>ftps</code>, <code>ircs</code>, <code>mms</code>, <code>nntp</code>, <code>redis</code>, <code>sftp</code>, <code>telnet</code>, <code>worldwind</code> and <code>gopher</code>. Schemes (protocols) added here will only have any effect if validation is supported for that protocol; that is, adding <code>ftps</code> will work, while adding <code>dummy</code> will do nothing. -;formatterUrlProperty: Property to be used on properties that defines a formatter URL which is used to link identifiers. The placeholder <code>$1</code> will be replaced by the identifier. Example: <code>https://www.wikidata.org/entity/$1</code> -;canonicalUriProperty: Property to be used on properties that defines a URI pattern which is used to link identifiers in JSON and RDF. The placeholder <code>$1</code> will be replaced by the identifier. Example: <code>https://www.wikidata.org/entity/$1</code> +;formatterUrlProperty: Property to be used on properties that defines a formatter URL which is used to link external identifiers. The placeholder <code>$1</code> will be replaced by the identifier. Example: On wikidata.org, this is set to <code>P1630</code>, a string property named "formatter URL". When formatting identifiers, each identifiers property page is checked for it's formatter URL (e.g. <code>http://d-nb.info/gnd/$1</code>) specified by the property from this setting. +;canonicalUriProperty: Property to be used on properties that defines a URI pattern which is used to link external identifiers in RDF and other exports. The placeholder <code>$1</code> will be replaced by the identifier. Example: On wikidata.org, this is set to <code>P1921</code>, a string property named "URI used in RDF". When exporting identifiers to RDF or other formats, each identifiers property page is checked for it's URI pattern (e.g. <code>http://d-nb.info/gnd/$1/about/rdf</code>) specified by the property from this setting. ;transformLegacyFormatOnExport: Whether entity revisions stored in a legacy format should be converted on the fly while exporting. Enabled per default. ;allowEntityImport: Allow importing entities via Special:Import and importDump.php. Per default, imports are forbidden, since entities defined in another wiki would have or use IDs that conflict with entities defined locally. ;pagePropertiesRdf: Array that maps between page properties and Wikibase predicates for RDF dumps. Maps from database property name to an array that contains a key <code>'name'</code> (RDF property name, which will be prefixed by <code>wikibase:</code>) and an optional key <code>'type'</code>. diff --git a/extensions/Wikibase/lib/i18n/sd.json b/extensions/Wikibase/lib/i18n/sd.json index 70e4284..97658ec 100644 --- a/extensions/Wikibase/lib/i18n/sd.json +++ b/extensions/Wikibase/lib/i18n/sd.json @@ -5,5 +5,6 @@ "Mehtab ahmed" ] }, - "wikibase-sitelinks-wikipedia": "وڪيپيڊيا" + "wikibase-sitelinks-wikipedia": "وڪيپيڊيا", + "datatypes-type-wikibase-item": "جزو" } diff --git a/extensions/Wikibase/repo/i18n/sd.json b/extensions/Wikibase/repo/i18n/sd.json index 0c4d0f0..1065c38 100644 --- a/extensions/Wikibase/repo/i18n/sd.json +++ b/extensions/Wikibase/repo/i18n/sd.json @@ -6,6 +6,7 @@ "Mehtab ahmed" ] }, + "wikibase-entity-item": "جزو", "wikibase-edit": "سنواريو", "wikibase-save": "سانڍيو", "wikibase-cancel": "رد", @@ -18,5 +19,6 @@ "wikibase-statementsection-statements": "بيانات", "wikibase-sitelinks-special": "ٻيون سرزمينون", "wikibase-statementview-rank-normal": "عام درجو", - "wikibase-statementview-references-counter": "$1 {{PLURAL:$1|حوالو|حوالا}}" + "wikibase-statementview-references-counter": "$1 {{PLURAL:$1|حوالو|حوالا}}", + "wikibase-listdatatypes-wikibase-item-head": "جزو" } diff --git a/extensions/Wikibase/repo/i18n/tay.json b/extensions/Wikibase/repo/i18n/tay.json index 18d1b8a..0b6d6df 100644 --- a/extensions/Wikibase/repo/i18n/tay.json +++ b/extensions/Wikibase/repo/i18n/tay.json @@ -35,6 +35,7 @@ "special-redirectentity": "T’ringun pglaing spzyang qbuci’ na nnanu’", "wikibase-listdatatypes-external-id-head": "Biru’ na sinbbaq sa cyux mtzyuwaw squw taylnglingay", "wikibase-concept-uri": "Kinbaq na zyuwaw URI", + "wikibase-pageinfo-subscription-none": "Ungat", "apihelp-wbeditentity-example-12": "Laxan qutux lalu’ na qinlah", "apihelp-wbsearchentities-param-search": "Hkangi’ biru’ qaniy.", "apihelp-wbsearchentities-param-language": "Hkangi’ kay’ qaniy.", diff --git a/extensions/Wikibase/repo/includes/Search/Elastic/ElasticTermResult.php b/extensions/Wikibase/repo/includes/Search/Elastic/ElasticTermResult.php index 6d1b043..c0c379c 100644 --- a/extensions/Wikibase/repo/includes/Search/Elastic/ElasticTermResult.php +++ b/extensions/Wikibase/repo/includes/Search/Elastic/ElasticTermResult.php @@ -105,14 +105,20 @@ 'type' => 'experimental', 'fragmenter' => "none", 'number_of_fragments' => 0, - 'options' => [ 'skip_if_last_matched' => true ], + 'options' => [ + 'skip_if_last_matched' => true, + 'return_snippets_and_offsets' => true + ], ]; } - $config['fields']['labels_all.prefix'] = [ + $config['fields']['labels.*.prefix'] = [ 'type' => 'experimental', 'fragmenter' => "none", 'number_of_fragments' => 0, - 'options' => [ 'skip_if_last_matched' => true ], + 'options' => [ + 'skip_if_last_matched' => true, + 'return_snippets_and_offsets' => true + ], ]; return $config; @@ -172,7 +178,6 @@ // Highlight part contains information about what has actually been matched. $highlight = $r->getHighlights(); - $matchedTermType = 'label'; $displayLabel = $this->findTermForDisplay( $sourceData, 'labels' ); $displayDescription = $this->findTermForDisplay( $sourceData, 'descriptions' ); @@ -184,25 +189,8 @@ // Something went wrong, we don't have any highlighting data continue; } else { - // We matched the actual label - find which language it is and - // whether it's main label (always first) or alias (not first) - $term = reset( $highlight ); - $term = $term[0]; // Highlighter returns array - $field = key( $highlight ); - if ( preg_match( '/^labels\.(.+?)\.prefix$/', $field, $match ) ) { - $langCode = $match[1]; - if ( !empty( $sourceData['labels'][$langCode] ) ) { - // Primary label always comes first, so if it's not the first one, - // it's an alias. - if ( $sourceData['labels'][$langCode][0] !== $term ) { - $matchedTermType = 'alias'; - } - } - } else { - // This is weird since we didn't ask to match anything else, - // but we'll return it anyway for debugging. - $langCode = 'unknown'; - } + list( $matchedTermType, $langCode, $term ) = + $this->extractTermFromHighlight( $highlight, $sourceData ); $matchedTerm = new Term( $langCode, $term ); } @@ -221,6 +209,60 @@ } /** + * New highlighter pattern. + * The new highlighter can return offsets as: 1:1-XX:YY|Text Snippet + * or even SNIPPET_START:MATCH1_START-MATCH1_END,MATCH2_START-MATCH2_END,...:SNIPPET_END|Text + */ + const HIGHLIGHT_PATTERN = '/^\d+:\d+-\d+(?:,\d+-\d+)*:\d+\|(.+)/'; + + /** + * Extract term, language and type from highlighter results. + * @param array $highlight Data from highlighter + * @param array $sourceData Data from _source + * @return array [ type, language, term ] + */ + private function extractTermFromHighlight( array $highlight, $sourceData ) { + /** + * Highlighter returns: + * { + * labels.en.prefix: [ + * "metre" // or "0:0-5:5|metre" + * ] + * } + */ + $matchedTermType = 'label'; + $term = reset( $highlight ); // Take the first one + $term = $term[0]; // Highlighter returns array + $field = key( $highlight ); + if ( preg_match( '/^labels\.([^.]+)\.prefix$/', $field, $match ) ) { + $langCode = $match[1]; + if ( preg_match( self::HIGHLIGHT_PATTERN, $term, $termMatch ) ) { + $isFirst = ( $term[0] === '0' ); + $term = $termMatch[1]; + } else { + $isFirst = true; + } + if ( !empty( $sourceData['labels'][$langCode] ) ) { + // Here we have match in one of the languages we asked for. + // Primary label always comes first, so if it's not the first one, + // it's an alias. + if ( $sourceData['labels'][$langCode][0] !== $term ) { + $matchedTermType = 'alias'; + } + } else { + // Here we have match in one of the "other" languages. + // If it's the first one in the list, it's label, otherwise it is alias. + $matchedTermType = $isFirst ? 'label' : 'alias'; + } + } else { + // This is weird since we didn't ask to match anything else, + // but we'll return it anyway for debugging. + $langCode = 'unknown'; + } + return [ $matchedTermType, $langCode, $term ]; + } + + /** * @return TermSearchResult[] Empty set of search results */ public function createEmptyResult() { diff --git a/extensions/Wikibase/repo/resources/experts/resources.php b/extensions/Wikibase/repo/resources/experts/resources.php index 6548fc2..59a2a59 100644 --- a/extensions/Wikibase/repo/resources/experts/resources.php +++ b/extensions/Wikibase/repo/resources/experts/resources.php @@ -30,6 +30,7 @@ 'getStore.js', ], 'dependencies' => [ + 'wikibase.experts.__namespace', 'wikibase.experts.modules', 'dataValues.values', 'jquery.valueview.ExpertStore', diff --git a/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_de-ch-en.expected b/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_de-ch-en.expected index 59b17af..48d79ef 100644 --- a/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_de-ch-en.expected +++ b/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_de-ch-en.expected @@ -171,7 +171,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.de.prefix": { @@ -179,7 +180,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.en.prefix": { @@ -187,15 +189,17 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, - "labels_all.prefix": { + "labels.*.prefix": { "type": "experimental", "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } } } diff --git a/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_de-ch.expected b/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_de-ch.expected index 47d506d..48ef5ea 100644 --- a/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_de-ch.expected +++ b/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_de-ch.expected @@ -175,7 +175,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.de.prefix": { @@ -183,7 +184,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.en.prefix": { @@ -191,15 +193,17 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, - "labels_all.prefix": { + "labels.*.prefix": { "type": "experimental", "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } } } diff --git a/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_de-ch_strict.expected b/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_de-ch_strict.expected index e2fd15d..bc3b388 100644 --- a/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_de-ch_strict.expected +++ b/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_de-ch_strict.expected @@ -105,7 +105,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.de.prefix": { @@ -113,7 +114,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.en.prefix": { @@ -121,15 +123,17 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, - "labels_all.prefix": { + "labels.*.prefix": { "type": "experimental", "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } } } diff --git a/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_en.expected b/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_en.expected index fa1d28b..857c6bf 100644 --- a/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_en.expected +++ b/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_en.expected @@ -111,15 +111,17 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, - "labels_all.prefix": { + "labels.*.prefix": { "type": "experimental", "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } } } diff --git a/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_en_strict.expected b/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_en_strict.expected index 3030ae9..c6a9848 100644 --- a/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_en_strict.expected +++ b/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_en_strict.expected @@ -101,15 +101,17 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, - "labels_all.prefix": { + "labels.*.prefix": { "type": "experimental", "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } } } diff --git a/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_zh-de-ch.expected b/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_zh-de-ch.expected index a952591..008723b 100644 --- a/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_zh-de-ch.expected +++ b/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_zh-de-ch.expected @@ -385,7 +385,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.zh-hans.prefix": { @@ -393,7 +394,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.zh-hant.prefix": { @@ -401,7 +403,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.zh-cn.prefix": { @@ -409,7 +412,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.zh-tw.prefix": { @@ -417,7 +421,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.zh-hk.prefix": { @@ -425,7 +430,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.zh-sg.prefix": { @@ -433,7 +439,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.zh-mo.prefix": { @@ -441,7 +448,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.zh-my.prefix": { @@ -449,7 +457,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.en.prefix": { @@ -457,15 +466,17 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, - "labels_all.prefix": { + "labels.*.prefix": { "type": "experimental", "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } } } diff --git a/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_zh.expected b/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_zh.expected index ae8061e..88effae 100644 --- a/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_zh.expected +++ b/extensions/Wikibase/repo/tests/phpunit/data/entitySearch/search_zh.expected @@ -399,7 +399,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.zh-hans.prefix": { @@ -407,7 +408,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.zh-hant.prefix": { @@ -415,7 +417,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.zh-cn.prefix": { @@ -423,7 +426,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.zh-tw.prefix": { @@ -431,7 +435,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.zh-hk.prefix": { @@ -439,7 +444,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.zh-sg.prefix": { @@ -447,7 +453,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.zh-mo.prefix": { @@ -455,7 +462,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.zh-my.prefix": { @@ -463,7 +471,8 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, "labels.en.prefix": { @@ -471,15 +480,17 @@ "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } }, - "labels_all.prefix": { + "labels.*.prefix": { "type": "experimental", "fragmenter": "none", "number_of_fragments": 0, "options": { - "skip_if_last_matched": true + "skip_if_last_matched": true, + "return_snippets_and_offsets": true } } } diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/Search/Elastic/ElasticTermResultTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/Search/Elastic/ElasticTermResultTest.php index 7cb9ed2..24c3743 100644 --- a/extensions/Wikibase/repo/tests/phpunit/includes/Search/Elastic/ElasticTermResultTest.php +++ b/extensions/Wikibase/repo/tests/phpunit/includes/Search/Elastic/ElasticTermResultTest.php @@ -208,6 +208,120 @@ 'matchedType' => 'alias' ], ], + 'other language, label' => [ + [ 'en' ], + [ 'en' ], + [ + '_source' => [ + 'title' => 'Q56', + 'labels' => [ + 'en' => [ 'Name', 'And alias' ], + ], + ], + 'highlight' => [ 'labels.de.prefix' => [ 'Something else' ] ] + ], + [ + 'id' => 'Q56', + 'label' => [ 'en', 'Name' ], + 'matched' => [ 'de', 'Something else' ], + 'matchedType' => 'label' + ], + ], + 'simple, new highlighter' => [ + [ 'en' ], + [ 'en' ], + [ + '_source' => [ + 'title' => 'Q71', + 'labels' => [ 'en' => [ 'Test 1', 'Test 1 alias' ] ], + 'descriptions' => [ 'en' => 'Describe it' ], + ], + 'highlight' => [ 'labels.en.prefix' => [ '0:0-5:5|Test 1' ] ] + ], + [ + 'id' => 'Q71', + 'label' => [ 'en', 'Test 1' ], + 'description' => [ 'en', 'Describe it' ], + 'matched' => [ 'en', 'Test 1' ], + 'matchedType' => 'label' + ] + ], + 'alias, new highlighter' => [ + [ 'en' ], + [ 'en' ], + [ + '_source' => [ + 'title' => 'Q82', + 'labels' => [ 'en' => [ 'Test 1', 'Alias', 'Another' ] ], + 'descriptions' => [ 'en' => 'Describe it' ], + ], + 'highlight' => [ 'labels.en.prefix' => [ '10:10-15:15|Another' ] ] + ], + [ + 'id' => 'Q82', + 'label' => [ 'en', 'Test 1' ], + 'description' => [ 'en', 'Describe it' ], + 'matched' => [ 'en', 'Another' ], + 'matchedType' => 'alias' + ] + ], + 'other language, new hl' => [ + [ 'en' ], + [ 'en' ], + [ + '_source' => [ + 'title' => 'Q96', + 'labels' => [ + 'en' => [ 'Name', 'And alias' ], + ], + ], + 'highlight' => [ 'labels.de.prefix' => [ '0:0-7:7|Something else' ] ] + ], + [ + 'id' => 'Q96', + 'label' => [ 'en', 'Name' ], + 'matched' => [ 'de', 'Something else' ], + 'matchedType' => 'label' + ], + ], + 'other language, alias, new hl' => [ + [ 'en' ], + [ 'en' ], + [ + '_source' => [ + 'title' => 'Q106', + 'labels' => [ + 'en' => [ 'Name', 'And alias' ], + ], + ], + 'highlight' => [ 'labels.de.prefix' => [ '1:1-8:8|Something else' ] ] + ], + [ + 'id' => 'Q106', + 'label' => [ 'en', 'Name' ], + 'matched' => [ 'de', 'Something else' ], + 'matchedType' => 'alias' + ], + ], + 'alias, new highlighter, extended' => [ + [ 'en' ], + [ 'en' ], + [ + '_source' => [ + 'title' => 'Q117', + 'labels' => [ 'en' => [ 'Test 1', 'Alias', 'Another' ] ], + 'descriptions' => [ 'en' => 'Describe it' ], + ], + 'highlight' => [ 'labels.en.prefix' => [ '10:10-15,20-30,40-45:15|Another' ] ] + ], + [ + 'id' => 'Q117', + 'label' => [ 'en', 'Test 1' ], + 'description' => [ 'en', 'Describe it' ], + 'matched' => [ 'en', 'Another' ], + 'matchedType' => 'alias' + ] + ], ]; } diff --git a/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.entityselector.js b/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.entityselector.js index 39f8dbb..c2126b2 100644 --- a/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.entityselector.js +++ b/extensions/Wikibase/view/resources/jquery/wikibase/jquery.wikibase.entityselector.js @@ -495,11 +495,18 @@ }, /** - * Gets the selected entity. + * Gets and sets the current state. The optional parameter can be used to let the initial + * state of the selector reflect what can be seen in the input field the selector is + * attached to. * + * @param {string} [entityId] * @return {Object} Plain object featuring `Entity` stub data. */ - selectedEntity: function () { + selectedEntity: function ( entityId ) { + if ( typeof entityId === 'string' ) { + this._selectedEntity = { id: entityId }; + } + return this._selectedEntity; } } ); diff --git a/extensions/Wikibase/view/resources/jquery/wikibase/themes/default/jquery.wikibase.entityselector.css b/extensions/Wikibase/view/resources/jquery/wikibase/themes/default/jquery.wikibase.entityselector.css index 30db6f5..3de3cbb 100644 --- a/extensions/Wikibase/view/resources/jquery/wikibase/themes/default/jquery.wikibase.entityselector.css +++ b/extensions/Wikibase/view/resources/jquery/wikibase/themes/default/jquery.wikibase.entityselector.css @@ -71,11 +71,11 @@ } /* Specificity must be a little higher because of a valueview selector */ -.ui-entityselector-input.ui-entityselector-input-recognized { +.ui-suggester-input.ui-entityselector-input.ui-entityselector-input-recognized { border-color: #14866d; } -.ui-entityselector-input.ui-entityselector-input-unrecognized { +.ui-suggester-input.ui-entityselector-input.ui-entityselector-input-unrecognized { background-color: #fee7e6; border-color: #b32424; } diff --git a/extensions/WikimediaBadges/composer.json b/extensions/WikimediaBadges/composer.json index 13291b9..1787759 100644 --- a/extensions/WikimediaBadges/composer.json +++ b/extensions/WikimediaBadges/composer.json @@ -36,7 +36,7 @@ "scripts": { "fix": "phpcbf", "test": [ - "@validate --no-interaction", + "composer validate --no-interaction", "parallel-lint . --exclude vendor", "phpcs -p -s" ] diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index d49211f..9f1a4ac 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1389,12 +1389,12 @@ "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", - "reference": "76ef2006c180401093d7f1f422b2be903ad3b06a" + "reference": "4e34de4858b0d766618b21824833df54ee68e335" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/76ef2006c180401093d7f1f422b2be903ad3b06a", - "reference": "76ef2006c180401093d7f1f422b2be903ad3b06a", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/4e34de4858b0d766618b21824833df54ee68e335", + "reference": "4e34de4858b0d766618b21824833df54ee68e335", "shasum": "" }, "require": { @@ -1429,7 +1429,7 @@ "mediawiki/minus-x": "0.1.0", "wikibase/wikibase-codesniffer": "^0.1.0" }, - "time": "2017-09-14 09:41:06", + "time": "2017-09-15 09:25:58", "type": "mediawiki-extension", "installation-source": "dist", "autoload": { @@ -1482,7 +1482,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikimediaBadges", - "reference": "4f527bad680d1d99dff6ad6fa7e2e9c09d349ede" + "reference": "d1fb4b710d17d9591c00b5e28f37389caa0a9ab2" }, "require": { "php": ">=5.5.9" @@ -1492,7 +1492,7 @@ "jakub-onderka/php-parallel-lint": "0.9.2", "wikibase/wikibase-codesniffer": "^0.1.0" }, - "time": "2017-09-04 12:23:09", + "time": "2017-09-14 09:51:07", "type": "mediawiki-extension", "installation-source": "source", "autoload": { @@ -1505,7 +1505,7 @@ "phpcbf" ], "test": [ - "@validate --no-interaction", + "composer validate --no-interaction", "parallel-lint . --exclude vendor", "phpcs -p -s" ] @@ -1711,7 +1711,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQuality", - "reference": "08faa829d042e947c8f39b67e7f7e8df20a3e155" + "reference": "438cc59e7d0715d58b4d1ad4dff848f861cd4c2d" }, "require": { "php": ">=5.5.9", @@ -1721,7 +1721,7 @@ }, "require-dev": { "data-values/geo": "~1.0|~2.0", - "data-values/number": ">=0.1 <0.9", + "data-values/number": ">=0.1 <0.10", "data-values/serialization": ">=0.1 <2.0", "data-values/time": ">=0.1 <0.9", "jakub-onderka/php-console-highlighter": "0.3.2", @@ -1731,7 +1731,7 @@ "wikibase/data-model-serialization": ">=0.1 <3.0", "wikibase/wikibase-codesniffer": "^0.1.0" }, - "time": "2017-09-12 20:57:24", + "time": "2017-09-14 09:52:23", "type": "mediawiki-extension", "installation-source": "source", "autoload": { @@ -1747,7 +1747,7 @@ "phpcbf" ], "test": [ - "@validate --no-interaction", + "composer validate --no-interaction", "parallel-lint . --exclude vendor", "phpcs -p -s" ] @@ -1780,7 +1780,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints", - "reference": "2a3b1d4ca81563664534cf6e611c8802ec0210ce" + "reference": "e3e6981757bef7e602fd09404ffc7a5b1ee3ad95" }, "require": { "php": ">=5.5.9", @@ -1796,7 +1796,7 @@ "satooshi/php-coveralls": "master-dev", "wikibase/wikibase-codesniffer": "^0.1.0" }, - "time": "2017-09-14 09:09:09", + "time": "2017-09-14 17:45:52", "type": "mediawiki-extension", "installation-source": "source", "autoload": { @@ -1816,7 +1816,7 @@ "phpcbf" ], "test": [ - "@validate --no-interaction", + "composer validate --no-interaction", "parallel-lint . --exclude vendor", "phpcs -p -s" ] -- To view, visit https://gerrit.wikimedia.org/r/378229 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If77cadadbcf5e424dea7d34ef689f39359f1a91d Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikidata Gerrit-Branch: master Gerrit-Owner: WikidataBuilder <wikidata-servi...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits