jenkins-bot has submitted this change and it was merged.

Change subject: New Wikidata Build - 2016-02-12T10:00:01+0000
......................................................................


New Wikidata Build - 2016-02-12T10:00:01+0000

Change-Id: I6be665fb993e8b5468f16ec2b2059f64f57f05d4
---
M composer.lock
M extensions/Wikibase/client/WikibaseClient.hooks.php
M extensions/Wikibase/client/WikibaseClient.php
M extensions/Wikibase/client/i18n/su.json
A 
extensions/Wikibase/client/includes/Hooks/SkinTemplateOutputPageBeforeExecHandler.php
A 
extensions/Wikibase/client/tests/phpunit/includes/Hooks/SkinTemplateOutputPageBeforeExecHandlerTest.php
M extensions/Wikibase/docs/ontology.owl
M extensions/Wikibase/lib/i18n/hu.json
M extensions/Wikibase/lib/tests/phpunit/changes/ItemChangeTest.php
A extensions/Wikibase/lib/tests/phpunit/store/EntityRevisionTest.php
M extensions/Wikibase/purtle/tests/phpunit/BNodeLabelerTest.php
M extensions/Wikibase/purtle/tests/phpunit/RdfWriterTestBase.php
M extensions/Wikibase/purtle/tests/phpunit/TurtleRdfWriterTest.php
M extensions/Wikibase/purtle/tests/phpunit/UnicodeEscaperTest.php
M extensions/Wikibase/repo/i18n/su.json
M 
extensions/Wikibase/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
D extensions/Wikibase/repo/tests/browser
A extensions/Wikibase/repo/tests/browser
M vendor/composer/ClassLoader.php
M vendor/composer/autoload_classmap.php
M vendor/composer/autoload_files.php
M vendor/composer/autoload_real.php
M vendor/composer/installed.json
23 files changed, 564 insertions(+), 359 deletions(-)

Approvals:
  JanZerebecki: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/composer.lock b/composer.lock
index 2d3b86e..56e2953 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1,11 +1,10 @@
 {
     "_readme": [
         "This file locks the dependencies of your project to a known state",
-        "Read more about it at 
https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file";,
+        "Read more about it at 
http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file";,
         "This file is @generated automatically"
     ],
     "hash": "c8e8090c015b32a80000f8771ce88e7e",
-    "content-hash": "3279be965e622cfcf4afa7a1795b2a96",
     "packages": [
         {
             "name": "composer/installers",
@@ -998,7 +997,7 @@
             "support": {
                 "issues": 
"https://phabricator.wikimedia.org/project/profile/1202/";
             },
-            "time": "2016-01-30 14:04:29"
+            "time": "2016-01-30 14:05:40"
         },
         {
             "name": "wikibase/data-model",
@@ -1482,21 +1481,12 @@
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-<<<<<<< HEAD
-                "reference": "c204188248f3f7649ed7a061ace0a403df9d28eb"
+                "reference": "89c140be5f4eec33602d373e3d1d764009670daa"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/c204188248f3f7649ed7a061ace0a403df9d28eb";,
-                "reference": "c204188248f3f7649ed7a061ace0a403df9d28eb",
-=======
-                "reference": "ef7910c636664ff5e64ab609f37d0db4145b4db3"
-            },
-            "dist": {
-                "type": "zip",
-                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/ef7910c636664ff5e64ab609f37d0db4145b4db3";,
-                "reference": "ef7910c636664ff5e64ab609f37d0db4145b4db3",
->>>>>>> New Wikidata build - with fix for broken qunit test
+                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/89c140be5f4eec33602d373e3d1d764009670daa";,
+                "reference": "89c140be5f4eec33602d373e3d1d764009670daa",
                 "shasum": ""
             },
             "require": {
@@ -1568,11 +1558,7 @@
                 "wikibaserepo",
                 "wikidata"
             ],
-<<<<<<< HEAD
-            "time": "2016-02-10 20:12:05"
-=======
-            "time": "2016-02-11 13:36:27"
->>>>>>> New Wikidata build - with fix for broken qunit test
+            "time": "2016-02-12 08:28:18"
         },
         {
             "name": "wikibase/wikimedia-badges",
diff --git a/extensions/Wikibase/client/WikibaseClient.hooks.php 
b/extensions/Wikibase/client/WikibaseClient.hooks.php
index dae54c0..bba4e52 100644
--- a/extensions/Wikibase/client/WikibaseClient.hooks.php
+++ b/extensions/Wikibase/client/WikibaseClient.hooks.php
@@ -9,7 +9,6 @@
 use Message;
 use OutputPage;
 use Parser;
-use QuickTemplate;
 use RecentChange;
 use Skin;
 use StubObject;
@@ -22,7 +21,6 @@
 use Wikibase\Client\Hooks\InfoActionHookHandler;
 use Wikibase\Client\RecentChanges\ChangeLineFormatter;
 use Wikibase\Client\RecentChanges\ExternalChangeFactory;
-use Wikibase\Client\RepoItemLinkGenerator;
 use Wikibase\Client\WikibaseClient;
 use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\Lib\AutoCommentFormatter;
@@ -272,66 +270,6 @@
 
                $actionName = Action::getActionName( $skin->getContext() );
                $beforePageDisplayHandler->addModules( $out, $actionName );
-
-               return true;
-       }
-
-       /**
-        * Displays a list of links to pages on the central wiki at the end of 
the language box.
-        *
-        * @since 0.1
-        *
-        * @param Skin $skin
-        * @param QuickTemplate $template
-        *
-        * @return bool
-        */
-       public static function onSkinTemplateOutputPageBeforeExec( Skin &$skin, 
QuickTemplate &$template ) {
-               $title = $skin->getContext()->getTitle();
-               $wikibaseClient = WikibaseClient::getDefaultInstance();
-
-               if ( !self::isWikibaseEnabled( $title->getNamespace() ) ) {
-                       // shorten out
-                       return true;
-               }
-
-               $repoLinker = $wikibaseClient->newRepoLinker();
-               $entityIdParser = $wikibaseClient->getEntityIdParser();
-
-               $siteGroup = $wikibaseClient->getLangLinkSiteGroup();
-
-               $languageUrls = $template->get( 'language_urls' );
-               $hasLangLinks = $languageUrls !== false && !empty( 
$languageUrls );
-
-               $langLinkGenerator = new RepoItemLinkGenerator(
-                       
WikibaseClient::getDefaultInstance()->getNamespaceChecker(),
-                       $repoLinker,
-                       $entityIdParser,
-                       $siteGroup,
-                       $wikibaseClient->getSettings()->getSetting( 
'siteGlobalID' )
-               );
-
-               $action = Action::getActionName( $skin->getContext() );
-
-               $noExternalLangLinks = $skin->getOutput()->getProperty( 
'noexternallanglinks' );
-               $prefixedId = $skin->getOutput()->getProperty( 'wikibase_item' 
);
-
-               $editLink = $langLinkGenerator->getLink( $title, $action, 
$hasLangLinks, $noExternalLangLinks, $prefixedId );
-
-               // there will be no link in some situations, like add links 
widget disabled
-               if ( $editLink ) {
-                       $template->set( 'wbeditlanglinks', $editLink );
-               }
-
-               // Needed to have "Other languages" section display, so we can 
add "add links".
-               // Only force the section to display if we are going to 
actually add such a link:
-               // Where external langlinks aren't suppressed and where action 
== 'view'.
-               if ( $languageUrls === false && $title->exists()
-                       && ( $noExternalLangLinks === null || !in_array( '*', 
$noExternalLangLinks ) )
-                       && $action === 'view'
-               ) {
-                       $template->set( 'language_urls', array() );
-               }
 
                return true;
        }
diff --git a/extensions/Wikibase/client/WikibaseClient.php 
b/extensions/Wikibase/client/WikibaseClient.php
index 3b4867f..dc32eb9 100644
--- a/extensions/Wikibase/client/WikibaseClient.php
+++ b/extensions/Wikibase/client/WikibaseClient.php
@@ -111,7 +111,8 @@
        $wgHooks['ParserFirstCallInit'][] = 
'\Wikibase\ClientHooks::onParserFirstCallInit';
        $wgHooks['MagicWordwgVariableIDs'][] = 
'\Wikibase\ClientHooks::onMagicWordwgVariableIDs';
        $wgHooks['ParserGetVariableValueSwitch'][] = 
'\Wikibase\ClientHooks::onParserGetVariableValueSwitch';
-       $wgHooks['SkinTemplateOutputPageBeforeExec'][] = 
'\Wikibase\ClientHooks::onSkinTemplateOutputPageBeforeExec';
+       $wgHooks['SkinTemplateOutputPageBeforeExec'][] =
+               
'\Wikibase\Client\Hooks\SkinTemplateOutputPageBeforeExecHandler::onSkinTemplateOutputPageBeforeExec';
        $wgHooks['SpecialMovepageAfterMove'][] = 
'\Wikibase\Client\Hooks\MovePageNotice::onSpecialMovepageAfterMove';
        $wgHooks['GetPreferences'][] = 
'\Wikibase\ClientHooks::onGetPreferences';
        $wgHooks['BeforePageDisplay'][] = 
'\Wikibase\ClientHooks::onBeforePageDisplay';
diff --git a/extensions/Wikibase/client/i18n/su.json 
b/extensions/Wikibase/client/i18n/su.json
index 806aa60..9fac503 100644
--- a/extensions/Wikibase/client/i18n/su.json
+++ b/extensions/Wikibase/client/i18n/su.json
@@ -9,7 +9,9 @@
        "wikibase-editlinks": "Édit tutumbu",
        "wikibase-editlinkstitle": "Édit tutumbu antarbasa",
        "wikibase-rc-hide-wikidata": "$1 {{WBREPONAME}}",
+       "wikibase-rc-hide-wikidata-hide": "Sumputkeun",
        "wikibase-rc-hide-wikidata-show": "Témbongkeun",
        "wikibase-rc-wikibase-edit-letter": "D",
-       "wikibase-rc-wikibase-edit-title": "Éditan {{WBREPONAME}}"
+       "wikibase-rc-wikibase-edit-title": "Éditan {{WBREPONAME}}",
+       "wikibase-otherprojects": "Proyék lian"
 }
diff --git 
a/extensions/Wikibase/client/includes/Hooks/SkinTemplateOutputPageBeforeExecHandler.php
 
b/extensions/Wikibase/client/includes/Hooks/SkinTemplateOutputPageBeforeExecHandler.php
new file mode 100644
index 0000000..4266006
--- /dev/null
+++ 
b/extensions/Wikibase/client/includes/Hooks/SkinTemplateOutputPageBeforeExecHandler.php
@@ -0,0 +1,127 @@
+<?php
+
+namespace Wikibase\Client\Hooks;
+
+use Action;
+use OutputPage;
+use QuickTemplate;
+use Skin;
+use Title;
+use Wikibase\Client\WikibaseClient;
+use Wikibase\Client\RepoItemLinkGenerator;
+
+/**
+ * Handler for the "SkinTemplateOutputPageBeforeExec" hook.
+ * Injects an edit link for language links pointing to the repo, and creates
+ * a dummy "Other languages" section for JS use.
+ *
+ * @since 0.5
+ *
+ * @license GNU GPL v2+
+ * @author Marius Hoch < h...@online.de >
+ */
+class SkinTemplateOutputPageBeforeExecHandler {
+
+       /**
+        * @var RepoItemLinkGenerator
+        */
+       private $repoItemLinkGenerator;
+
+       /**
+        * @param RepoItemLinkGenerator $repoItemLinkGenerator
+        */
+       public function __construct( RepoItemLinkGenerator 
$repoItemLinkGenerator ) {
+               $this->repoItemLinkGenerator = $repoItemLinkGenerator;
+       }
+
+       private static function newFromGlobalState() {
+               $wikibaseClient = WikibaseClient::getDefaultInstance();
+
+               return new self(
+                       new RepoItemLinkGenerator(
+                               $wikibaseClient->getNamespaceChecker(),
+                               $wikibaseClient->newRepoLinker(),
+                               $wikibaseClient->getEntityIdParser(),
+                               $wikibaseClient->getLangLinkSiteGroup(),
+                               $wikibaseClient->getSettings()->getSetting( 
'siteGlobalID' )
+                       )
+               );
+       }
+
+       /**
+        * @since 0.5
+        *
+        * @param Skin &$skin
+        * @param QuickTemplate &$template
+        *
+        * @return bool
+        */
+       public static function onSkinTemplateOutputPageBeforeExec( Skin &$skin, 
QuickTemplate &$template ) {
+               $title = $skin->getTitle();
+
+               if ( 
!WikibaseClient::getDefaultInstance()->getNamespaceChecker()->isWikibaseEnabled(
 $title->getNamespace() ) ) {
+                       // shorten out
+                       return true;
+               }
+
+               $handler = self::newFromGlobalState();
+               return $handler->doSkinTemplateOutputPageBeforeExec( $skin, 
$template );
+       }
+
+       /**
+        * @since 0.5
+        *
+        * @param Skin $skin
+        * @param QuickTemplate $template
+        *
+        * @return bool
+        */
+       public function doSkinTemplateOutputPageBeforeExec( Skin $skin, 
QuickTemplate $template ) {
+               $title = $skin->getTitle();
+
+               $languageUrls = $template->get( 'language_urls' );
+               $action = Action::getActionName( $skin->getContext() );
+               $noExternalLangLinks = $skin->getOutput()->getProperty( 
'noexternallanglinks' );
+
+               $this->setEditLink( $skin->getOutput(), $template, $title, 
$action, $languageUrls );
+
+               // Needed to have "Other languages" section display, so we can 
add "add links".
+               // Only force the section to display if we are going to 
actually add such a link:
+               // Where external langlinks aren't suppressed and where action 
== 'view'.
+               if ( $languageUrls === false && $title->exists()
+                       && ( $noExternalLangLinks === null || !in_array( '*', 
$noExternalLangLinks ) )
+                       && $action === 'view'
+               ) {
+                       $template->set( 'language_urls', array() );
+               }
+
+               return true;
+       }
+
+       /**
+        * @param OutputPage $out
+        * @param QuickTemplate $template
+        * @param Title $title
+        * @param string $action
+        * @param array|bool $languageUrls
+        */
+       private function setEditLink(
+               OutputPage $out,
+               QuickTemplate $template,
+               Title $title,
+               $action,
+               $languageUrls
+       ) {
+               $hasLangLinks = $languageUrls !== false && !empty( 
$languageUrls );
+               $prefixedId = $out->getProperty( 'wikibase_item' );
+               $noExternalLangLinks = $out->getProperty( 'noexternallanglinks' 
);
+
+               $editLink = $this->repoItemLinkGenerator->getLink( $title, 
$action, $hasLangLinks, $noExternalLangLinks, $prefixedId );
+
+               // There will be no link in some situations, like add links 
widget disabled
+               if ( $editLink ) {
+                       $template->set( 'wbeditlanglinks', $editLink );
+               }
+       }
+
+}
diff --git 
a/extensions/Wikibase/client/tests/phpunit/includes/Hooks/SkinTemplateOutputPageBeforeExecHandlerTest.php
 
b/extensions/Wikibase/client/tests/phpunit/includes/Hooks/SkinTemplateOutputPageBeforeExecHandlerTest.php
new file mode 100644
index 0000000..a3cf60a
--- /dev/null
+++ 
b/extensions/Wikibase/client/tests/phpunit/includes/Hooks/SkinTemplateOutputPageBeforeExecHandlerTest.php
@@ -0,0 +1,183 @@
+<?php
+
+namespace Wikibase\Client\Tests\Hooks;
+
+use FauxRequest;
+use IContextSource;
+use OutputPage;
+use PHPUnit_Framework_TestCase;
+use Skin;
+use SkinFallbackTemplate;
+use Wikibase\Client\Hooks\SkinTemplateOutputPageBeforeExecHandler;
+
+/**
+ * @covers Wikibase\Client\Hooks\SkinTemplateOutputPageBeforeExecHandler
+ *
+ * @group WikibaseClient
+ * @group Wikibase
+ *
+ * @license GNU GPL v2+
+ * @author Marius Hoch < h...@online.de >
+ */
+class SkinTemplateOutputPageBeforeExecHandlerTest extends 
PHPUnit_Framework_TestCase {
+
+       public function testDoSkinTemplateOutputPageBeforeExec_setEditLink() {
+               $expected = 'I am a Link!';
+               $handler = $this->newSkinTemplateOutputPageBeforeExecHandler( 
$expected );
+
+               $actualWbeditlanglinks = null;
+               $foo = null;
+               $handler->doSkinTemplateOutputPageBeforeExec(
+                       $this->getSkin(),
+                       $this->getTemplate( array(), $foo, 
$actualWbeditlanglinks )
+               );
+
+               $this->assertSame( $expected, $actualWbeditlanglinks );
+       }
+
+       public function testDoSkinTemplateOutputPageBeforeExec_editLinkIsNull() 
{
+               $handler = $this->newSkinTemplateOutputPageBeforeExecHandler();
+
+               $actualWbeditlanglinks = null;
+               $foo = null;
+               $handler->doSkinTemplateOutputPageBeforeExec(
+                       $this->getSkin(),
+                       $this->getTemplate( array(), $foo, 
$actualWbeditlanglinks )
+               );
+
+               $this->assertNull( $actualWbeditlanglinks );
+       }
+
+       public function testDoSkinTemplateOutputPageBeforeExec_languageUrls() {
+               $handler = $this->newSkinTemplateOutputPageBeforeExecHandler();
+
+               $actualLanguageUrls = null;
+               $handler->doSkinTemplateOutputPageBeforeExec(
+                       $this->getSkin(),
+                       $this->getTemplate( false, $actualLanguageUrls )
+               );
+
+               $this->assertSame( array(), $actualLanguageUrls );
+       }
+
+       public function 
testDoSkinTemplateOutputPageBeforeExec_noExternalLangLinks() {
+               $handler = $this->newSkinTemplateOutputPageBeforeExecHandler();
+
+               $actualLanguageUrls = null;
+               $handler->doSkinTemplateOutputPageBeforeExec(
+                       $this->getSkin( array( '*' ) ),
+                       $this->getTemplate( array(), $actualLanguageUrls )
+               );
+
+               $this->assertNull( $actualLanguageUrls );
+       }
+
+       private function newSkinTemplateOutputPageBeforeExecHandler( $link = 
null ) {
+               $repoItemLinkGenerator = $this->getMockBuilder( 
'Wikibase\Client\RepoItemLinkGenerator' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+
+               $repoItemLinkGenerator->expects( $this->any() )
+                       ->method( 'getLink' )
+                       ->with(
+                               $this->isInstanceOf( 'Title' ),
+                               $this->isType( 'string' ),
+                               $this->isType( 'bool' ),
+                               $this->logicalOr( $this->isType( 'array' ), 
$this->isNull() ),
+                               $this->isType( 'string' )
+                       )
+                       ->will( $this->returnValue( $link ) );
+
+               return new SkinTemplateOutputPageBeforeExecHandler( 
$repoItemLinkGenerator );
+       }
+
+       /**
+        * Changes $actualLanguageUrls and $actualWbeditlanglinks when 
SkinFallbackTemplate::set is called.
+        *
+        * @param array $languageUrls
+        * @param mixed &$actualLanguageUrls
+        * @param mixed &$actualWbeditlanglinks
+        *
+        * @return SkinFallbackTemplate
+        */
+       private function getTemplate( $languageUrls = array(), 
&$actualLanguageUrls = null, &$actualWbeditlanglinks = null ) {
+               $template = $this->getMock( 'SkinFallbackTemplate' );
+
+               $template->expects( $this->any() )
+                       ->method( 'get' )
+                       ->with( 'language_urls' )
+                       ->will( $this->returnValue( $languageUrls ) );
+
+               $template->expects( $this->any() )
+                       ->method( 'set' )
+                       ->will( $this->returnCallback( function( $name, $val ) 
use ( &$actualLanguageUrls, &$actualWbeditlanglinks ) {
+                               if ( $name === 'language_urls' ) {
+                                       $actualLanguageUrls = $val;
+                               } elseif ( $name === 'wbeditlanglinks' ) {
+                                       $actualWbeditlanglinks = $val;
+                               } else {
+                                       PHPUnit_Framework_TestCase::fail( 
'Unexpected option ' .  $name . ' set.' );
+                               }
+                       } ) );
+
+               return $template;
+       }
+
+       /**
+        * @param array|null $noexternallanglinks
+        *
+        * @return Skin
+        */
+       private function getSkin( array $noexternallanglinks = null ) {
+               $skin = $this->getMock( 'SkinTemplate' );
+
+               $output = new OutputPage( $this->getContext() );
+               $output->setProperty( 'noexternallanglinks', 
$noexternallanglinks );
+               $output->setProperty( 'wikibase_item', 'Q2013' );
+
+               $title = $this->getMock( 'Title' );
+               $title->expects( $this->any() )
+                       ->method( 'exists' )
+                       ->will( $this->returnValue( true ) );
+
+               $skin->expects( $this->any() )
+                       ->method( 'getOutput' )
+                       ->will( $this->returnValue( $output ) );
+               $skin->expects( $this->any() )
+                       ->method( 'getContext' )
+                       ->will( $this->returnValue( $output ) );
+               $skin->expects( $this->any() )
+                       ->method( 'getTitle' )
+                       ->will( $this->returnValue( $title ) );
+
+               return $skin;
+       }
+
+       /**
+        * @return IContextSource
+        */
+       private function getContext() {
+               $request = new FauxRequest( array( 'action' => 'view' ) );
+
+               $wikiPage = $this->getMockBuilder( 'WikiPage' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+               $wikiPage->expects( $this->any() )
+                       ->method( 'getActionOverrides' )
+                       ->will( $this->returnValue( array() ) );
+
+               $context = $this->getMock( 'IContextSource' );
+               $context->expects( $this->any() )
+                       ->method( 'canUseWikiPage' )
+                       ->will( $this->returnValue( true ) );
+               $context->expects( $this->any() )
+                       ->method( 'getWikiPage' )
+                       ->will( $this->returnValue( $wikiPage ) );
+               $context->expects( $this->any() )
+                       ->method( 'getRequest' )
+                       ->will( $this->returnValue( $request ) );
+
+               return $context;
+       }
+
+}
diff --git a/extensions/Wikibase/docs/ontology.owl 
b/extensions/Wikibase/docs/ontology.owl
index 184076d..ecb98b2 100644
--- a/extensions/Wikibase/docs/ontology.owl
+++ b/extensions/Wikibase/docs/ontology.owl
@@ -27,7 +27,7 @@
   // Classes
   //
   
///////////////////////////////////////////////////////////////////////////////////////
-   -->
+  -->
 
   <owl:Class rdf:about="&wikibase;Dump">
     <rdfs:label>Dump</rdfs:label>
@@ -50,7 +50,6 @@
       <rdfs:comment>Wikibase property.</rdfs:comment>
       <rdfs:subClassOf rdf:resource="&wikibase;Entity"/>
   </owl:Class>
-
 
   <owl:Class rdf:about="&wikibase;Statement">
     <rdfs:label>Statement</rdfs:label>
@@ -87,11 +86,13 @@
     <rdfs:comment>Wikibase extended value representing quantity.</rdfs:comment>
     <rdfs:subClassOf rdf:resource="&wikibase;Value"/>
   </owl:Class>
+
   <owl:Class rdf:about="&wikibase;TimeValue">
     <rdfs:label>TimeValue</rdfs:label>
     <rdfs:comment>Wikibase extended value representing time.</rdfs:comment>
     <rdfs:subClassOf rdf:resource="&wikibase;Value"/>
   </owl:Class>
+
   <owl:Class rdf:about="&wikibase;GlobecoordinateValue">
     <rdfs:label>GlobecoordinateValue</rdfs:label>
     <rdfs:comment>Wikibase extended value representing geographic 
coordinate.</rdfs:comment>
@@ -109,29 +110,39 @@
   // Individuals
   //
   
///////////////////////////////////////////////////////////////////////////////////////
-   -->
+  -->
+
+  <!-- Individual statement ranks -->
 
   <owl:NamedIndividual rdf:about="&wikibase;DeprecatedRank">
       <rdfs:label>DeprecatedRank</rdfs:label>
-      <rdfs:comment>Deprecated rank.</rdfs:comment>
+      <rdfs:comment>Deprecated statement rank.</rdfs:comment>
       <rdf:type rdf:resource="&wikibase;Rank"/>
   </owl:NamedIndividual>
 
   <owl:NamedIndividual rdf:about="&wikibase;NormalRank">
       <rdfs:label>NormalRank</rdfs:label>
-      <rdfs:comment>Normal rank.</rdfs:comment>
+      <rdfs:comment>Normal statement rank.</rdfs:comment>
       <rdf:type rdf:resource="&wikibase;Rank"/>
   </owl:NamedIndividual>
 
   <owl:NamedIndividual rdf:about="&wikibase;PreferredRank">
       <rdfs:label>PreferredRank</rdfs:label>
-      <rdfs:comment>Preferred rank.</rdfs:comment>
+      <rdfs:comment>Preferred statement rank.</rdfs:comment>
       <rdf:type rdf:resource="&wikibase;Rank"/>
   </owl:NamedIndividual>
+
+  <!-- Individual property types supported by Wikibase -->
 
   <owl:NamedIndividual rdf:about="&wikibase;CommonsMedia">
       <rdfs:label>CommonsMedia</rdfs:label>
       <rdfs:comment>Wikimedia Commons reference type.</rdfs:comment>
+      <rdf:type rdf:resource="&wikibase;PropertyType"/>
+  </owl:NamedIndividual>
+
+  <owl:NamedIndividual rdf:about="&wikibase;ExternalId">
+      <rdfs:label>WikibaseExternalId</rdfs:label>
+      <rdfs:comment>Type for referring to ID defined by external 
authority.</rdfs:comment>
       <rdf:type rdf:resource="&wikibase;PropertyType"/>
   </owl:NamedIndividual>
 
@@ -177,12 +188,13 @@
       <rdf:type rdf:resource="&wikibase;PropertyType"/>
   </owl:NamedIndividual>
 
-  <owl:NamedIndividual rdf:about="&wikibase;ExternalId">
-      <rdfs:label>WikibaseExternalId</rdfs:label>
-      <rdfs:comment>Type for referring to ID defined by external 
authority.</rdfs:comment>
+  <!-- Individual property types supported by known Wikibase extensions -->
+
+  <owl:NamedIndividual rdf:about="&wikibase;Math">
+      <rdfs:label>Mathematial expression</rdfs:label>
+      <rdfs:comment>Type for mathematical expressions as supported by the Math 
extension.</rdfs:comment>
       <rdf:type rdf:resource="&wikibase;PropertyType"/>
   </owl:NamedIndividual>
-
 
   <!--
   
///////////////////////////////////////////////////////////////////////////////////////
@@ -190,7 +202,7 @@
   // Properties
   //
   
///////////////////////////////////////////////////////////////////////////////////////
-   -->
+  -->
 
   <owl:ObjectProperty rdf:about="&wikibase;rank">
       <rdfs:label>rank</rdfs:label>
diff --git a/extensions/Wikibase/lib/i18n/hu.json 
b/extensions/Wikibase/lib/i18n/hu.json
index d406391..6995492 100644
--- a/extensions/Wikibase/lib/i18n/hu.json
+++ b/extensions/Wikibase/lib/i18n/hu.json
@@ -49,6 +49,7 @@
        "datatypes-type-wikibase-item": "Elem",
        "datatypes-type-wikibase-property": "Tulajdonság",
        "datatypes-type-commonsMedia": "Commons-médiafájl",
+       "datatypes-type-external-id": "Külső azonosító",
        "wikibase-entity-summary-wbsetitem": "Fogalom létrehozása",
        "wikibase-entity-summary-wbcreateredirect": "Átirányítás ide: $4",
        "wikibase-entity-summary-wbsetreference": "Forráshivatkozás hozzáadása",
diff --git a/extensions/Wikibase/lib/tests/phpunit/changes/ItemChangeTest.php 
b/extensions/Wikibase/lib/tests/phpunit/changes/ItemChangeTest.php
index 5d6d36c..34d6ef2 100644
--- a/extensions/Wikibase/lib/tests/phpunit/changes/ItemChangeTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/changes/ItemChangeTest.php
@@ -122,16 +122,12 @@
                        $change->setDiff( $diff );
 
                        $cases['atomic-sitelink-diff'] = array( $change );
-
+               } finally {
                        $wgDevelopmentWarnings = true;
                        \MediaWiki\restoreWarnings();
-
-                       return $cases;
-               } catch ( Exception $ex ) {
-                       $wgDevelopmentWarnings = true;
-                       \MediaWiki\restoreWarnings();
-                       throw $ex;
                }
+
+               return $cases;
        }
 
        /**
@@ -147,22 +143,13 @@
 
                // Also suppress notices that may be triggered by wfLogWarning
                \MediaWiki\suppressWarnings();
-               $exception = null;
 
                try {
                        $siteLinkDiff = $change->getSiteLinkDiff();
                        $this->assertInstanceOf( 'Diff\Diff', $siteLinkDiff,
                                "getSiteLinkDiff must return a Diff" );
-               } catch ( Exception $ex ) {
-                       // PHP 5.3 doesn't have `finally`, so we use a hacky 
emulation
-                       $exception = $ex;
-               }
-
-               // this is our make-shift `finally` section.
-               \MediaWiki\restoreWarnings();
-
-               if ( $exception ) {
-                       throw $exception;
+               } finally {
+                       \MediaWiki\restoreWarnings();
                }
        }
 
diff --git a/extensions/Wikibase/lib/tests/phpunit/store/EntityRevisionTest.php 
b/extensions/Wikibase/lib/tests/phpunit/store/EntityRevisionTest.php
new file mode 100644
index 0000000..a8545e3
--- /dev/null
+++ b/extensions/Wikibase/lib/tests/phpunit/store/EntityRevisionTest.php
@@ -0,0 +1,59 @@
+<?php
+
+namespace Wikibase\Lib\Tests\Store;
+
+use PHPUnit_Framework_TestCase;
+use Wikibase\DataModel\Entity\Item;
+use Wikibase\EntityRevision;
+
+/**
+ * @covers Wikibase\EntityRevision
+ *
+ * @group Wikibase
+ * @group WikibaseLib
+ * @group WikibaseStore
+ *
+ * @licence GNU GPL v2+
+ * @author Thiemo Mättig
+ */
+class EntityRevisionTest extends PHPUnit_Framework_TestCase {
+
+       public function testMinimalConstructorArguments() {
+               $entity = new Item();
+               $revision = new EntityRevision( $entity );
+
+               $this->assertSame( $entity, $revision->getEntity() );
+               $this->assertSame( 0, $revision->getRevisionId() );
+               $this->assertSame( '', $revision->getTimestamp() );
+       }
+
+       public function testAllConstructorArguments() {
+               $entity = new Item();
+               $revision = new EntityRevision( $entity, 42, '20150211000000' );
+
+               $this->assertSame( $entity, $revision->getEntity() );
+               $this->assertSame( 42, $revision->getRevisionId() );
+               $this->assertSame( '20150211000000', $revision->getTimestamp() 
);
+       }
+
+       /**
+        * @dataProvider invalidConstructorArgumentsProvider
+        */
+       public function testInvalidConstructorArguments( $revisionId, 
$mwTimestamp ) {
+               $this->setExpectedException( 'InvalidArgumentException' );
+               new EntityRevision( new Item(), $revisionId, $mwTimestamp );
+       }
+
+       public function invalidConstructorArgumentsProvider() {
+               return array(
+                       array( null, '20150211000000' ),
+                       array( '1', '20150211000000' ),
+                       array( -1, '20150211000000' ),
+                       array( 1, null ),
+                       array( 1, 1423612800 ),
+                       array( 1, '20150211' ),
+                       array( 1, '2015-02-110000' ),
+               );
+       }
+
+}
diff --git a/extensions/Wikibase/purtle/tests/phpunit/BNodeLabelerTest.php 
b/extensions/Wikibase/purtle/tests/phpunit/BNodeLabelerTest.php
index a660d4a..7ea6af4 100644
--- a/extensions/Wikibase/purtle/tests/phpunit/BNodeLabelerTest.php
+++ b/extensions/Wikibase/purtle/tests/phpunit/BNodeLabelerTest.php
@@ -2,6 +2,7 @@
 
 namespace Wikimedia\Purtle\Tests;
 
+use PHPUnit_Framework_TestCase;
 use Wikimedia\Purtle\BNodeLabeler;
 
 /**
@@ -11,8 +12,27 @@
  *
  * @licence GNU GPL v2+
  * @author Daniel Kinzler
+ * @author Thiemo Mättig
  */
-class BNodeLabelerTest extends \PHPUnit_Framework_TestCase {
+class BNodeLabelerTest extends PHPUnit_Framework_TestCase {
+
+       /**
+        * @dataProvider invalidConstructorArgumentsProvider
+        */
+       public function testInvalidConstructorArguments( $prefix, $start ) {
+               $this->setExpectedException( 'InvalidArgumentException' );
+               new BNodeLabeler( $prefix, $start );
+       }
+
+       public function invalidConstructorArgumentsProvider() {
+               return array(
+                       array( null, 1 ),
+                       array( 1, 1 ),
+                       array( 'prefix', null ),
+                       array( 'prefix', 0 ),
+                       array( 'prefix', '1' ),
+               );
+       }
 
        public function testGetLabel() {
                $labeler = new BNodeLabeler( 'test', 2 );
diff --git a/extensions/Wikibase/purtle/tests/phpunit/RdfWriterTestBase.php 
b/extensions/Wikibase/purtle/tests/phpunit/RdfWriterTestBase.php
index 527b6b7..b0cfdff 100644
--- a/extensions/Wikibase/purtle/tests/phpunit/RdfWriterTestBase.php
+++ b/extensions/Wikibase/purtle/tests/phpunit/RdfWriterTestBase.php
@@ -2,6 +2,7 @@
 
 namespace Wikimedia\Purtle\Tests;
 
+use PHPUnit_Framework_TestCase;
 use Wikibase\Repo\Tests\Rdf\NTriplesRdfTestHelper;
 use Wikimedia\Purtle\RdfWriter;
 
@@ -11,8 +12,9 @@
  *
  * @licence GNU GPL v2+
  * @author Daniel Kinzler
+ * @author Thiemo Mättig
  */
-abstract class RdfWriterTestBase extends \PHPUnit_Framework_TestCase{
+abstract class RdfWriterTestBase extends PHPUnit_Framework_TestCase{
 
        /**
         * @var NTriplesRdfTestHelper
@@ -32,6 +34,12 @@
         */
        abstract protected function newWriter();
 
+       public function testGetMimeType() {
+               $mimeType = $this->newWriter()->getMimeType();
+               $this->assertInternalType( 'string', $mimeType );
+               $this->assertRegExp( '/^\w+\/[\w-]+(\+xml)?(; 
charset=UTF-8)?$/', $mimeType );
+       }
+
        public function testTriples() {
                $writer = $this->newWriter();
 
diff --git a/extensions/Wikibase/purtle/tests/phpunit/TurtleRdfWriterTest.php 
b/extensions/Wikibase/purtle/tests/phpunit/TurtleRdfWriterTest.php
index dfe5b9f..a483f44 100644
--- a/extensions/Wikibase/purtle/tests/phpunit/TurtleRdfWriterTest.php
+++ b/extensions/Wikibase/purtle/tests/phpunit/TurtleRdfWriterTest.php
@@ -15,6 +15,7 @@
  *
  * @licence GNU GPL v2+
  * @author Daniel Kinzler
+ * @author Thiemo Mättig
  */
 class TurtleRdfWriterTest extends RdfWriterTestBase {
 
@@ -29,4 +30,11 @@
                return new TurtleRdfWriter();
        }
 
+       public function testTrustIRIs() {
+               $writer = new TurtleRdfWriter();
+               $this->assertTrue( $writer->getTrustIRIs(), 'initialy enabled' 
);
+               $writer->setTrustIRIs( false );
+               $this->assertFalse( $writer->getTrustIRIs(), 'disabled' );
+       }
+
 }
diff --git a/extensions/Wikibase/purtle/tests/phpunit/UnicodeEscaperTest.php 
b/extensions/Wikibase/purtle/tests/phpunit/UnicodeEscaperTest.php
index 30abcc7..d11e038 100644
--- a/extensions/Wikibase/purtle/tests/phpunit/UnicodeEscaperTest.php
+++ b/extensions/Wikibase/purtle/tests/phpunit/UnicodeEscaperTest.php
@@ -12,11 +12,40 @@
  *
  * @licence GNU GPL v2+
  * @author Daniel Kinzler
+ * @author Thiemo Mättig
  */
 class UnicodeEscaperTest extends \PHPUnit_Framework_TestCase {
 
        public function provideEscapeString() {
                return array(
+                       'control characters' => array(
+                               "\x00...\x08\x0B\x0C\x0E...\x19",
+                               '\u0000...\u0008\u000B\u000C\u000E...\u0019'
+                       ),
+                       'whitespace' => array(
+                               " \t\n\r",
+                               ' \t\n\r'
+                       ),
+                       'non-special ASCII characters' => array(
+                               
'!#$%&\'()*+,-./0...9:;<=>?@A...Z[\\]^_`a...z{|}~',
+                               
'!#$%&\'()*+,-./0...9:;<=>?@A...Z[\\]^_`a...z{|}~'
+                       ),
+                       'double quote' => array(
+                               '"',
+                               '\"'
+                       ),
+                       '4-digit hex below U+10000' => array(
+                               "\x7F...\xEF\xBF\xBF",
+                               '\u007F...\uFFFF'
+                       ),
+                       '8-digit hex below U+110000' => array(
+                               "\xF0\x90\x80\x80...\xF4\x8F\xBF\xBF",
+                               '\U00010000...\U0010FFFF'
+                       ),
+                       'ignore U+110000 and above' => array(
+                               "\xF4\x8F\xBF\xC0",
+                               ''
+                       ),
                        array(
                                "Hello World",
                                'Hello World'
@@ -50,8 +79,7 @@
         */
        public function testEscapeString( $input, $expected ) {
                $escaper = new UnicodeEscaper();
-
-               $this->assertEquals( $expected, $escaper->escapeString( $input 
) );
+               $this->assertSame( $expected, $escaper->escapeString( $input ) 
);
        }
 
 }
diff --git a/extensions/Wikibase/repo/i18n/su.json 
b/extensions/Wikibase/repo/i18n/su.json
index 83a5228..b4e1dfa 100644
--- a/extensions/Wikibase/repo/i18n/su.json
+++ b/extensions/Wikibase/repo/i18n/su.json
@@ -7,6 +7,9 @@
        "wikibase-edit": "édit",
        "wikibase-add": "tambah",
        "wikibase-sitelinks-special": "Loka lianna",
+       "wikibase-aliases-empty": "Alias teu ditangtukeun",
+       "wikibase-statementview-rank-normal": "Urutan normal",
+       "wikibase-statementview-referencesheading-pendingcountersubject": 
"{{PLURAL:$1|rujukan}}",
        "wikibase-setsitelink-submit": "Atur tutumbu loka",
        "wikibase-setsitelink-remove-failed": "Tutumbu loka teu bisa 
disingkahkeun."
 }
diff --git 
a/extensions/Wikibase/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
 
b/extensions/Wikibase/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
index 4c07d5f..56a0389 100644
--- 
a/extensions/Wikibase/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
+++ 
b/extensions/Wikibase/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
@@ -8,6 +8,7 @@
 use SiteStore;
 use Wikibase\ChangeOp\ChangeOp;
 use Wikibase\ChangeOp\ChangeOpException;
+use Wikibase\ChangeOp\ChangeOps;
 use Wikibase\ChangeOp\FingerprintChangeOpFactory;
 use Wikibase\DataModel\Entity\EntityDocument;
 use Wikibase\DataModel\Term\Fingerprint;
@@ -344,27 +345,50 @@
 
                $changeOps = $this->getChangeOps( $entity->getFingerprint() );
 
-               $summary = false;
-               $success = true;
-
-               foreach ( $changeOps as $module => $changeOp ) {
-                       $summary = new Summary( $module );
-
-                       try {
-                               $this->applyChangeOp( $changeOp, $entity, 
$summary );
-                       } catch ( ChangeOpException $ex ) {
-                               $this->showErrorHTML( $ex->getMessage() );
-                               $success = false;
-                       }
+               try {
+                       $summary = $this->applyChangeOpList( $changeOps, 
$entity );
+               } catch ( ChangeOpException $ex ) {
+                       $this->showErrorHTML( $ex->getMessage() );
+                       $summary = false;
                }
 
-               if ( !$success ) {
+               if ( !$summary ) {
                        return false;
-               } elseif ( count( $changeOps ) === 1 ) {
+               } else {
                        return $summary;
                }
+       }
 
-               return $this->getSummaryForLabelDescriptionAliases();
+       /**
+        * @param ChangeOp[] $changeOps
+        * @param EntityDocument $entity
+        *
+        * @return bool|Summary
+        */
+       private function applyChangeOpList( array $changeOps, EntityDocument 
$entity ) {
+               if ( empty( $changeOps ) ) {
+                       return false;
+               } elseif ( count( $changeOps ) === 1 ) {
+                       // special case for single change-op, produces a better 
edit summary
+                       $keys = array_keys( $changeOps );
+                       $module = $keys[0];
+
+                       $changeOp = $changeOps[ $module ];
+                       $summary = new Summary( $module );
+
+                       $this->applyChangeOp( $changeOp, $entity, $summary );
+               } else {
+                       // NOTE: it's important to bundle all ChangeOp objects 
into a ChangeOps object,
+                       // so validation and modification is properly batched.
+
+                       $summary = new Summary(); // dummy
+                       $changeOp = new ChangeOps( $changeOps );
+
+                       $this->applyChangeOp( $changeOp, $entity, $summary );
+                       $summary = 
$this->getSummaryForLabelDescriptionAliases();
+               }
+
+               return $summary;
        }
 
        /**
diff --git a/extensions/Wikibase/repo/tests/browser 
b/extensions/Wikibase/repo/tests/browser
deleted file mode 120000
index c377a0f..0000000
--- a/extensions/Wikibase/repo/tests/browser
+++ /dev/null
@@ -1 +0,0 @@
-../../tests/browser/
\ No newline at end of file
diff --git a/extensions/Wikibase/repo/tests/browser 
b/extensions/Wikibase/repo/tests/browser
new file mode 100644
index 0000000..c377a0f
--- /dev/null
+++ b/extensions/Wikibase/repo/tests/browser
@@ -0,0 +1 @@
+../../tests/browser/
\ No newline at end of file
diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php
index ff6ecfb..5e1469e 100644
--- a/vendor/composer/ClassLoader.php
+++ b/vendor/composer/ClassLoader.php
@@ -13,7 +13,9 @@
 namespace Composer\Autoload;
 
 /**
- * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
+ * ClassLoader implements a PSR-0 class loader
+ *
+ * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md
  *
  *     $loader = new \Composer\Autoload\ClassLoader();
  *
@@ -37,8 +39,6 @@
  *
  * @author Fabien Potencier <fab...@symfony.com>
  * @author Jordi Boggiano <j.boggi...@seld.be>
- * @see    http://www.php-fig.org/psr/psr-0/
- * @see    http://www.php-fig.org/psr/psr-4/
  */
 class ClassLoader
 {
@@ -147,7 +147,7 @@
      * appending or prepending to the ones previously set for this namespace.
      *
      * @param string       $prefix  The prefix/namespace, with trailing '\\'
-     * @param array|string $paths   The PSR-4 base directories
+     * @param array|string $paths   The PSR-0 base directories
      * @param bool         $prepend Whether to prepend the directories
      *
      * @throws \InvalidArgumentException
diff --git a/vendor/composer/autoload_classmap.php 
b/vendor/composer/autoload_classmap.php
index fc114fe..e197ca5 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -255,10 +255,6 @@
     'WikibaseQuality\\ConstraintReport\\ConstraintRepository' => $baseDir . 
'/extensions/Constraints/includes/ConstraintRepository.php',
     'WikibaseQuality\\ConstraintReport\\Maintenance\\UpdateConstraintsTable' 
=> $baseDir . '/extensions/Constraints/maintenance/UpdateConstraintsTable.php',
     'WikibaseQuality\\ConstraintReport\\Specials\\SpecialConstraintReport' => 
$baseDir . '/extensions/Constraints/specials/SpecialConstraintReport.php',
-    'WikibaseQuality\\ConstraintReport\\Tests\\ConstraintRepositoryTest' => 
$baseDir . '/extensions/Constraints/tests/phpunit/ConstraintRepositoryTest.php',
-    'WikibaseQuality\\ConstraintReport\\Tests\\ConstraintTest' => $baseDir . 
'/extensions/Constraints/tests/phpunit/ConstraintTest.php',
-    
'WikibaseQuality\\ConstraintReport\\Tests\\Maintenance\\UpdateConstraintsTableTest'
 => $baseDir . 
'/extensions/Constraints/tests/phpunit/Maintenance/UpdateConstraintsTableTest.php',
-    
'WikibaseQuality\\ConstraintReport\\Tests\\Specials\\SpecialConstraintReport\\SpecialConstraintReportTest'
 => $baseDir . 
'/extensions/Constraints/tests/phpunit/Specials/SpecialConstraintReportTest.php',
     'WikibaseQuality\\ExternalValidation\\Api\\RunCrossCheck' => $baseDir . 
'/extensions/ExternalValidation/api/RunCrossCheck.php',
     
'WikibaseQuality\\ExternalValidation\\CrossCheck\\Comparer\\DataValueComparer' 
=> $baseDir . 
'/extensions/ExternalValidation/includes/CrossCheck/Comparer/DataValueComparer.php',
     
'WikibaseQuality\\ExternalValidation\\CrossCheck\\Comparer\\DataValueComparerFactory'
 => $baseDir . 
'/extensions/ExternalValidation/includes/CrossCheck/Comparer/DataValueComparerFactory.php',
@@ -298,44 +294,9 @@
     'WikibaseQuality\\ExternalValidation\\Serializer\\SerializerFactory' => 
$baseDir . 
'/extensions/ExternalValidation/includes/Serializer/SerializerFactory.php',
     'WikibaseQuality\\ExternalValidation\\Specials\\SpecialCrossCheck' => 
$baseDir . '/extensions/ExternalValidation/specials/SpecialCrossCheck.php',
     'WikibaseQuality\\ExternalValidation\\Specials\\SpecialExternalDbs' => 
$baseDir . '/extensions/ExternalValidation/specials/SpecialExternalDbs.php',
-    'WikibaseQuality\\ExternalValidation\\Tests\\Api\\RunCrossCheckTest' => 
$baseDir . 
'/extensions/ExternalValidation/tests/phpunit/Api/RunCrossCheckTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\Comparer\\DataValueComparerFactoryTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/Comparer/DataValueComparerFactoryTest.php',
     
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\Comparer\\DataValueComparerTestBase'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/Comparer/DataValueComparerTestBase.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\Comparer\\DispatchingDataValueComparerTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/Comparer/DispatchingDataValueComparerTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\Comparer\\EntityIdValueComparerTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/Comparer/EntityIdValueComparerTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\Comparer\\GlobeCoordinateValueComparerTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/Comparer/GlobeCoordinateValueComparerTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\Comparer\\MonolingualTextValueComparerTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/Comparer/MonolingualTextValueComparerTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\Comparer\\MultilingualTextValueComparerTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/Comparer/MultilingualTextValueComparerTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\Comparer\\QuantityValueComparerTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/Comparer/QuantityValueComparerTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\Comparer\\StringComparerTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/Comparer/StringComparerTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\Comparer\\StringValueComparerTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/Comparer/StringValueComparerTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\Comparer\\TimeValueComparerTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/Comparer/TimeValueComparerTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\CrossCheckInteractorTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/CrossCheckInteractorTest.php',
-    'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\CrossCheckerTest' 
=> $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/CrossCheckerTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\ReferenceCheckerTest' 
=> $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/ReferenceCheckerTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\Result\\ComparisonResultTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/Result/ComparisonResultTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\Result\\CrossCheckResultListTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/Result/CrossCheckResultListTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\Result\\CrossCheckResultTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/Result/CrossCheckResultTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\Result\\ReferenceResultTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/Result/ReferenceResultTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\ValueParser\\ComparativeValueParserFactoryTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/ValueParser/ComparativeValueParserFactoryTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\ValueParser\\MultilingualTextValueParserTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/ValueParser/MultilingualTextValueParserTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\ValueParser\\StringValueParserTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/ValueParser/StringValueParserTest.php',
     
'WikibaseQuality\\ExternalValidation\\Tests\\CrossCheck\\ValueParser\\ValueParserTestBase'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/CrossCheck/ValueParser/ValueParserTestBase.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\DumpMetaInformation\\DumpMetaInformationTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/DumpMetaInformation/DumpMetaInformationTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\DumpMetaInformation\\SqlDumpMetaInformationRepoTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/DumpMetaInformation/SqlDumpMetaInformationRepoTest.php',
-    'WikibaseQuality\\ExternalValidation\\Tests\\ExternalDataRepoTest' => 
$baseDir . 
'/extensions/ExternalValidation/tests/phpunit/ExternalDataRepoTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\ExternalValidationServicesTest' => 
$baseDir . 
'/extensions/ExternalValidation/tests/phpunit/ExternalValidationServicesTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\Serializer\\ComparisonResultSerializerTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/Serializer/ComparisonResultSerializerTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\Serializer\\CrossCheckResultListSerializerTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/Serializer/CrossCheckResultListSerializerTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\Serializer\\CrossCheckResultSerializerTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/Serializer/CrossCheckResultSerializerTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\Serializer\\DumpMetaInformationSerializerTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/Serializer/DumpMetaInformationSerializerTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\Serializer\\ReferenceResultSerializerTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/Serializer/ReferenceResultSerializerTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\Serializer\\SerializerFactoryTest' 
=> $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/Serializer/SerializerFactoryTest.php',
     
'WikibaseQuality\\ExternalValidation\\Tests\\Serializer\\SerializerTestBase' => 
$baseDir . 
'/extensions/ExternalValidation/tests/phpunit/Serializer/SerializerTestBase.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\Specials\\SpecialCrossCheck\\SpecialCrossCheckTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/Specials/SpecialCrossCheckTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\Specials\\SpecialExternalDbs\\SpecialExternalDbsTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/Specials/SpecialExternalDbsTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\UpdateExternalData\\CsvImportSettingsTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/UpdateExternalData/CsvImportSettingsTest.php',
-    
'WikibaseQuality\\ExternalValidation\\Tests\\UpdateExternalData\\UpdateExternalDataTest'
 => $baseDir . 
'/extensions/ExternalValidation/tests/phpunit/UpdateExternalData/UpdateExternalDataTest.php',
     
'WikibaseQuality\\ExternalValidation\\UpdateExternalData\\CsvImportSettings' => 
$baseDir . 
'/extensions/ExternalValidation/includes/UpdateExternalData/CsvImportSettings.php',
     
'WikibaseQuality\\ExternalValidation\\UpdateExternalData\\ExternalDataImporter' 
=> $baseDir . 
'/extensions/ExternalValidation/includes/UpdateExternalData/ExternalDataImporter.php',
     'WikibaseQuality\\Html\\HtmlTableBuilder' => $baseDir . 
'/extensions/Quality/includes/Html/HtmlTableBuilder.php',
@@ -413,6 +374,7 @@
     'Wikibase\\Client\\Hooks\\ParserLimitHookHandlers' => $baseDir . 
'/extensions/Wikibase/client/includes/Hooks/ParserLimitHookHandlers.php',
     'Wikibase\\Client\\Hooks\\ParserOutputUpdateHookHandlers' => $baseDir . 
'/extensions/Wikibase/client/includes/Hooks/ParserOutputUpdateHookHandlers.php',
     'Wikibase\\Client\\Hooks\\SidebarHookHandlers' => $baseDir . 
'/extensions/Wikibase/client/includes/Hooks/SidebarHookHandlers.php',
+    'Wikibase\\Client\\Hooks\\SkinTemplateOutputPageBeforeExecHandler' => 
$baseDir . 
'/extensions/Wikibase/client/includes/Hooks/SkinTemplateOutputPageBeforeExecHandler.php',
     'Wikibase\\Client\\Hooks\\UpdateRepoHookHandlers' => $baseDir . 
'/extensions/Wikibase/client/includes/Hooks/UpdateRepoHookHandlers.php',
     'Wikibase\\Client\\OtherProjectsSitesGenerator' => $baseDir . 
'/extensions/Wikibase/client/includes/OtherProjectsSitesGenerator.php',
     'Wikibase\\Client\\OtherProjectsSitesProvider' => $baseDir . 
'/extensions/Wikibase/client/includes/OtherProjectsSitesProvider.php',
@@ -480,6 +442,7 @@
     'Wikibase\\Client\\Tests\\Hooks\\ParserLimitHookHandlersTest' => $baseDir 
. 
'/extensions/Wikibase/client/tests/phpunit/includes/Hooks/ParserLimitHookHandlersTest.php',
     'Wikibase\\Client\\Tests\\Hooks\\ParserOutputUpdateHookHandlersTest' => 
$baseDir . 
'/extensions/Wikibase/client/tests/phpunit/includes/Hooks/ParserOutputUpdateHookHandlersTest.php',
     'Wikibase\\Client\\Tests\\Hooks\\SidebarHookHandlersTest' => $baseDir . 
'/extensions/Wikibase/client/tests/phpunit/includes/Hooks/SidebarHookHandlersTest.php',
+    
'Wikibase\\Client\\Tests\\Hooks\\SkinTemplateOutputPageBeforeExecHandlerTest' 
=> $baseDir . 
'/extensions/Wikibase/client/tests/phpunit/includes/Hooks/SkinTemplateOutputPageBeforeExecHandlerTest.php',
     'Wikibase\\Client\\Tests\\InterwikiSorterTest' => $baseDir . 
'/extensions/Wikibase/client/tests/phpunit/includes/InterwikiSorterTest.php',
     'Wikibase\\Client\\Tests\\LangLinkHandlerTest' => $baseDir . 
'/extensions/Wikibase/client/tests/phpunit/includes/LangLinkHandlerTest.php',
     'Wikibase\\Client\\Tests\\Modules\\SiteModuleTest' => $baseDir . 
'/extensions/Wikibase/client/tests/phpunit/includes/modules/SiteModuleTest.php',
@@ -881,6 +844,7 @@
     'Wikibase\\Lib\\Tests\\Modules\\RepoAccessModuleTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/includes/modules/RepoAccessModuleTest.php',
     'Wikibase\\Lib\\Tests\\Modules\\SitesModuleTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/includes/modules/SitesModuleTest.php',
     'Wikibase\\Lib\\Tests\\Serialization\\CallbackFactoryTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/includes/serialization/CallbackFactoryTest.php',
+    'Wikibase\\Lib\\Tests\\Store\\EntityRevisionTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/store/EntityRevisionTest.php',
     'Wikibase\\Lib\\Tests\\Store\\RedirectRevisionTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/store/RedirectRevisionTest.php',
     'Wikibase\\Lib\\TimeDetailsFormatter' => $baseDir . 
'/extensions/Wikibase/lib/includes/formatters/TimeDetailsFormatter.php',
     'Wikibase\\Lib\\TypedValueFormatter' => $baseDir . 
'/extensions/Wikibase/lib/includes/TypedValueFormatter.php',
@@ -1530,24 +1494,6 @@
     'Wikibase\\View\\Template\\Template' => $baseDir . 
'/extensions/Wikibase/view/src/Template/Template.php',
     'Wikibase\\View\\Template\\TemplateFactory' => $baseDir . 
'/extensions/Wikibase/view/src/Template/TemplateFactory.php',
     'Wikibase\\View\\Template\\TemplateRegistry' => $baseDir . 
'/extensions/Wikibase/view/src/Template/TemplateRegistry.php',
-    'Wikibase\\View\\Tests\\ClaimHtmlGeneratorTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/ClaimHtmlGeneratorTest.php',
-    'Wikibase\\View\\Tests\\EmptyEditSectionGeneratorTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/EmptyEditSectionGeneratorTest.php',
-    'Wikibase\\View\\Tests\\EntityTermsViewTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/EntityTermsViewTest.php',
-    'Wikibase\\View\\Tests\\EntityViewFactoryTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/EntityViewFactoryTest.php',
-    'Wikibase\\View\\Tests\\EntityViewPlaceholderExpanderTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/EntityViewPlaceholderExpanderTest.php',
-    'Wikibase\\View\\Tests\\EntityViewTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/EntityViewTest.php',
-    'Wikibase\\View\\Tests\\ItemViewTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/ItemViewTest.php',
-    'Wikibase\\View\\Tests\\Module\\TemplateModuleTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/Module/TemplateModuleTest.php',
-    'Wikibase\\View\\Tests\\PropertyViewTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/PropertyViewTest.php',
-    'Wikibase\\View\\Tests\\SiteLinksViewTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/SiteLinksViewTest.php',
-    'Wikibase\\View\\Tests\\SnakHtmlGeneratorTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/SnakHtmlGeneratorTest.php',
-    'Wikibase\\View\\Tests\\StatementGroupListViewTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/StatementGroupListViewTest.php',
-    'Wikibase\\View\\Tests\\StatementSectionsViewTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/StatementSectionsViewTest.php',
-    'Wikibase\\View\\Tests\\Template\\TemplateFactoryTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/Template/TemplateFactoryTest.php',
-    'Wikibase\\View\\Tests\\Template\\TemplateRegistryTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/Template/TemplateRegistryTest.php',
-    'Wikibase\\View\\Tests\\Template\\TemplateTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/Template/TemplateTest.php',
-    'Wikibase\\View\\Tests\\TextInjectorTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/TextInjectorTest.php',
-    'Wikibase\\View\\Tests\\ToolbarEditSectionGeneratorTest' => $baseDir . 
'/extensions/Wikibase/view/tests/phpunit/ToolbarEditSectionGeneratorTest.php',
     'Wikibase\\View\\TextInjector' => $baseDir . 
'/extensions/Wikibase/view/src/TextInjector.php',
     'Wikibase\\View\\ToolbarEditSectionGenerator' => $baseDir . 
'/extensions/Wikibase/view/src/ToolbarEditSectionGenerator.php',
     'WikidataOrg\\Hooks' => $baseDir . 
'/extensions/Wikidata.org/WikidataOrg.hooks.php',
@@ -1563,14 +1509,7 @@
     'Wikimedia\\Purtle\\RdfWriter' => $baseDir . 
'/extensions/Wikibase/purtle/src/RdfWriter.php',
     'Wikimedia\\Purtle\\RdfWriterBase' => $baseDir . 
'/extensions/Wikibase/purtle/src/RdfWriterBase.php',
     'Wikimedia\\Purtle\\RdfWriterFactory' => $baseDir . 
'/extensions/Wikibase/purtle/src/RdfWriterFactory.php',
-    'Wikimedia\\Purtle\\Tests\\BNodeLabelerTest' => $baseDir . 
'/extensions/Wikibase/purtle/tests/phpunit/BNodeLabelerTest.php',
-    'Wikimedia\\Purtle\\Tests\\N3QuoterTest' => $baseDir . 
'/extensions/Wikibase/purtle/tests/phpunit/N3QuoterTest.php',
-    'Wikimedia\\Purtle\\Tests\\NTriplesRdfWriterTest' => $baseDir . 
'/extensions/Wikibase/purtle/tests/phpunit/NTriplesRdfWriterTest.php',
-    'Wikimedia\\Purtle\\Tests\\RdfWriterFactoryTest' => $baseDir . 
'/extensions/Wikibase/purtle/tests/phpunit/RdfWriterFactoryTest.php',
     'Wikimedia\\Purtle\\Tests\\RdfWriterTestBase' => $baseDir . 
'/extensions/Wikibase/purtle/tests/phpunit/RdfWriterTestBase.php',
-    'Wikimedia\\Purtle\\Tests\\TurtleRdfWriterTest' => $baseDir . 
'/extensions/Wikibase/purtle/tests/phpunit/TurtleRdfWriterTest.php',
-    'Wikimedia\\Purtle\\Tests\\UnicodeEscaperTest' => $baseDir . 
'/extensions/Wikibase/purtle/tests/phpunit/UnicodeEscaperTest.php',
-    'Wikimedia\\Purtle\\Tests\\XmlRdfWriterTest' => $baseDir . 
'/extensions/Wikibase/purtle/tests/phpunit/XmlRdfWriterTest.php',
     'Wikimedia\\Purtle\\TurtleRdfWriter' => $baseDir . 
'/extensions/Wikibase/purtle/src/TurtleRdfWriter.php',
     'Wikimedia\\Purtle\\UnicodeEscaper' => $baseDir . 
'/extensions/Wikibase/purtle/src/UnicodeEscaper.php',
     'Wikimedia\\Purtle\\XmlRdfWriter' => $baseDir . 
'/extensions/Wikibase/purtle/src/XmlRdfWriter.php',
diff --git a/vendor/composer/autoload_files.php 
b/vendor/composer/autoload_files.php
index 8f78466..8f5dd68 100644
--- a/vendor/composer/autoload_files.php
+++ b/vendor/composer/autoload_files.php
@@ -6,23 +6,23 @@
 $baseDir = dirname($vendorDir);
 
 return array(
-    '7cb394c3af2b1ae832979b0368e0da62' => $vendorDir . 
'/data-values/data-values/DataValues.php',
-    'd1715cacc3c23b16a030645514266a76' => $vendorDir . 
'/data-values/interfaces/Interfaces.php',
-    '90559502573a0d473dc66fde5c0ff7e2' => $vendorDir . 
'/data-values/common/Common.php',
-    'dc2c047038b9f5c71759f55f00aba99b' => $vendorDir . 
'/wikibase/data-model/WikibaseDataModel.php',
-    'f4c767faab43077fd89ff7cf99ffb4b8' => $vendorDir . 
'/serialization/serialization/Serialization.php',
-    '214ce90e7d14f0df3f891aa32034c535' => $vendorDir . 
'/data-values/javascript/DataValuesJavaScript.php',
-    '908a529187e4aa80293c8aa78e1ec48d' => $vendorDir . 
'/data-values/time/Time.php',
-    'c15f8000750e4e04ba559d9745044427' => $vendorDir . 
'/data-values/number/Number.php',
-    '5a494680c593293bd6035e42e2a6825c' => $vendorDir . 
'/data-values/geo/Geo.php',
-    '3ef87127dc6892a0a78f223558a0b940' => $vendorDir . '/diff/diff/Diff.php',
-    '449657c0add2acfae5f5a189e215d1ad' => $vendorDir . 
'/wikibase/data-model-serialization/mediawiki.php',
-    '4b37f72a623577cc8b75c6a738dc9d30' => $vendorDir . 
'/wikibase/data-model-javascript/init.php',
-    '499fed5dd24a6329f26a3973b04c5440' => $baseDir . 
'/extensions/ValueView/ValueView.php',
-    '3a1322766b0dbc9cf396163859b9f864' => $vendorDir . 
'/wikibase/serialization-javascript/init.php',
-    'e47bdf5a503f90444b98ecdcab719841' => $vendorDir . 
'/wikibase/internal-serialization/mediawiki.php',
-    'b27615ec50616984e4b07db5658aba0d' => $vendorDir . 
'/data-values/data-types/DataTypes.php',
-    'f44e0a54bf5f0864879c4d3e46950b49' => $vendorDir . 
'/wikibase/javascript-api/WikibaseJavaScriptApi.php',
-    '0dd9431cbbfa9ed9cb9d565d7129dbaf' => $vendorDir . 
'/data-values/validators/Validators.php',
-    '6b49d0287e368cb66263e04ca7d9699f' => $baseDir . 
'/extensions/WikimediaBadges/WikimediaBadges.php',
+    $vendorDir . '/data-values/data-values/DataValues.php',
+    $vendorDir . '/data-values/interfaces/Interfaces.php',
+    $vendorDir . '/data-values/common/Common.php',
+    $vendorDir . '/wikibase/data-model/WikibaseDataModel.php',
+    $vendorDir . '/serialization/serialization/Serialization.php',
+    $vendorDir . '/data-values/javascript/DataValuesJavaScript.php',
+    $vendorDir . '/data-values/time/Time.php',
+    $vendorDir . '/data-values/number/Number.php',
+    $vendorDir . '/data-values/geo/Geo.php',
+    $vendorDir . '/diff/diff/Diff.php',
+    $vendorDir . '/wikibase/data-model-serialization/mediawiki.php',
+    $vendorDir . '/wikibase/data-model-javascript/init.php',
+    $baseDir . '/extensions/ValueView/ValueView.php',
+    $vendorDir . '/wikibase/serialization-javascript/init.php',
+    $vendorDir . '/wikibase/internal-serialization/mediawiki.php',
+    $vendorDir . '/data-values/data-types/DataTypes.php',
+    $vendorDir . '/wikibase/javascript-api/WikibaseJavaScriptApi.php',
+    $vendorDir . '/data-values/validators/Validators.php',
+    $baseDir . '/extensions/WikimediaBadges/WikimediaBadges.php',
 );
diff --git a/vendor/composer/autoload_real.php 
b/vendor/composer/autoload_real.php
index e39db27..a3e2db2 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -23,6 +23,16 @@
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
         
spl_autoload_unregister(array('ComposerAutoloaderInit_mediawiki_extension_wikidata',
 'loadClassLoader'));
 
+        $map = require __DIR__ . '/autoload_namespaces.php';
+        foreach ($map as $namespace => $path) {
+            $loader->set($namespace, $path);
+        }
+
+        $map = require __DIR__ . '/autoload_psr4.php';
+        foreach ($map as $namespace => $path) {
+            $loader->setPsr4($namespace, $path);
+        }
+
         $classMap = require __DIR__ . '/autoload_classmap.php';
         if ($classMap) {
             $loader->addClassMap($classMap);
@@ -32,19 +42,15 @@
         $loader->register(false);
 
         $includeFiles = require __DIR__ . '/autoload_files.php';
-        foreach ($includeFiles as $fileIdentifier => $file) {
-            composerRequire_mediawiki_extension_wikidata($fileIdentifier, 
$file);
+        foreach ($includeFiles as $file) {
+            composerRequire_mediawiki_extension_wikidata($file);
         }
 
         return $loader;
     }
 }
 
-function composerRequire_mediawiki_extension_wikidata($fileIdentifier, $file)
+function composerRequire_mediawiki_extension_wikidata($file)
 {
-    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
-        require $file;
-
-        $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
-    }
+    require $file;
 }
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index cbeeb29..57eeb58 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -100,7 +100,6 @@
         ]
     },
     {
-<<<<<<< HEAD
         "name": "mediawiki/article-placeholder",
         "version": "dev-master",
         "version_normalized": "9999999-dev",
@@ -135,8 +134,6 @@
         "homepage": 
"https://www.mediawiki.org/wiki/Extension:ArticlePlaceholder";
     },
     {
-=======
->>>>>>> New Wikidata build - with fix for broken qunit test
         "name": "data-values/javascript",
         "version": "0.8.0",
         "version_normalized": "0.8.0.0",
@@ -1268,19 +1265,18 @@
         ]
     },
     {
-<<<<<<< HEAD
         "name": "wikibase/wikibase",
         "version": "dev-master",
         "version_normalized": "9999999-dev",
         "source": {
             "type": "git",
             "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-            "reference": "c204188248f3f7649ed7a061ace0a403df9d28eb"
+            "reference": "89c140be5f4eec33602d373e3d1d764009670daa"
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/c204188248f3f7649ed7a061ace0a403df9d28eb";,
-            "reference": "c204188248f3f7649ed7a061ace0a403df9d28eb",
+            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/89c140be5f4eec33602d373e3d1d764009670daa";,
+            "reference": "89c140be5f4eec33602d373e3d1d764009670daa",
             "shasum": ""
         },
         "require": {
@@ -1312,7 +1308,7 @@
             "jakub-onderka/php-parallel-lint": "0.9.2",
             "mediawiki/mediawiki-codesniffer": "0.4.0|0.5.0"
         },
-        "time": "2016-02-10 20:12:05",
+        "time": "2016-02-12 08:28:18",
         "type": "mediawiki-extension",
         "installation-source": "dist",
         "autoload": {
@@ -1356,8 +1352,6 @@
         ]
     },
     {
-=======
->>>>>>> New Wikidata build - with fix for broken qunit test
         "name": "wikibase/wikimedia-badges",
         "version": "dev-master",
         "version_normalized": "9999999-dev",
@@ -1656,127 +1650,6 @@
         "keywords": [
             "propertysuggester",
             "wikibase",
-            "wikidata"
-        ]
-    },
-    {
-        "name": "mediawiki/article-placeholder",
-        "version": "dev-master",
-        "version_normalized": "9999999-dev",
-        "source": {
-            "type": "git",
-            "url": 
"https://github.com/wikimedia/mediawiki-extensions-ArticlePlaceholder.git";,
-            "reference": "1ee5134feab8e42a52fc91c4712f2d9f248092c2"
-        },
-        "dist": {
-            "type": "zip",
-            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/1ee5134feab8e42a52fc91c4712f2d9f248092c2";,
-            "reference": "1ee5134feab8e42a52fc91c4712f2d9f248092c2",
-            "shasum": ""
-        },
-        "require-dev": {
-            "jakub-onderka/php-parallel-lint": "0.9.2",
-            "mediawiki/mediawiki-codesniffer": "0.5.1"
-        },
-        "time": "2016-02-10 20:08:26",
-        "type": "mediawiki-extension",
-        "installation-source": "dist",
-        "notification-url": "https://packagist.org/downloads/";,
-        "license": [
-            "GPL-2.0+"
-        ],
-        "authors": [
-            {
-                "name": "Lucie-Aimée Kaffee"
-            }
-        ],
-        "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";
-    },
-    {
-        "name": "wikibase/wikibase",
-        "version": "dev-master",
-        "version_normalized": "9999999-dev",
-        "source": {
-            "type": "git",
-            "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-            "reference": "ef7910c636664ff5e64ab609f37d0db4145b4db3"
-        },
-        "dist": {
-            "type": "zip",
-            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/ef7910c636664ff5e64ab609f37d0db4145b4db3";,
-            "reference": "ef7910c636664ff5e64ab609f37d0db4145b4db3",
-            "shasum": ""
-        },
-        "require": {
-            "data-values/common": "~0.3.0",
-            "data-values/data-types": "~0.5.0",
-            "data-values/data-values": "~1.0",
-            "data-values/geo": "~1.0",
-            "data-values/interfaces": "~0.2.0|~0.1.5",
-            "data-values/javascript": "~0.8.0",
-            "data-values/number": "~0.6.0",
-            "data-values/serialization": "~1.0",
-            "data-values/time": "~0.8.2",
-            "data-values/validators": "~0.1.0",
-            "data-values/value-view": "~0.15.11",
-            "diff/diff": "~2.0",
-            "php": ">=5.3.2",
-            "wikibase/data-model": "~4.0",
-            "wikibase/data-model-javascript": "~2.0.0",
-            "wikibase/data-model-serialization": "~2.0",
-            "wikibase/data-model-services": "^3.2.0",
-            "wikibase/internal-serialization": "~2.0",
-            "wikibase/javascript-api": "~1.0",
-            "wikibase/serialization-javascript": "~2.0.5"
-        },
-        "conflict": {
-            "mediawiki/mediawiki": "<1.25"
-        },
-        "require-dev": {
-            "jakub-onderka/php-parallel-lint": "0.9.2",
-            "mediawiki/mediawiki-codesniffer": "0.4.0|0.5.0"
-        },
-        "time": "2016-02-11 13:36:27",
-        "type": "mediawiki-extension",
-        "installation-source": "dist",
-        "autoload": {
-            "classmap": [
-                "client/includes/",
-                "client/WikibaseClient.hooks.php",
-                "client/tests/phpunit/",
-                "lib/includes/",
-                "lib/WikibaseLib.hooks.php",
-                "lib/maintenance/",
-                "lib/tests/phpunit/",
-                "repo/includes/",
-                "repo/maintenance/",
-                "repo/tests/phpunit/",
-                "repo/Wikibase.hooks.php"
-            ],
-            "psr-4": {
-                "Wikibase\\View\\": "view/src",
-                "Wikibase\\View\\Tests\\": "view/tests/phpunit",
-                "Wikimedia\\Purtle\\": "purtle/src",
-                "Wikimedia\\Purtle\\Tests\\": "purtle/tests/phpunit"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/";,
-        "license": [
-            "GPL-2.0+"
-        ],
-        "authors": [
-            {
-                "name": "The Wikidata team"
-            }
-        ],
-        "description": "Structured data repository for MediaWiki",
-        "homepage": "http://wikiba.se";,
-        "keywords": [
-            "wikibase",
-            "wikibaseclient",
-            "wikibaselib",
-            "wikibaserepo",
             "wikidata"
         ]
     }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I6be665fb993e8b5468f16ec2b2059f64f57f05d4
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: master
Gerrit-Owner: WikidataBuilder <wikidata-servi...@wikimedia.de>
Gerrit-Reviewer: Addshore <addshorew...@gmail.com>
Gerrit-Reviewer: Aude <aude.w...@gmail.com>
Gerrit-Reviewer: JanZerebecki <jan.wikime...@zerebecki.de>
Gerrit-Reviewer: Siebrand <siebr...@kitano.nl>
Gerrit-Reviewer: Tobias Gritschacher <tobias.gritschac...@wikimedia.de>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to