WikidataBuilder has uploaded a new change for review. https://gerrit.wikimedia.org/r/251693
Change subject: New Wikidata Build - 2015-11-07T10:00:01+0000 ...................................................................... New Wikidata Build - 2015-11-07T10:00:01+0000 Change-Id: I2e8921f91b0ec7f2b48f8fbf465acc355c320c01 --- M composer.lock M extensions/Wikibase/client/i18n/gl.json M extensions/Wikibase/client/i18n/sr-ec.json M extensions/Wikibase/client/i18n/tcy.json M extensions/Wikibase/composer.json M extensions/Wikibase/lib/i18n/sr-ec.json M extensions/Wikibase/lib/includes/store/sql/PropertyInfoTable.php M extensions/Wikibase/purtle/tests/phpunit/NTriplesRdfWriterTest.php M extensions/Wikibase/purtle/tests/phpunit/TurtleRdfWriterTest.php M extensions/Wikibase/purtle/tests/phpunit/XmlRdfWriterTest.php M extensions/Wikibase/repo/i18n/ast.json M extensions/Wikibase/repo/i18n/sr-ec.json M extensions/Wikibase/repo/includes/Dumpers/DumpGenerator.php M extensions/Wikibase/repo/includes/Parsers/MwTimeIsoParser.php M extensions/Wikibase/repo/includes/specials/SpecialSetLabelDescriptionAliases.php M extensions/Wikibase/repo/includes/store/sql/DispatchStats.php M extensions/Wikibase/repo/includes/store/sql/ItemsPerSiteBuilder.php M extensions/Wikibase/repo/includes/store/sql/SqlChangeDispatchCoordinator.php M extensions/Wikibase/repo/maintenance/importProperties.php M extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveClaimsTest.php M extensions/Wikibase/repo/tests/phpunit/includes/specials/SpecialSetLabelDescriptionAliasesTest.php A extensions/Wikibase/repo/tests/phpunit/includes/store/sql/SqlStoreTest.php M vendor/composer/autoload_classmap.php M vendor/composer/installed.json 24 files changed, 277 insertions(+), 100 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata refs/changes/93/251693/1 diff --git a/composer.lock b/composer.lock index fcad5f5..1ad08c9 100644 --- a/composer.lock +++ b/composer.lock @@ -1448,12 +1448,12 @@ "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", - "reference": "ea44b4bb7ad356b979f94d8c88cfdc799729f450" + "reference": "5c86696b001250484d746830b09d29aa34b29d74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/ea44b4bb7ad356b979f94d8c88cfdc799729f450", - "reference": "ea44b4bb7ad356b979f94d8c88cfdc799729f450", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/5c86696b001250484d746830b09d29aa34b29d74", + "reference": "5c86696b001250484d746830b09d29aa34b29d74", "shasum": "" }, "require": { @@ -1483,7 +1483,7 @@ }, "require-dev": { "jakub-onderka/php-parallel-lint": "0.9", - "mediawiki/mediawiki-codesniffer": "0.4.0" + "mediawiki/mediawiki-codesniffer": "0.4.0|0.5.0" }, "type": "mediawiki-extension", "autoload": { @@ -1523,7 +1523,7 @@ "wikibaserepo", "wikidata" ], - "time": "2015-11-05 21:16:49" + "time": "2015-11-06 21:29:23" }, { "name": "wikibase/wikimedia-badges", diff --git a/extensions/Wikibase/client/i18n/gl.json b/extensions/Wikibase/client/i18n/gl.json index 9d0bc27..aa1ce00 100644 --- a/extensions/Wikibase/client/i18n/gl.json +++ b/extensions/Wikibase/client/i18n/gl.json @@ -8,7 +8,7 @@ }, "wikibase-client-desc": "Cliente para a extensión Wikibase", "tooltip-t-wikibase": "Ligazón ao elemento conectado no repositorio de datos", - "apihelp-query+pageterms-description": "Obter os termos asociados a unha páxina a través dun elemento de datos asociado.", + "apihelp-query+pageterms-description": "Obter os termos asociados a unha páxina a través dun elemento de datos asociado. Nunha páxina de entidade da wikibase, os termos de entidade usanse directamente.\nAdvertencia: Nunha wiki repositorio, os termos de páxina só funcionan directamente en páxinas de entidades, non en páxinas conectadas a un elemento. Isto pode cambiar nun futuro.", "apihelp-query+pageterms-example-simple": "Obter todos os termos asociados á páxina \"London\", na lingua do usuario.", "apihelp-query+pageterms-example-label-en": "Obter as etiquetas e os pseudónimos asociados á páxina \"London\", en inglés.", "apihelp-query+pageterms-example-item": "Obter as etiquetas e alias do elemento Q84.", diff --git a/extensions/Wikibase/client/i18n/sr-ec.json b/extensions/Wikibase/client/i18n/sr-ec.json index 9565807..5cfa541 100644 --- a/extensions/Wikibase/client/i18n/sr-ec.json +++ b/extensions/Wikibase/client/i18n/sr-ec.json @@ -5,14 +5,15 @@ "Nikola Smolenski", "Rancher", "Милан Јелисавчић", - "Srdjan m" + "Srdjan m", + "Сербијана" ] }, "wikibase-client-desc": "Клијент за проширење Викибаза", "tooltip-t-wikibase": "Веза ка ставки на Википодацима", "wikibase-after-page-move": "Можете такође [$1 ажурирати] придружене ставке на Википодацима ради одржавања језичких веза на премештеној страници.", - "wikibase-after-page-move-queued": "[$1 Ставка Википодатака] повезана са овом страницом ће се ускоро аутоматски ажурирати.", - "wikibase-after-page-delete-queued": "[$1 Ставка Википодатака] повезана са овом страницом ће се ускоро аутоматски ажурирати.", + "wikibase-after-page-move-queued": "[$1 Ставка Википодатака] повезана са овом страницом ће се аутоматски ажурирати. Напомињемо да се ово не може десити одмах.", + "wikibase-after-page-delete-queued": "[$1 Ставка Википодатака] повезана са овом страницом ће се аутоматски ажурирати. Напомињемо да се ово не може десити одмах.", "wikibase-comment-add": "Ставка на Википодацима је направљена.", "wikibase-comment-remove": "Придружена ставка на Википодацима је избрисана. Језичке везе уклоњене.", "wikibase-comment-linked": "Ставка на Википодацима је повезана са овом страницом.", diff --git a/extensions/Wikibase/client/i18n/tcy.json b/extensions/Wikibase/client/i18n/tcy.json index 8869ef6..4124dab 100644 --- a/extensions/Wikibase/client/i18n/tcy.json +++ b/extensions/Wikibase/client/i18n/tcy.json @@ -3,14 +3,15 @@ "authors": [ "VASANTH S.N.", "Vishwanatha Badikana", - "రహ్మానుద్దీన్" + "రహ్మానుద్దీన్", + "Bharathesha Alasandemajalu" ] }, "tooltip-t-wikibase": "ಸಂಪರ್ಕೊ ಮಾಹಿತಿ ಸಂಗ್ರಹೊ ಮಲ್ಪುನ ಬಾಗೊದ ಕೊಂಡಿ", "wikibase-comment-update": "{{WBREPONAME}} ಬಗೆ ಬದಲಾತ್ಂಡ್", "wikibase-dataitem": "{{WBREPONAME}}ಅಂಸೊ", "wikibase-editlinks": "ಕೊಂಡಿಲೆನ್ ಸಂಪೊಲಿಪುಲೆ", - "wikibase-editlinkstitle": "ಅಂತರ್ ಬಾಸೆದ ಕೊಂಡಿಲೆನ್ ಸಂಪೊಲಿಪುಲೆ", + "wikibase-editlinkstitle": "ಬೇತೆ ಬಾಸೆದ ಕೊಂಡಿಲೆನ್ ಸಂಪೊಲಿಪುಲೆ", "wikibase-rc-hide-wikidata": "$1{{WBREPONAME}}", "wikibase-rc-hide-wikidata-hide": "ದೆಂಗಾಲೆ", "wikibase-rc-hide-wikidata-show": "ತೋಜಾವು", diff --git a/extensions/Wikibase/composer.json b/extensions/Wikibase/composer.json index c4cb032..89b60a6 100644 --- a/extensions/Wikibase/composer.json +++ b/extensions/Wikibase/composer.json @@ -47,7 +47,7 @@ }, "require-dev": { "jakub-onderka/php-parallel-lint": "0.9", - "mediawiki/mediawiki-codesniffer": "0.4.0" + "mediawiki/mediawiki-codesniffer": "0.4.0|0.5.0" }, "conflict": { "mediawiki/mediawiki": "<1.25" diff --git a/extensions/Wikibase/lib/i18n/sr-ec.json b/extensions/Wikibase/lib/i18n/sr-ec.json index 12eb11a..f718664 100644 --- a/extensions/Wikibase/lib/i18n/sr-ec.json +++ b/extensions/Wikibase/lib/i18n/sr-ec.json @@ -4,7 +4,8 @@ "Milicevic01", "TheStefan12345", "Милан Јелисавчић", - "Rancher" + "Rancher", + "Сербијана" ] }, "wikibase-lib-desc": "Садржи заједничке функционалности за Викибазу и проширења за клијента Викибазе", @@ -16,10 +17,10 @@ "wikibase-error-save-generic": "Дошло је до грешке приликом чувања и због тога промене не могу бити сачуване.", "wikibase-error-remove-generic": "Дошло је до грешке приликом покушаја да се изврши уклањање. Ваше измене нису сачуване.", "wikibase-error-save-timeout": "Тренутно имамо техничких потешкоћа и због тога ваша измена није сачувана.", - "wikibase-error-remove-timeout": "Тренутно имамо техничких потешкоћа и због тога ваше брисање није извршено.", + "wikibase-error-remove-timeout": "Тренутно имамо техничких потешкоћа. Ваше брисање није извршено.", "wikibase-error-autocomplete-response": "Одговор сервера: $1", "wikibase-error-ui-no-external-page": "Наведени чланак није пронађен на одговарајућем сајту.", - "wikibase-error-ui-edit-conflict": "Дошло је до сукоба измена. Молимо учитајте и сачувајте поново страну.", + "wikibase-error-ui-edit-conflict": "Дошло је до сукоба измена. Сачувате измене на локалном нивоу, поново учитајте страницу и сачувајте их.", "wikibase-language-fallback-transliteration-hint": "$1 (транслитерација)", "wikibase-quantitydetails-amount": "Количина", "wikibase-quantitydetails-unit": "Јединица", diff --git a/extensions/Wikibase/lib/includes/store/sql/PropertyInfoTable.php b/extensions/Wikibase/lib/includes/store/sql/PropertyInfoTable.php index 54e96bf..8fcfcfb 100644 --- a/extensions/Wikibase/lib/includes/store/sql/PropertyInfoTable.php +++ b/extensions/Wikibase/lib/includes/store/sql/PropertyInfoTable.php @@ -81,7 +81,7 @@ private function decodeResult( ResultWrapper $res ) { $infos = array(); - while ( ( $row = $res->fetchObject() ) !== false ) { + foreach ( $res as $row ) { $info = $this->decodeBlob( $row->pi_info ); if ( $info === null ) { diff --git a/extensions/Wikibase/purtle/tests/phpunit/NTriplesRdfWriterTest.php b/extensions/Wikibase/purtle/tests/phpunit/NTriplesRdfWriterTest.php index 893d559..bc93c43 100644 --- a/extensions/Wikibase/purtle/tests/phpunit/NTriplesRdfWriterTest.php +++ b/extensions/Wikibase/purtle/tests/phpunit/NTriplesRdfWriterTest.php @@ -7,6 +7,8 @@ /** * @covers Wikimedia\Purtle\NTriplesRdfWriter + * @covers Wikimedia\Purtle\N3RdfWriterBase + * @covers Wikimedia\Purtle\RdfWriterBase * * @group Purtle * diff --git a/extensions/Wikibase/purtle/tests/phpunit/TurtleRdfWriterTest.php b/extensions/Wikibase/purtle/tests/phpunit/TurtleRdfWriterTest.php index 82d9f78..dfe5b9f 100644 --- a/extensions/Wikibase/purtle/tests/phpunit/TurtleRdfWriterTest.php +++ b/extensions/Wikibase/purtle/tests/phpunit/TurtleRdfWriterTest.php @@ -7,6 +7,8 @@ /** * @covers Wikimedia\Purtle\TurtleRdfWriter + * @covers Wikimedia\Purtle\N3RdfWriterBase + * @covers Wikimedia\Purtle\RdfWriterBase * * @group Purtle * @group RdfWriter diff --git a/extensions/Wikibase/purtle/tests/phpunit/XmlRdfWriterTest.php b/extensions/Wikibase/purtle/tests/phpunit/XmlRdfWriterTest.php index a701612..4040e54 100644 --- a/extensions/Wikibase/purtle/tests/phpunit/XmlRdfWriterTest.php +++ b/extensions/Wikibase/purtle/tests/phpunit/XmlRdfWriterTest.php @@ -7,6 +7,7 @@ /** * @covers Wikimedia\Purtle\XmlRdfWriter + * @covers Wikimedia\Purtle\RdfWriterBase * * @group Purtle * @group RdfWriter diff --git a/extensions/Wikibase/repo/i18n/ast.json b/extensions/Wikibase/repo/i18n/ast.json index 504a8fc..2ce591f 100644 --- a/extensions/Wikibase/repo/i18n/ast.json +++ b/extensions/Wikibase/repo/i18n/ast.json @@ -126,7 +126,7 @@ "wikibase-gotolinkedpage-lookup-item": "ID d'elementu:", "wikibase-gotolinkedpage-submit": "Dir", "wikibase-gotolinkedpage-summary": "Special:GoToLinkedPage úsase p'alcontrar la páxina d'un elementu nun sitiu coneutáu.<br />El primer campu, \"{{int:wikibase-gotolinkedpage-lookup-site}}\" ye onde escribes el códigu de llingua y del sitiu.<br />Nel segundu campu, \"{{int:wikibase-gotolinkedpage-lookup-item}}\" tienes de poner l'identificador del elementu que busques.", - "wikibase-gotolinkedpage-error-page-not-found": "Nun s'alcontró nenguna páxina para esa combinación d'elementu y sitiu", + "wikibase-gotolinkedpage-error-page-not-found": "Nun s'alcontró nenguna páxina pa esa combinación d'elementu y sitiu", "wikibase-gotolinkedpage-error-item-id-invalid": "L'identificador d'elementu escritu nun ye válidu", "wikibase-gotolinkedpage-error-item-not-found": "Nun s'alcontró l'elementu", "special-itemdisambiguation": "Dixebra d'elementos", @@ -341,7 +341,7 @@ "apihelp-wbeditentity-param-id": "L'identificador pa la entidá, incluyendo'l prefixu. \nUsa o 'id' o 'site' y 'title' xuntos.", "apihelp-wbeditentity-param-site": "Un identificador pal sitiu onde ta allugada la páxina.\nÚsalu xunto con 'title' pa facer un enllaz completu del sitiu.", "apihelp-wbeditentity-param-title": "Títulu de la páxina a asociar.\nÚsalu xunto con 'site' pa facer un enllaz completu del sitiu.", - "apihelp-wbeditentity-param-baserevid": "L'identificador numbéricu pa que la revisión base la edición.\nÚsase para detectar conflictos demientres el guardáu.", + "apihelp-wbeditentity-param-baserevid": "L'identificador numbéricu pa que la revisión base la edición.\nÚsase pa detectar conflictos demientres el guardáu.", "apihelp-wbeditentity-param-summary": "Resume de la edición.\nPrefixaráse con un comentariu xeneráu automáticamente. La llende de llonxitú del comentariu automáticu xunto col resume ye de 260 caráuteres. Ten en cuenta que tolo que pase d'esa llende va cortase.", "apihelp-wbeditentity-param-bot": "Marcar esta edición como bot. Esta marca d'URL sólo se respetará si l'usuariu pertenez al grupu \"bot\".", "apihelp-wbeditentity-param-data": "L'oxetu serializáu que s'usa como fonte de datos. A una entidá creada de nueves se-y dará una 'id'.", @@ -407,7 +407,7 @@ "apihelp-wbmergeitems-description": "Fusiona múltiples elementos.", "apihelp-wbmergeitems-param-fromid": "ID dende la que fusionar", "apihelp-wbmergeitems-param-toid": "ID a la que fusionar", - "apihelp-wbmergeitems-param-ignoreconflicts": "Matriz d'elementos del oxetu para los qu'inorar conflictos, sólo puede contener los valores de \"label\" (etiqueta), \"description\" (descripción) o \"sitelink\" (enllaz de sitiu)", + "apihelp-wbmergeitems-param-ignoreconflicts": "Matriz d'elementos del oxetu pa los qu'inorar conflictos, sólo puede contener los valores de \"label\" (etiqueta), \"description\" (descripción) o \"sitelink\" (enllaz de sitiu)", "apihelp-wbmergeitems-param-summary": "Resume de la edición.\nPrefixaráse con un comentariu xeneráu automáticamente. La llende de llonxitú del comentariu automáticu xunto col resume ye de 260 caráuteres. Ten en cuenta que tolo que pase d'esa llende va cortase.", "apihelp-wbmergeitems-param-bot": "Marcar esta edición como bot. Esta marca d'URL sólo se respetará si l'usuariu pertenez al grupu \"bot\".", "apihelp-wbmergeitems-example-1": "Fusiona datos dende Q42 en Q222", @@ -447,7 +447,7 @@ "apihelp-wbsetaliases-param-id": "L'identificador de la entidá, incluyendo'l prefixu. \nUsa o 'id' o 'site' y 'title' xuntos.", "apihelp-wbsetaliases-param-site": "Un identificador pal sitiu web onde ta asitiada la páxina.\nUsa xunto con 'title' pa facer un enllace completu.", "apihelp-wbsetaliases-param-title": "Títulu de la páxina a asociar.\nÚsalu xunto con 'site' pa facer un enllaz completu del sitiu.", - "apihelp-wbsetaliases-param-baserevid": "L'identificador numbéricu de la revisión onde basar la edición.\nÚsase para detectar conflictos demientres el guardáu.", + "apihelp-wbsetaliases-param-baserevid": "L'identificador numbéricu de la revisión onde basar la edición.\nÚsase pa detectar conflictos demientres el guardáu.", "apihelp-wbsetaliases-param-summary": "Resume de la edición.\nPrefixaráse con un comentariu xeneráu automáticamente. La llende de llonxitú del comentariu automáticu xunto col resume ye de 260 caráuteres. Ten en cuenta que tolo que pase d'esa llende va cortase.", "apihelp-wbsetaliases-param-bot": "Marcar esta edición como bot. Esta marca d'URL sólo se respetará si l'usuariu pertenez al grupu \"bot\".", "apihelp-wbsetaliases-param-add": "Llista d'alcuños a amestar (pué combinase con desaniciar)", @@ -462,7 +462,7 @@ "apihelp-wbsetclaim-param-claim": "Serialización de declaración o afirmación", "apihelp-wbsetclaim-param-index": "L'índiz dientro de la llista de declaraciónes de la entidá al que mover la declaración. Opcional. Ten procuru pa que cuando designes un índiz qu'especifica una posición que nun tea xunto a una declaración na que'l snak principal nun presenta la mesma propiedá, se mueva tol grupu de declaraciones nes que'l snak principal presenta la mesma propiedá. Cando nun s'indique, una declaración esistente siguirá nel sitiu mentanto que s'amestará una declaración nueva a la última na que'l snak principal presente la mesma propiedá.", "apihelp-wbsetclaim-param-summary": "Resume de la edición.\nPrefixaráse con un comentariu xeneráu automáticamente. La llende de llonxitú del comentariu automáticu xunto col resume ye de 260 caráuteres. Ten en cuenta que tolo que pase d'esa llende va cortase.", - "apihelp-wbsetclaim-param-baserevid": "L'identificador numbéricu pa que la revisión base la edición.\nÚsase para detectar conflictos demientres el guardáu.", + "apihelp-wbsetclaim-param-baserevid": "L'identificador numbéricu pa que la revisión base la edición.\nÚsase pa detectar conflictos demientres el guardáu.", "apihelp-wbsetclaim-param-bot": "Marcar esta edición como bot. Esta marca d'URL sólo se respetará si l'usuariu pertenez al grupu \"bot\".", "apihelp-wbsetclaim-example-1": "Configurar l'afirmación col ID indicáu a la propiedá P1 con un valor de cadena de «City» (ciudá)", "apihelp-wbsetclaim-example-2": "Configurar l'afirmación col ID dau a la propiedá P1 con un valor de cadena de «City» (ciudá) y mover l'afirmación a la posición superior dientro del subgrupu d'afirmaciones de la entidá que presenten la propiedá principal de snak P1. Amás, mueve tol subgrupu a la parte superior de tolos subgrupos añadíos por propiedá.", @@ -472,18 +472,23 @@ "apihelp-wbsetclaimvalue-param-snaktype": "El tipu del snak", "apihelp-wbsetclaimvalue-param-value": "El valor que dar a DataValue del snak principal de l'afirmación", "apihelp-wbsetclaimvalue-param-summary": "Resume de la edición.\nPrefixaráse con un comentariu xeneráu automáticamente. La llende de llonxitú del comentariu automáticu xunto col resume ye de 260 caráuteres. Ten en cuenta que tolo que pase d'esa llende va cortase.", - "apihelp-wbsetclaimvalue-param-baserevid": "L'identificador numbéricu pa que la revisión base la edición.\nÚsase para detectar conflictos demientres el guardáu.", + "apihelp-wbsetclaimvalue-param-baserevid": "L'identificador numbéricu pa que la revisión base la edición.\nÚsase pa detectar conflictos demientres el guardáu.", "apihelp-wbsetclaimvalue-param-bot": "Marcar esta edición como bot. Esta marca d'URL sólo se respetará si l'usuariu pertenez al grupu \"bot\".", "apihelp-wbsetclaimvalue-example-1": "Configura l'afirmación con un GUID de Q42$D8404CDA-25E4-4334-AF13-A3290BCD9C0F a un valor de Q1", - "apihelp-wbsetdescription-description": "Fixa una descripción para una sola entidá de Wikibase.", + "apihelp-wbsetdescription-description": "Fixa una descripción pa una sola entidá de Wikibase.", "apihelp-wbsetdescription-param-id": "L'identificador pa la entidá, incluyendo'l prefixu. \nUsa o 'id' o 'site' y 'title' xuntos.", "apihelp-wbsetdescription-param-site": "Un identificador pal sitiu onde ta allugada la páxina.\nÚsalu xunto con 'title' pa facer un enllaz completu del sitiu.", "apihelp-wbsetdescription-param-title": "Títulu de la páxina a asociar.\nÚsalu xunto con 'site' pa facer un enllaz completu del sitiu.", - "apihelp-wbsetdescription-param-baserevid": "L'identificador numbéricu pa que la revisión base la edición.\nÚsase para detectar conflictos demientres el guardáu.", + "apihelp-wbsetdescription-param-baserevid": "L'identificador numbéricu pa que la revisión base la edición.\nÚsase pa detectar conflictos demientres el guardáu.", "apihelp-wbsetdescription-param-summary": "Resume de la edición.\nPrefixaráse con un comentariu xeneráu automáticamente. La llende de llonxitú del comentariu automáticu xunto col resume ye de 260 caráuteres. Ten en cuenta que tolo que pase d'esa llende va cortase.", "apihelp-wbsetdescription-param-bot": "Marcar esta edición como bot. Esta marca d'URL sólo se respetará si l'usuariu pertenez al grupu \"bot\".", "apihelp-wbsetdescription-param-language": "Llingua de la descripción", "apihelp-wbsetdescription-param-value": "El valor a dar a la descripción", + "apihelp-wbsetdescription-example-1": "Configurar la cadena \"An encyclopedia that everyone can edit\" como la descripción en llingua inglesa pa la páxina con identificador \"Q42\"", + "apihelp-wbsetdescription-example-2": "Configurar la cadena \"An encyclopedia that everyone can edit\" como descripción en llingua inglesa pa la páxina con un enllaz de sitiu a enwiki:Wikipedia", + "apihelp-wbsetlabel-description": "Fixa una etiqueta pa una sola entidá de Wikibase.", "apihelp-wbsetlabel-param-language": "Llingua de la etiqueta", - "apihelp-wbsetlabel-param-value": "El valor de la etiqueta" + "apihelp-wbsetlabel-param-value": "El valor de la etiqueta", + "apihelp-wbsetsitelink-param-linktitle": "El títulu del artículu que se va enllazar. Si esti parámetru ye una cadena balera o nun s'establecen nin el títulu del enllaz nin les insinies , l'enllaz va desaniciase.", + "apihelp-wbsetsitelink-param-badges": "Los identificadores de los elementos que van establecese como insinies. Reemplazarán a los actuales. Si esti parámetru nun ta definíu, les insinies nun van camudase" } diff --git a/extensions/Wikibase/repo/i18n/sr-ec.json b/extensions/Wikibase/repo/i18n/sr-ec.json index 6d0497c..d0ab35b 100644 --- a/extensions/Wikibase/repo/i18n/sr-ec.json +++ b/extensions/Wikibase/repo/i18n/sr-ec.json @@ -4,7 +4,8 @@ "Milicevic01", "Rancher", "Милан Јелисавчић", - "Srdjan m" + "Srdjan m", + "Сербијана" ] }, "wikibase-desc": "Складиште структуираних података", @@ -137,7 +138,7 @@ "wikibase-setlabeldescriptionaliases-submit": "Поставите назив, опис и псеудониме", "wikibase-modifyentity-id": "ИД:", "wikibase-modifyterm-language": "Код језика:", - "wikibase-mergeitems-success": "$1 је успешно спојена у $3.", + "wikibase-mergeitems-success": "$1 је успешно спојена у $3 и преусмерена.", "special-dispatchstats": "Статистика дневника отпрема", "wikibase-dispatchstats-no-stats": "Тренутно нема расположивих статистика.", "wikibase-dispatchstats-changes": "Статистика дневника промена", diff --git a/extensions/Wikibase/repo/includes/Dumpers/DumpGenerator.php b/extensions/Wikibase/repo/includes/Dumpers/DumpGenerator.php index dd60ef5..62fcd7e 100644 --- a/extensions/Wikibase/repo/includes/Dumpers/DumpGenerator.php +++ b/extensions/Wikibase/repo/includes/Dumpers/DumpGenerator.php @@ -264,7 +264,12 @@ $this->preDump(); // Iterate over batches of IDs, maintaining the current position of the pager in the $position variable. - while ( $ids = $idPager->fetchIds( $this->batchSize ) ) { + while ( true ) { + $ids = $idPager->fetchIds( $this->batchSize ); + if ( !$ids ) { + break; + } + $this->dumpEntities( $ids, $dumpCount ); $this->progressReporter->reportMessage( 'Processed ' . $dumpCount . ' entities.' ); diff --git a/extensions/Wikibase/repo/includes/Parsers/MwTimeIsoParser.php b/extensions/Wikibase/repo/includes/Parsers/MwTimeIsoParser.php index 42180ab..abbbb6f 100644 --- a/extensions/Wikibase/repo/includes/Parsers/MwTimeIsoParser.php +++ b/extensions/Wikibase/repo/includes/Parsers/MwTimeIsoParser.php @@ -119,32 +119,43 @@ foreach ( self::$precisionMsgKeys as $precision => $msgKeysGroup ) { foreach ( $msgKeysGroup as $msgKey ) { $msg = new Message( $msgKey ); - //FIXME: Use the language passed in options! - //The only reason we are not currently doing this is due to the formatting not currently Localizing - //See the fix me in: MwTimeIsoFormatter::getMessage + // FIXME: Use the language passed in options! The only reason we are not currently + // doing this is due to the formatting not currently localizing. See the fix me in + // MwTimeIsoFormatter::getMessage. // TODO: Check other translations? - //$msg->inLanguage( $this->lang ); $msg->inLanguage( 'en' ); $msgText = $msg->text(); $isBceMsg = $this->isBceMsg( $msgKey ); list( $start, $end ) = explode( '$1', $msgText, 2 ); - if ( preg_match( '/^\s*' . preg_quote( $start ) . '(.+?)' . preg_quote( $end ) . '\s*$/i', $value, $matches ) ) { + if ( preg_match( + '/^\s*' + . preg_quote( $start, '/' ) . '(.+?)' + . preg_quote( $end, '/' ) . '\s*$/i', + $value, + $matches + ) ) { list( , $number ) = $matches; return $this->parseNumber( $number, $precision, $isBceMsg ); } // If the msg string ends with BCE also check for BC - if ( substr_compare( $end, 'BCE', - 3, 3 ) === 0 ) { - if ( preg_match( '/^\s*' . preg_quote( $start ) . '(.+?)' . preg_quote( substr( $end, 0, -1 ) ) . '\s*$/i', $value, $matches ) ) { + if ( substr_compare( $end, 'BCE', -3 ) === 0 ) { + if ( preg_match( + '/^\s*' + . preg_quote( $start, '/' ) . '(.+?)' + . preg_quote( substr( $end, 0, -1 ), '/' ) . '\s*$/i', + $value, + $matches + ) ) { list( , $number ) = $matches; return $this->parseNumber( $number, $precision, $isBceMsg ); } } } - } + return false; } diff --git a/extensions/Wikibase/repo/includes/specials/SpecialSetLabelDescriptionAliases.php b/extensions/Wikibase/repo/includes/specials/SpecialSetLabelDescriptionAliases.php index b14d475..3615dca 100644 --- a/extensions/Wikibase/repo/includes/specials/SpecialSetLabelDescriptionAliases.php +++ b/extensions/Wikibase/repo/includes/specials/SpecialSetLabelDescriptionAliases.php @@ -248,14 +248,7 @@ * @param string $subPage */ protected function prepareArguments( $subPage ) { - $request = $this->getRequest(); - $parts = $subPage === '' ? array() : explode( '/', $subPage, 2 ); - - $this->languageCode = $request->getVal( 'language', isset( $parts[1] ) ? $parts[1] : '' ); - $this->label = $request->getVal( 'label', '' ); - $this->description = $request->getVal( 'description', '' ); - $aliasesText = $request->getVal( 'aliases', '' ); - $this->aliases = $aliasesText === '' ? array() : explode( '|', $aliasesText ); + $this->extractInput( $subPage ); // Parse the 'id' parameter and throw an exception if the entity cannot be loaded parent::prepareArguments( $subPage ); @@ -277,6 +270,29 @@ } } + /** + * @param string $subPage + */ + private function extractInput( $subPage ) { + $request = $this->getRequest(); + + $parts = $subPage === '' ? array() : explode( '/', $subPage, 2 ); + $this->languageCode = $request->getVal( 'language', isset( $parts[1] ) ? $parts[1] : '' ); + + $label = $request->getVal( 'label', '' ); + $this->label = $this->stringNormalizer->trimToNFC( $label ); + + $description = $request->getVal( 'description', '' ); + $this->description = $this->stringNormalizer->trimToNFC( $description ); + + $aliases = $request->getVal( 'aliases', '' ); + $aliases = $this->stringNormalizer->trimToNFC( $aliases ); + $this->aliases = $aliases === '' ? array() : explode( '|', $aliases ); + foreach ( $this->aliases as &$alias ) { + $alias = $this->stringNormalizer->trimToNFC( $alias ); + } + } + private function setFingerprintFields( Fingerprint $fingerprint ) { if ( !$this->getRequest()->getCheck( 'label' ) && $fingerprint->hasLabel( $this->languageCode ) diff --git a/extensions/Wikibase/repo/includes/store/sql/DispatchStats.php b/extensions/Wikibase/repo/includes/store/sql/DispatchStats.php index 763a781..fc107ea 100644 --- a/extensions/Wikibase/repo/includes/store/sql/DispatchStats.php +++ b/extensions/Wikibase/repo/includes/store/sql/DispatchStats.php @@ -86,7 +86,7 @@ $this->clientStates = array(); - while ( ( $row = $res->fetchObject() ) !== false ) { + foreach ( $res as $row ) { if ( $this->changeStats ) { // time between last dispatch and now $row->chd_untouched = max( 0, $now diff --git a/extensions/Wikibase/repo/includes/store/sql/ItemsPerSiteBuilder.php b/extensions/Wikibase/repo/includes/store/sql/ItemsPerSiteBuilder.php index 3133d4b..bfbdfd6 100644 --- a/extensions/Wikibase/repo/includes/store/sql/ItemsPerSiteBuilder.php +++ b/extensions/Wikibase/repo/includes/store/sql/ItemsPerSiteBuilder.php @@ -82,12 +82,16 @@ public function rebuild( EntityIdPager $entityIdPager ) { $this->report( 'Start rebuild...' ); - $i = 0; - while ( $ids = $entityIdPager->fetchIds( $this->batchSize ) ) { - $i = $i + $this->rebuildSiteLinks( $ids ); + $total = 0; + while ( true ) { + $ids = $entityIdPager->fetchIds( $this->batchSize ); + if ( !$ids ) { + break; + } - $this->report( 'Processed ' . $i . ' entities.' ); - } + $total += $this->rebuildSiteLinks( $ids ); + $this->report( 'Processed ' . $total . ' entities.' ); + }; $this->report( 'Rebuild done.' ); } diff --git a/extensions/Wikibase/repo/includes/store/sql/SqlChangeDispatchCoordinator.php b/extensions/Wikibase/repo/includes/store/sql/SqlChangeDispatchCoordinator.php index 52af1ba..b4defc3 100644 --- a/extensions/Wikibase/repo/includes/store/sql/SqlChangeDispatchCoordinator.php +++ b/extensions/Wikibase/repo/includes/store/sql/SqlChangeDispatchCoordinator.php @@ -410,9 +410,9 @@ // Limit the list to $randomness items. Candidates will be picked // from the resulting list at random. - $res = $db->select( + $candidates = $db->selectFieldValues( $this->stateTable, - array( 'chd_site' ), + 'chd_site', array( '( chd_lock is NULL ' . // not locked or... ' OR chd_touched < ' . $db->addQuotes( $staleLockTime ) . ' ) ', // ...the lock is old '( chd_touched < ' . $db->addQuotes( $freshDispatchTime ) . // and wasn't touched too recently or... @@ -427,11 +427,6 @@ ) ); - $candidates = array(); - while ( $row = $res->fetchRow() ) { - $candidates[] = $row['chd_site']; - } - return $candidates; } @@ -442,19 +437,14 @@ public function initState() { $db = $this->getRepoMaster(); - $res = $db->select( $this->stateTable, - array( 'chd_site' ), + $trackedSiteIds = $db->selectFieldValues( + $this->stateTable, + 'chd_site', array(), - __METHOD__ ); + __METHOD__ + ); - $tracked = array(); - - while ( $row = $res->fetchRow() ) { - $k = $row[ 'chd_site' ]; - $tracked[$k] = $k; - } - - $untracked = array_diff_key( $this->clientWikis, $tracked ); + $untracked = array_diff_key( $this->clientWikis, array_flip( $trackedSiteIds ) ); foreach ( $untracked as $siteID => $wikiDB ) { $state = array( diff --git a/extensions/Wikibase/repo/maintenance/importProperties.php b/extensions/Wikibase/repo/maintenance/importProperties.php index 814ba27..b65ae7a 100644 --- a/extensions/Wikibase/repo/maintenance/importProperties.php +++ b/extensions/Wikibase/repo/maintenance/importProperties.php @@ -103,31 +103,36 @@ $currentProperties = array(); $count = 0; $ok = true; - while ( $link = fgetcsv( $file, 0, "\t" ) ) { - if ( $link[0] !== $current ) { - if ( !empty( $currentProperties ) ) { - $ok = $this->createProperty( $currentProperties ); - - if ( !$ok && !$this->ignoreErrors ) { - break; - } - } - - $count++; - if ( ( $this->skip !== 0 ) && ( $this->skip > $count ) ) { - continue; - } - if ( ( $this->only !== 0 ) && ( $this->only !== $count ) ) { - if ( $this->only < $count ) { - break; - } - continue; - } - - $current = $link[0]; - $this->maybePrint( "Processing `$current`" ); - $currentProperties = array( $languageCode => $current ); + while ( true ) { + $link = fgetcsv( $file, 0, "\t" ); + if ( !$link ) { + break; + } elseif ( $link[0] === $current ) { + continue; } + + if ( !empty( $currentProperties ) ) { + $ok = $this->createProperty( $currentProperties ); + + if ( !$ok && !$this->ignoreErrors ) { + break; + } + } + + $count++; + if ( ( $this->skip !== 0 ) && ( $this->skip > $count ) ) { + continue; + } + if ( ( $this->only !== 0 ) && ( $this->only !== $count ) ) { + if ( $this->only < $count ) { + break; + } + continue; + } + + $current = $link[0]; + $this->maybePrint( "Processing `$current`" ); + $currentProperties = array( $languageCode => $current ); } if ( !$ok && !$this->ignoreErrors ) { diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveClaimsTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveClaimsTest.php index d93051d..011fac1 100644 --- a/extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveClaimsTest.php +++ b/extensions/Wikibase/repo/tests/phpunit/includes/api/RemoveClaimsTest.php @@ -99,7 +99,12 @@ $statements = $item->getStatements()->toArray(); $obtainedStatements = null; - while ( $statement = array_shift( $statements ) ) { + while ( true ) { + $statement = array_shift( $statements ); + if ( !$statement ) { + break; + } + $this->makeTheRequest( array( $statement->getGuid() ) ); /** @var Item $obtainedItem */ diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/specials/SpecialSetLabelDescriptionAliasesTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/specials/SpecialSetLabelDescriptionAliasesTest.php index 314fdc9..e689cbe 100644 --- a/extensions/Wikibase/repo/tests/phpunit/includes/specials/SpecialSetLabelDescriptionAliasesTest.php +++ b/extensions/Wikibase/repo/tests/phpunit/includes/specials/SpecialSetLabelDescriptionAliasesTest.php @@ -307,7 +307,11 @@ 'add label' => array( $fooFingerprint, '$id', - new FauxRequest( array( 'language' => 'en', 'label' => 'FOO' ), true ), + new FauxRequest( array( + 'language' => 'en', + 'label' => "FOO\xE2\x80\x82", + 'aliases' => "\xE2\x80\x82", + ), true ), array(), $this->makeFingerprint( array( 'de' => 'foo', 'en' => 'FOO' ) @@ -338,7 +342,10 @@ 'set aliases' => array( $fooFingerprint, '$id', - new FauxRequest( array( 'language' => 'de', 'aliases' => 'foo|bar' ), true ), + new FauxRequest( array( + 'language' => 'de', + 'aliases' => "foo\xE2\x80\x82|bar", + ), true ), array(), $this->makeFingerprint( array( 'de' => 'foo' ), diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/SqlStoreTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/SqlStoreTest.php new file mode 100644 index 0000000..56b4fc0 --- /dev/null +++ b/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/SqlStoreTest.php @@ -0,0 +1,119 @@ +<?php + +namespace Wikibase\Repo\Tests\Store\Sql; + +use MediaWikiTestCase; +use Wikibase\SqlStore; + +/** + * @covers Wikibase\SqlStore + * + * @group Wikibase + * @group WikibaseStore + * @group WikibaseRepo + * + * @licence GNU GPL v2+ + * @author Thiemo Mättig + */ +class SqlStoreTest extends MediaWikiTestCase { + + public function newInstance() { + $contentCodec = $this->getMockBuilder( 'Wikibase\Lib\Store\EntityContentDataCodec' ) + ->disableOriginalConstructor() + ->getMock(); + + return new SqlStore( + $contentCodec, + $this->getMock( 'Wikibase\DataModel\Entity\EntityIdParser' ), + $this->getMock( 'Wikibase\Store\EntityIdLookup' ), + $this->getMock( '\Wikibase\Lib\Store\EntityTitleLookup' ) + ); + } + + public function testGetTermIndex() { + $service = $this->newInstance()->getTermIndex(); + $this->assertInstanceOf( 'Wikibase\TermIndex', $service ); + } + + public function testGetLabelConflictFinder() { + $service = $this->newInstance()->getLabelConflictFinder(); + $this->assertInstanceOf( 'Wikibase\Lib\Store\LabelConflictFinder', $service ); + } + + public function testNewIdGenerator() { + $service = $this->newInstance()->newIdGenerator(); + $this->assertInstanceOf( 'Wikibase\IdGenerator', $service ); + } + + public function testNewSiteLinkStore() { + $service = $this->newInstance()->newSiteLinkStore(); + $this->assertInstanceOf( 'Wikibase\Lib\Store\SiteLinkStore', $service ); + } + + public function testNewEntityPerPage() { + $service = $this->newInstance()->newEntityPerPage(); + $this->assertInstanceOf( 'Wikibase\Repo\Store\EntityPerPage', $service ); + } + + public function testGetEntityRedirectLookup() { + $service = $this->newInstance()->getEntityRedirectLookup(); + $this->assertInstanceOf( + 'Wikibase\DataModel\Services\Lookup\EntityRedirectLookup', + $service + ); + } + + public function testGetEntityLookup() { + $service = $this->newInstance()->getEntityLookup(); + $this->assertInstanceOf( 'Wikibase\DataModel\Services\Lookup\EntityLookup', $service ); + } + + public function testGetEntityStoreWatcher() { + $service = $this->newInstance()->getEntityStoreWatcher(); + $this->assertInstanceOf( 'Wikibase\Lib\Store\EntityStoreWatcher', $service ); + } + + public function testGetEntityStore() { + $service = $this->newInstance()->getEntityStore(); + $this->assertInstanceOf( 'Wikibase\Lib\Store\EntityStore', $service ); + } + + public function testGetEntityRevisionLookup() { + $service = $this->newInstance()->getEntityRevisionLookup(); + $this->assertInstanceOf( 'Wikibase\Lib\Store\EntityRevisionLookup', $service ); + } + + public function testGetEntityInfoBuilderFactory() { + $service = $this->newInstance()->getEntityInfoBuilderFactory(); + $this->assertInstanceOf( 'Wikibase\Lib\Store\EntityInfoBuilderFactory', $service ); + } + + public function testGetPropertyInfoStore() { + $service = $this->newInstance()->getPropertyInfoStore(); + $this->assertInstanceOf( 'Wikibase\PropertyInfoStore', $service ); + } + + public function testGetSiteLinkConflictLookup() { + $service = $this->newInstance()->getSiteLinkConflictLookup(); + $this->assertInstanceOf( 'Wikibase\Repo\Store\SiteLinkConflictLookup', $service ); + } + + public function testGetEntityPrefetcher() { + $service = $this->newInstance()->getEntityPrefetcher(); + $this->assertInstanceOf( + 'Wikibase\Lib\Store\Sql\PrefetchingWikiPageEntityMetaDataAccessor', + $service + ); + } + + public function testGetChangeLookup() { + $service = $this->newInstance()->getChangeLookup(); + $this->assertInstanceOf( 'Wikibase\Lib\Store\ChangeLookup', $service ); + } + + public function testGetChangeStore() { + $service = $this->newInstance()->getChangeStore(); + $this->assertInstanceOf( 'Wikibase\Repo\Store\Sql\SqlChangeStore', $service ); + } + +} diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 44fa29a..b429517 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -1054,6 +1054,7 @@ 'Wikibase\\Repo\\Tests\\Parsers\\YearMonthTimeParserTest' => $baseDir . '/extensions/Wikibase/repo/tests/phpunit/includes/Parsers/YearMonthTimeParserTest.php', 'Wikibase\\Repo\\Tests\\Parsers\\YearTimeParserTest' => $baseDir . '/extensions/Wikibase/repo/tests/phpunit/includes/Parsers/YearTimeParserTest.php', 'Wikibase\\Repo\\Tests\\Store\\Sql\\ChangesSubscriptionTableBuilderTest' => $baseDir . '/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/ChangesSubscriptionTableBuilderTest.php', + 'Wikibase\\Repo\\Tests\\Store\\Sql\\SqlStoreTest' => $baseDir . '/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/SqlStoreTest.php', 'Wikibase\\Repo\\Tests\\Store\\Sql\\WikiPageEntityMetaDataLookupTest' => $baseDir . '/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/WikiPageEntityMetaDataLookupTest.php', 'Wikibase\\Repo\\Tests\\UpdateRepo\\UpdateRepoOnDeleteJobTest' => $baseDir . '/extensions/Wikibase/repo/tests/phpunit/includes/UpdateRepo/UpdateRepoOnDeleteJobTest.php', 'Wikibase\\Repo\\Tests\\UpdateRepo\\UpdateRepoOnMoveJobTest' => $baseDir . '/extensions/Wikibase/repo/tests/phpunit/includes/UpdateRepo/UpdateRepoOnMoveJobTest.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 59b2fbe..ad10383 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1236,12 +1236,12 @@ "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", - "reference": "ea44b4bb7ad356b979f94d8c88cfdc799729f450" + "reference": "5c86696b001250484d746830b09d29aa34b29d74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/ea44b4bb7ad356b979f94d8c88cfdc799729f450", - "reference": "ea44b4bb7ad356b979f94d8c88cfdc799729f450", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/5c86696b001250484d746830b09d29aa34b29d74", + "reference": "5c86696b001250484d746830b09d29aa34b29d74", "shasum": "" }, "require": { @@ -1271,9 +1271,9 @@ }, "require-dev": { "jakub-onderka/php-parallel-lint": "0.9", - "mediawiki/mediawiki-codesniffer": "0.4.0" + "mediawiki/mediawiki-codesniffer": "0.4.0|0.5.0" }, - "time": "2015-11-05 21:16:49", + "time": "2015-11-06 21:29:23", "type": "mediawiki-extension", "installation-source": "dist", "autoload": { -- To view, visit https://gerrit.wikimedia.org/r/251693 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2e8921f91b0ec7f2b48f8fbf465acc355c320c01 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