Tobias Gritschacher has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/169998

Change subject: New Wikidata Build - 2014/10/30
......................................................................

New Wikidata Build - 2014/10/30

Change-Id: Ie70f4a0ec37418a041cd814bcbe233491ac727dd
---
M WikibaseClient.settings.php
M WikibaseRepo.settings.php
M composer.lock
M extensions/Wikibase/client/WikibaseClient.hooks.php
M 
extensions/Wikibase/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js
A extensions/Wikibase/lib/includes/store/EntityTermLookup.php
A extensions/Wikibase/lib/includes/store/LabelLookup.php
A extensions/Wikibase/lib/includes/store/LanguageFallbackLabelLookup.php
A extensions/Wikibase/lib/includes/store/LanguageLabelLookup.php
M extensions/Wikibase/lib/includes/store/TermIndex.php
A extensions/Wikibase/lib/includes/store/TermLookup.php
M 
extensions/Wikibase/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
M 
extensions/Wikibase/lib/resources/jquery.wikibase/toolbar/jquery.wikibase.toolbarbutton.js
M extensions/Wikibase/lib/tests/phpunit/NoBadDependencyUsageTest.php
A extensions/Wikibase/lib/tests/phpunit/store/EntityTermLookupTest.php
A 
extensions/Wikibase/lib/tests/phpunit/store/LanguageFallbackLabelLookupTest.php
A extensions/Wikibase/lib/tests/phpunit/store/LanguageLabelLookupTest.php
M extensions/Wikibase/lib/tests/phpunit/store/MockTermIndex.php
M 
extensions/Wikibase/lib/tests/qunit/jquery.wikibase/jquery.wikibase.entityview.tests.js
M extensions/Wikibase/repo/Wikibase.i18n.alias.php
M extensions/Wikibase/repo/i18n/zh-hant.json
M extensions/Wikibase/repo/includes/View/FingerprintView.php
M vendor/autoload.php
M vendor/composer/autoload_classmap.php
M vendor/composer/autoload_real.php
M vendor/composer/installed.json
26 files changed, 690 insertions(+), 61 deletions(-)


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

diff --git a/WikibaseClient.settings.php b/WikibaseClient.settings.php
index 7dcc8a1..cdcfe01 100644
--- a/WikibaseClient.settings.php
+++ b/WikibaseClient.settings.php
@@ -1,2 +1,2 @@
 <?php
-$wgWBClientSettings["sharedCacheKeyPrefix"] = "wikibase:WBL/1414575514";
\ No newline at end of file
+$wgWBClientSettings["sharedCacheKeyPrefix"] = "wikibase:WBL/1414660416";
\ No newline at end of file
diff --git a/WikibaseRepo.settings.php b/WikibaseRepo.settings.php
index 89f4c63..6cefc0e 100644
--- a/WikibaseRepo.settings.php
+++ b/WikibaseRepo.settings.php
@@ -1,2 +1,2 @@
 <?php
-$wgWBRepoSettings["sharedCacheKeyPrefix"] = "wikibase:WBL/1414575514";
\ No newline at end of file
+$wgWBRepoSettings["sharedCacheKeyPrefix"] = "wikibase:WBL/1414660416";
\ No newline at end of file
diff --git a/composer.lock b/composer.lock
index 815e914..3c6a90b 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1203,12 +1203,12 @@
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-                "reference": "0cbf92eb74ccde368ebcc53b9a5828ac2e336b7d"
+                "reference": "3e5ecbf1d8eef4fc4f8f2ff70fd211e08d855eb4"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/0cbf92eb74ccde368ebcc53b9a5828ac2e336b7d";,
-                "reference": "0cbf92eb74ccde368ebcc53b9a5828ac2e336b7d",
+                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/3e5ecbf1d8eef4fc4f8f2ff70fd211e08d855eb4";,
+                "reference": "3e5ecbf1d8eef4fc4f8f2ff70fd211e08d855eb4",
                 "shasum": ""
             },
             "require": {
@@ -1274,7 +1274,7 @@
                 "wikibaserepo",
                 "wikidata"
             ],
-            "time": "2014-10-28 22:27:04"
+            "time": "2014-10-29 22:42:41"
         },
         {
             "name": "wikibase/wikimedia-badges",
diff --git a/extensions/Wikibase/client/WikibaseClient.hooks.php 
b/extensions/Wikibase/client/WikibaseClient.hooks.php
index 4deaaf2..3879270 100644
--- a/extensions/Wikibase/client/WikibaseClient.hooks.php
+++ b/extensions/Wikibase/client/WikibaseClient.hooks.php
@@ -35,6 +35,7 @@
 use Wikibase\Client\RecentChanges\RecentChangesFilterOptions;
 use Wikibase\Client\RepoItemLinkGenerator;
 use Wikibase\Client\WikibaseClient;
+use Wikibase\DataModel\SiteLink;
 
 /**
  * File defining the hook handlers for the Wikibase Client extension.
@@ -338,22 +339,43 @@
         * @return bool
         */
        public static function onBaseTemplateToolbox( QuickTemplate &$sk, 
&$toolbox ) {
+               $wikibaseClient = WikibaseClient::getDefaultInstance();
+               $title = $sk->getSkin()->getTitle();
                $prefixedId = $sk->getSkin()->getOutput()->getProperty( 
'wikibase_item' );
 
+               // Try to load the item ID from Database, but only do so on 
non-article views,
+               // (where the article's OutputPage isn't available to us).
+               $doExpensiveLookup =
+                       $title &&
+                       Action::getActionName( $sk->getSkin()->getContext() ) 
!== 'view' &&
+                       self::isWikibaseEnabled( $title->getNamespace() );
+
+               $entityId = null;
                if ( $prefixedId !== null ) {
-                       $entityIdParser = 
WikibaseClient::getDefaultInstance()->getEntityIdParser();
+                       $entityIdParser = $wikibaseClient->getEntityIdParser();
                        $entityId = $entityIdParser->parse( $prefixedId );
-
-                       $repoLinker = 
WikibaseClient::getDefaultInstance()->newRepoLinker();
-                       $itemLink = $repoLinker->getEntityUrl( $entityId );
-
-                       $toolbox['wikibase'] = array(
-                               'text' => $sk->getMsg( 'wikibase-dataitem' 
)->text(),
-                               'href' => $itemLink,
-                               'id' => 't-wikibase'
+               } else if ( $doExpensiveLookup ) {
+                       $entityId = 
$wikibaseClient->getStore()->getSiteLinkTable()->getEntityIdForSiteLink(
+                               new SiteLink(
+                                       
$wikibaseClient->getSite()->getGlobalId(),
+                                       $title->getFullText()
+                               )
                        );
                }
 
+               if ( !$entityId ) {
+                       return true;
+               }
+
+               $repoLinker = $wikibaseClient->newRepoLinker();
+               $itemLink = $repoLinker->getEntityUrl( $entityId );
+
+               $toolbox['wikibase'] = array(
+                       'text' => $sk->getMsg( 'wikibase-dataitem' )->text(),
+                       'href' => $itemLink,
+                       'id' => 't-wikibase'
+               );
+
                return true;
        }
 
diff --git 
a/extensions/Wikibase/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js
 
b/extensions/Wikibase/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js
index 008d35b..bb9c37e 100644
--- 
a/extensions/Wikibase/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js
+++ 
b/extensions/Wikibase/client/resources/jquery.wikibase/jquery.wikibase.linkitem.js
@@ -347,7 +347,7 @@
                this.targetArticle = $( '#wbclient-linkItem-page' ).val();
 
                this._pageConnector = new wb.PageConnector(
-                       new wb.RepoApi( this._mwApiForRepo ),
+                       new wb.RepoApi( this.options.mwApiForRepo ),
                        this.options.globalSiteId,
                        this.options.pageTitle,
                        this.targetSite,
diff --git a/extensions/Wikibase/lib/includes/store/EntityTermLookup.php 
b/extensions/Wikibase/lib/includes/store/EntityTermLookup.php
new file mode 100644
index 0000000..a8b282b
--- /dev/null
+++ b/extensions/Wikibase/lib/includes/store/EntityTermLookup.php
@@ -0,0 +1,116 @@
+<?php
+
+namespace Wikibase\Lib\Store;
+
+use OutOfBoundsException;
+use Wikibase\DataModel\Entity\EntityId;
+use Wikibase\TermIndex;
+
+/**
+ * @since 0.5
+ *
+ * @licence GNU GPL v2+
+ * @author Katie Filbert < [email protected] >
+ */
+class EntityTermLookup implements TermLookup {
+
+       /**
+        * @var TermIndex
+        */
+       private $termIndex;
+
+       /**
+        * @param TermIndex $termIndex
+        */
+       public function __construct( TermIndex $termIndex ) {
+               $this->termIndex = $termIndex;
+       }
+
+       /**
+        * @param EntityId $entityId
+        * @param string $languageCode
+        *
+        * @throws OutOfBoundsException
+        * @return string
+        */
+       public function getLabel( EntityId $entityId, $languageCode ) {
+               $labels = $this->getLabels( $entityId );
+               return $this->filterByLanguage( $labels, $languageCode );
+       }
+
+       /**
+        * @param EntityId $entityId
+        *
+        * @return string[]
+        */
+       public function getLabels( EntityId $entityId ) {
+               return $this->getTermsOfType( $entityId, 'label' );
+       }
+
+       /**
+        * @param EntityId $entityId
+        * @param string $languageCode
+        *
+        * @throws OutOfBoundsException
+        * @return string
+        */
+       public function getDescription( EntityId $entityId, $languageCode ) {
+               $descriptions = $this->getTermsOfType( $entityId, 'description' 
);
+               return $this->filterByLanguage( $descriptions, $languageCode );
+       }
+
+       /**
+        * @param EntityId $entityId
+        *
+        * @return string[]
+        */
+       public function getDescriptions( EntityId $entityId ) {
+               return $this->getTermsOfType( $entityId, 'description' );
+       }
+
+       /**
+        * @param EntityId $entityId
+        * @param string $termType
+        *
+        * @return string[]
+        */
+       private function getTermsOfType( EntityId $entityId, $termType ) {
+               $wikibaseTerms = $this->termIndex->getTermsOfEntity( $entityId 
);
+               return $this->convertTermsToTermTypeArray( $wikibaseTerms, 
$termType );
+       }
+
+       /**
+        * @param string[] $labels
+        * @param string $languageCode
+        *
+        * @throws OutOfBoundsException
+        * @return string
+        */
+       private function filterByLanguage( array $labels, $languageCode ) {
+               if ( array_key_exists( $languageCode, $labels ) ) {
+                       return $labels[$languageCode];
+               }
+
+               throw new OutOfBoundsException( 'Label not found for ' . 
$languageCode );
+       }
+
+       /**
+        * @param \Wikibase\Term[] $wikibaseTerms
+        * @param string $termType
+        *
+        * @return string[]
+        */
+       private function convertTermsToTermTypeArray( array $wikibaseTerms, 
$termType ) {
+               $terms = array();
+
+               foreach( $wikibaseTerms as $wikibaseTerm ) {
+                       if ( $wikibaseTerm->getType() === $termType ) {
+                               $languageCode = $wikibaseTerm->getLanguage();
+                               $terms[$languageCode] = 
$wikibaseTerm->getText();
+                       }
+               }
+
+               return $terms;
+       }
+
+}
diff --git a/extensions/Wikibase/lib/includes/store/LabelLookup.php 
b/extensions/Wikibase/lib/includes/store/LabelLookup.php
new file mode 100644
index 0000000..2c9d947
--- /dev/null
+++ b/extensions/Wikibase/lib/includes/store/LabelLookup.php
@@ -0,0 +1,24 @@
+<?php
+
+namespace Wikibase\Lib\Store;
+
+use OutOfBoundsException;
+use Wikibase\DataModel\Entity\EntityId;
+
+/**
+ * @since 0.5
+ *
+ * @licence GNU GPL v2+
+ * @author Katie Filbert < [email protected] >
+ */
+interface LabelLookup {
+
+       /**
+        * @param EntityId $entityId
+        *
+        * @throws OutOfBoundsException
+        * @return string
+        */
+       public function getLabel( EntityId $entityId );
+
+}
diff --git 
a/extensions/Wikibase/lib/includes/store/LanguageFallbackLabelLookup.php 
b/extensions/Wikibase/lib/includes/store/LanguageFallbackLabelLookup.php
new file mode 100644
index 0000000..1c93bb3
--- /dev/null
+++ b/extensions/Wikibase/lib/includes/store/LanguageFallbackLabelLookup.php
@@ -0,0 +1,56 @@
+<?php
+
+namespace Wikibase\Lib\Store;
+
+use OutOfBoundsException;
+use Wikibase\DataModel\Entity\EntityId;
+use Wikibase\LanguageFallbackChain;
+
+/**
+ * @since 0.5
+ *
+ * @licence GNU GPL v2+
+ * @author Katie Filbert < [email protected] >
+ */
+class LanguageFallbackLabelLookup implements LabelLookup {
+
+       /**
+        * @var TermLookup
+        */
+       private $termLookup;
+
+       /**
+        * @var LanguageFallbackChain
+        */
+       private $languageFallbackChain;
+
+       /**
+        * @param TermLookup $termLookup
+        * @param LanguageFallbackChain $languageFallbackChain
+        */
+       public function __construct(
+               TermLookup $termLookup,
+               LanguageFallbackChain $languageFallbackChain
+       ) {
+               $this->termLookup = $termLookup;
+               $this->languageFallbackChain = $languageFallbackChain;
+       }
+
+       /**
+        * @param EntityId $entityId
+        *
+        * @throws OutOfBoundsException
+        * @return string
+        */
+       public function getLabel( EntityId $entityId ) {
+               $labels = $this->termLookup->getLabels( $entityId );
+               $extractedData = 
$this->languageFallbackChain->extractPreferredValue( $labels );
+
+               if ( $extractedData && isset( $extractedData['value'] ) ) {
+                       return $extractedData['value'];
+               }
+
+               throw new OutOfBoundsException( 'Label not found for fallback 
chain.' );
+       }
+
+}
diff --git a/extensions/Wikibase/lib/includes/store/LanguageLabelLookup.php 
b/extensions/Wikibase/lib/includes/store/LanguageLabelLookup.php
new file mode 100644
index 0000000..75020f5
--- /dev/null
+++ b/extensions/Wikibase/lib/includes/store/LanguageLabelLookup.php
@@ -0,0 +1,45 @@
+<?php
+
+namespace Wikibase\Lib\Store;
+
+use OutOfBoundsException;
+use Wikibase\DataModel\Entity\EntityId;
+
+/**
+ * @since 0.5
+ *
+ * @licence GNU GPL v2+
+ * @author Katie Filbert < [email protected] >
+ */
+class LanguageLabelLookup implements LabelLookup {
+
+       /**
+        * @var TermLookup
+        */
+       private $termLookup;
+
+       /**
+        * @var string
+        */
+       private $languageCode;
+
+       /**
+        * @param TermLookup $termLookup
+        * @param string $languageCode
+        */
+       public function __construct( TermLookup $termLookup, $languageCode ) {
+               $this->termLookup = $termLookup;
+               $this->languageCode = $languageCode;
+       }
+
+       /**
+        * @param EntityId $entityId
+        *
+        * @throws OutOfBoundsException
+        * @return string
+        */
+       public function getLabel( EntityId $entityId ) {
+               return $this->termLookup->getLabel( $entityId, 
$this->languageCode );
+       }
+
+}
diff --git a/extensions/Wikibase/lib/includes/store/TermIndex.php 
b/extensions/Wikibase/lib/includes/store/TermIndex.php
index 3ee94e9..8b36af2 100644
--- a/extensions/Wikibase/lib/includes/store/TermIndex.php
+++ b/extensions/Wikibase/lib/includes/store/TermIndex.php
@@ -57,11 +57,11 @@
        /**
         * Returns the terms stored for the given entity.
         *
-        * @param EntityId $id
+        * @param EntityId $entityId
         *
         * @return Term[]
         */
-       public function getTermsOfEntity( EntityId $id );
+       public function getTermsOfEntity( EntityId $entityId );
 
        /**
         * Returns the terms stored for the given entities. Can be filtered by 
language.
diff --git a/extensions/Wikibase/lib/includes/store/TermLookup.php 
b/extensions/Wikibase/lib/includes/store/TermLookup.php
new file mode 100644
index 0000000..75bc490
--- /dev/null
+++ b/extensions/Wikibase/lib/includes/store/TermLookup.php
@@ -0,0 +1,53 @@
+<?php
+
+namespace Wikibase\Lib\Store;
+
+use Wikibase\DataModel\Entity\EntityId;
+
+/**
+ * @since 0.5
+ *
+ * @licence GNU GPL v2+
+ * @author Katie Filbert < [email protected] >
+ */
+interface TermLookup {
+
+       /**
+        * Gets the label of an Entity with the specified EntityId and language 
code.
+        *
+        * @param EntityId $entityId
+        * @param string $languageCode
+        *
+        * @return string
+        */
+       public function getLabel( EntityId $entityId, $languageCode );
+
+       /**
+        * Gets all labels of an Entity with the specified EntityId.
+        *
+        * @param EntityId $entityId
+        *
+        * @return string[]
+        */
+       public function getLabels( EntityId $entityId );
+
+       /**
+        * Gets the description of an Entity with the specified EntityId and 
language code.
+        *
+        * @param EntityId $entityId
+        * @param string $languageCode
+        *
+        * @return string
+        */
+       public function getDescription( EntityId $entityId, $languageCode );
+
+       /**
+        * Gets all descriptions of an Entity with the specified EntityId.
+        *
+        * @param EntityId $entityId
+        *
+        * @return string[]
+        */
+       public function getDescriptions( EntityId $entityId );
+
+}
diff --git 
a/extensions/Wikibase/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
 
b/extensions/Wikibase/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
index 6d0613c..7d627b2 100644
--- 
a/extensions/Wikibase/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
+++ 
b/extensions/Wikibase/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
@@ -100,7 +100,8 @@
                                        newItemOptionsFn: function( value ) {
                                                var index = indexOf( value, 
self.value().getReferences() );
                                                if( index === null ) {
-                                                       index = 
self._referencesListview.items().length;
+                                                       // The empty list view 
item for this is already appended to the list view
+                                                       index = 
self._referencesListview.items().length - 1;
                                                }
                                                return {
                                                        value: value || null,
diff --git 
a/extensions/Wikibase/lib/resources/jquery.wikibase/toolbar/jquery.wikibase.toolbarbutton.js
 
b/extensions/Wikibase/lib/resources/jquery.wikibase/toolbar/jquery.wikibase.toolbarbutton.js
index c97c9a9..ae2ec89 100644
--- 
a/extensions/Wikibase/lib/resources/jquery.wikibase/toolbar/jquery.wikibase.toolbarbutton.js
+++ 
b/extensions/Wikibase/lib/resources/jquery.wikibase/toolbar/jquery.wikibase.toolbarbutton.js
@@ -56,7 +56,7 @@
                }
 
                this.$link
-               .on( 'click.toolbarbutton keydow.toolbarbutton', function( 
event ) {
+               .on( 'click.toolbarbutton keydown.toolbarbutton', function( 
event ) {
                        event.preventDefault();
 
                        if( self.options.disabled ) {
diff --git a/extensions/Wikibase/lib/tests/phpunit/NoBadDependencyUsageTest.php 
b/extensions/Wikibase/lib/tests/phpunit/NoBadDependencyUsageTest.php
index b33e3d0..d0ec71c 100644
--- a/extensions/Wikibase/lib/tests/phpunit/NoBadDependencyUsageTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/NoBadDependencyUsageTest.php
@@ -26,31 +26,10 @@
                $this->assertStringNotInLib( 'Wikibase\\Client\\', 3 );
        }
 
-       public function testNoSettingsUsageOutsideLib() {
-               // Increasing this allowance is forbidden
-               $this->assertStringNotInRepo( 'Settings::', 1 );
-               $this->assertStringNotInClient( 'Settings::', 1 );
-       }
-
        private function assertStringNotInLib( $string, $maxAllowance ) {
                $this->assertStringNotInDir(
                        $string,
                        __DIR__ . '/../../',
-                       $maxAllowance
-               );
-       }
-       private function assertStringNotInClient( $string, $maxAllowance ) {
-               $this->assertStringNotInDir(
-                       $string,
-                       __DIR__ . '/../../../client/',
-                       $maxAllowance
-               );
-       }
-
-       private function assertStringNotInRepo( $string, $maxAllowance ) {
-               $this->assertStringNotInDir(
-                       $string,
-                       __DIR__ . '/../../../repo/',
                        $maxAllowance
                );
        }
diff --git 
a/extensions/Wikibase/lib/tests/phpunit/store/EntityTermLookupTest.php 
b/extensions/Wikibase/lib/tests/phpunit/store/EntityTermLookupTest.php
new file mode 100644
index 0000000..c237da9
--- /dev/null
+++ b/extensions/Wikibase/lib/tests/phpunit/store/EntityTermLookupTest.php
@@ -0,0 +1,137 @@
+<?php
+
+namespace Wikibase\Test;
+
+use Wikibase\DataModel\Entity\EntityId;
+use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\Lib\Store\EntityTermLookup;
+
+class EntityTermLookupTest extends \MediaWikiTestCase {
+
+       public function testGetLabel() {
+               $termLookup = $this->getEntityTermLookup();
+
+               $label = $termLookup->getLabel( new ItemId( 'Q116' ), 'en' );
+               $this->assertEquals( 'New York City', $label );
+       }
+
+       public function testGetLabel_notFoundThrowsException() {
+               $termLookup = $this->getEntityTermLookup();
+
+               $this->setExpectedException( 'OutOfBoundsException' );
+               $termLookup->getLabel( new ItemId( 'Q120' ), 'en' );
+       }
+
+       /**
+        * @dataProvider getLabelsProvider
+        */
+       public function testGetLabels( $expected, EntityId $entityId ) {
+               $termLookup = $this->getEntityTermLookup();
+
+               $labels = $termLookup->getLabels( $entityId );
+               $this->assertEquals( $expected, $labels );
+       }
+
+       public function getLabelsProvider() {
+               return array(
+                       array(
+                               array( 'en' => 'New York City', 'es' => 'Nueva 
York' ),
+                               new ItemId( 'Q116' )
+                       ),
+                       array(
+                               array(),
+                               new ItemId( 'Q120' )
+                       )
+               );
+       }
+
+       public function testGetDescription() {
+               $termLookup = $this->getEntityTermLookup();
+
+               $description = $termLookup->getDescription( new ItemId( 'Q116' 
), 'de' );
+               $expected = 'Metropole an der Ostküste der Vereinigten Staaten';
+
+               $this->assertEquals( $expected, $description );
+       }
+
+       public function testGetDescription_notFoundThrowsException() {
+               $termLookup = $this->getEntityTermLookup();
+
+               $this->setExpectedException( 'OutOfBoundsException' );
+               $termLookup->getDescription( new ItemId( 'Q90000' ), 'fr' );
+       }
+
+       /**
+        * @dataProvider getDescriptionsProvider
+        */
+       public function getDescriptions( $expected, EntityId $entityId ) {
+               $termLookup = $this->getEntityTermLookup();
+
+               $descriptions = $termLookup->getDescriptions( $entityId );
+               $this->assertEquals( $expected, $descriptions );
+       }
+
+       public function getDescriptionsProvider() {
+               return array(
+                       array(
+                               array(
+                                       'de' => 'Metropole an der Ostküste der 
Vereinigten Staaten',
+                                       'en' => 'largest city in New York and 
the United States of America',
+                               ),
+                               new ItemId( 'Q116' )
+                       ),
+                       array(
+                               array(),
+                               new ItemId( 'Q90001' )
+                       )
+               );
+       }
+
+       private function getEntityTermLookup() {
+               $termIndex = $this->getTermIndex();
+               return new EntityTermLookup( $termIndex );
+       }
+
+       private function getTermIndex() {
+               $terms = array(
+                       new \Wikibase\Term( array(
+                               'entityId' => 116,
+                               'entityType' => 'item',
+                               'termType' => 'label',
+                               'termLanguage' => 'en',
+                               'termText' => 'New York City'
+                       ) ),
+                       new \Wikibase\Term( array(
+                               'entityId' => 116,
+                               'entityType' => 'item',
+                               'termType' => 'label',
+                               'termLanguage' => 'es',
+                               'termText' => 'Nueva York'
+                       ) ),
+                       new \Wikibase\Term( array(
+                               'entityId' => 116,
+                               'entityType' => 'item',
+                               'termType' => 'description',
+                               'termLanguage' => 'en',
+                               'termText' => 'largest city in New York and the 
United States of America'
+                       ) ),
+                       new \Wikibase\Term( array(
+                               'entityId' => 116,
+                               'entityType' => 'item',
+                               'termType' => 'description',
+                               'termLanguage' => 'de',
+                               'termText' => 'Metropole an der Ostküste der 
Vereinigten Staaten'
+                       ) ),
+                       new \Wikibase\Term( array(
+                               'entityId' => 117,
+                               'entityType' => 'item',
+                               'termType' => 'label',
+                               'termLanguage' => 'en',
+                               'termText' => 'Berlin'
+                       ) ),
+               );
+
+               return new MockTermIndex( $terms );
+       }
+
+}
diff --git 
a/extensions/Wikibase/lib/tests/phpunit/store/LanguageFallbackLabelLookupTest.php
 
b/extensions/Wikibase/lib/tests/phpunit/store/LanguageFallbackLabelLookupTest.php
new file mode 100644
index 0000000..470ffd4
--- /dev/null
+++ 
b/extensions/Wikibase/lib/tests/phpunit/store/LanguageFallbackLabelLookupTest.php
@@ -0,0 +1,77 @@
+<?php
+
+namespace Wikibase\Test;
+
+use Language;
+use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\LanguageFallbackChainFactory;
+use Wikibase\Lib\Store\EntityTermLookup;
+use Wikibase\Lib\Store\LanguageFallbackLabelLookup;
+
+class LanguageFallbackLabelLookupTest extends \MediaWikiTestCase {
+
+       public function testGetLabel() {
+               $languageFallbackChainFactory = new 
LanguageFallbackChainFactory();
+               $fallbackChain = 
$languageFallbackChainFactory->newFromLanguage( Language::factory( 'zh' ) );
+
+               $termLookup = new EntityTermLookup( $this->getTermIndex() );
+               $labelLookup = new LanguageFallbackLabelLookup( $termLookup, 
$fallbackChain );
+
+               $label = $labelLookup->getLabel( new ItemId( 'Q118' ) );
+               $this->assertEquals( '测试', $label );
+       }
+
+       public function testGetLabel_notFound() {
+               $languageFallbackChainFactory = new 
LanguageFallbackChainFactory();
+               $fallbackChain = 
$languageFallbackChainFactory->newFromLanguage( Language::factory( 'zh' ) );
+
+               $termLookup = new EntityTermLookup( $this->getTermIndex() );
+               $labelLookup = new LanguageFallbackLabelLookup( $termLookup, 
$fallbackChain );
+
+               $this->setExpectedException( 'OutOfBoundsException' );
+               $label = $labelLookup->getLabel( new ItemId( 'Q120' ) );
+       }
+
+       private function getTermIndex() {
+               $terms = array(
+                       new \Wikibase\Term( array(
+                               'entityId' => 116,
+                               'entityType' => 'item',
+                               'termType' => 'label',
+                               'termLanguage' => 'en',
+                               'termText' => 'New York City'
+                       ) ),
+                       new \Wikibase\Term( array(
+                               'entityId' => 116,
+                               'entityType' => 'item',
+                               'termType' => 'label',
+                               'termLanguage' => 'es',
+                               'termText' => 'New York City'
+                       ) ),
+                       new \Wikibase\Term( array(
+                               'entityId' => 116,
+                               'entityType' => 'item',
+                               'termType' => 'description',
+                               'termLanguage' => 'en',
+                               'termText' => 'Big Apple'
+                       ) ),
+                       new \Wikibase\Term( array(
+                               'entityId' => 117,
+                               'entityType' => 'item',
+                               'termType' => 'label',
+                               'termLanguage' => 'en',
+                               'termText' => 'Berlin'
+                       ) ),
+                       new \Wikibase\Term( array(
+                               'entityId' => 118,
+                               'entityType' => 'item',
+                               'termType' => 'label',
+                               'termLanguage' => 'zh-cn',
+                               'termText' => '测试'
+                       ) ),
+               );
+
+               return new MockTermIndex( $terms );
+       }
+
+}
diff --git 
a/extensions/Wikibase/lib/tests/phpunit/store/LanguageLabelLookupTest.php 
b/extensions/Wikibase/lib/tests/phpunit/store/LanguageLabelLookupTest.php
new file mode 100644
index 0000000..27aeefa
--- /dev/null
+++ b/extensions/Wikibase/lib/tests/phpunit/store/LanguageLabelLookupTest.php
@@ -0,0 +1,70 @@
+<?php
+
+namespace Wikibase\Test;
+
+use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\Lib\Store\EntityTermLookup;
+use Wikibase\Lib\Store\LanguageLabelLookup;
+
+class LanguageLabelLookupTest extends \MediaWikiTestCase {
+
+       public function testGetLabel() {
+               $termLookup = new EntityTermLookup( $this->getTermIndex() );
+               $labelLookup = new LanguageLabelLookup( $termLookup, 'en' );
+
+               $label = $labelLookup->getLabel( new ItemId( 'Q116' ) );
+
+               $this->assertEquals( 'New York City', $label );
+       }
+
+       public function testGetLabel_notFound() {
+               $termLookup = new EntityTermLookup( $this->getTermIndex() );
+               $labelLookup = new LanguageLabelLookup( $termLookup, 'en' );
+
+               $this->setExpectedException( 'OutOfBoundsException' );
+               $label = $labelLookup->getLabel( new ItemId( 'Q120' ) );
+       }
+
+       private function getTermIndex() {
+               $terms = array(
+                       new \Wikibase\Term( array(
+                               'entityId' => 116,
+                               'entityType' => 'item',
+                               'termType' => 'label',
+                               'termLanguage' => 'en',
+                               'termText' => 'New York City'
+                       ) ),
+                       new \Wikibase\Term( array(
+                               'entityId' => 116,
+                               'entityType' => 'item',
+                               'termType' => 'label',
+                               'termLanguage' => 'es',
+                               'termText' => 'New York City'
+                       ) ),
+                       new \Wikibase\Term( array(
+                               'entityId' => 116,
+                               'entityType' => 'item',
+                               'termType' => 'description',
+                               'termLanguage' => 'en',
+                               'termText' => 'Big Apple'
+                       ) ),
+                       new \Wikibase\Term( array(
+                               'entityId' => 117,
+                               'entityType' => 'item',
+                               'termType' => 'label',
+                               'termLanguage' => 'en',
+                               'termText' => 'Berlin'
+                       ) ),
+                       new \Wikibase\Term( array(
+                               'entityId' => 118,
+                               'entityType' => 'item',
+                               'termType' => 'label',
+                               'termLanguage' => 'zh-cn',
+                               'termText' => '测试'
+                       ) ),
+               );
+
+               return new MockTermIndex( $terms );
+       }
+
+}
diff --git a/extensions/Wikibase/lib/tests/phpunit/store/MockTermIndex.php 
b/extensions/Wikibase/lib/tests/phpunit/store/MockTermIndex.php
index 24cf50c..f92570e 100644
--- a/extensions/Wikibase/lib/tests/phpunit/store/MockTermIndex.php
+++ b/extensions/Wikibase/lib/tests/phpunit/store/MockTermIndex.php
@@ -34,7 +34,7 @@
        /**
         * @param Term[] $terms
         */
-       public function __construct( $terms ) {
+       public function __construct( array $terms ) {
                $this->terms = $terms;
        }
 
@@ -131,10 +131,38 @@
        }
 
        /**
-        * @throws Exception always
+        * @return EntityId[]
         */
-       public function getEntityIdsForLabel( $label, $languageCode = null, 
$entityType = null, $fuzzySearch = false ) {
-               throw new Exception( 'not implemented by mock class ' );
+       public function getEntityIdsForLabel( $label, $languageCode = null, 
$entityType = null,
+               $fuzzySearch = false
+       ) {
+               $entityIds = array();
+
+               foreach( $this->terms as $term ) {
+                       if ( $languageCode !== null && $term->getLanguage() !== 
$languageCode ) {
+                               continue;
+                       }
+
+                       if ( $entityType !== null && $term->getEntityType() !== 
$entityType ) {
+                               continue;
+                       }
+
+                       if ( $term->getType() !== 'label' ) {
+                               continue;
+                       }
+
+                       if ( !$fuzzySearch ) {
+                               if ( $term->getText() === $label ) {
+                                       $entityIds[] = $term->getEntityId();
+                               }
+                       } else {
+                               if ( strpos( $term->getText(), $label ) !== 
false ) {
+                                       $entityIds[] = $term->getEntityId();
+                               }
+                       }
+               }
+
+               return $entityIds;
        }
 
        /**
@@ -152,10 +180,18 @@
        }
 
        /**
-        * @throws Exception always
+        * @return Term[]
         */
        public function getTermsOfEntity( EntityId $id ) {
-               throw new Exception( 'not implemented by mock class ' );
+               $matchingTerms = array();
+
+               foreach( $this->terms as $term ) {
+                       if ( $term->getEntityId()->equals( $id ) ) {
+                               $matchingTerms[] = $term;
+                       }
+               }
+
+               return $matchingTerms;
        }
 
        /**
diff --git 
a/extensions/Wikibase/lib/tests/qunit/jquery.wikibase/jquery.wikibase.entityview.tests.js
 
b/extensions/Wikibase/lib/tests/qunit/jquery.wikibase/jquery.wikibase.entityview.tests.js
index 82f8ad4..41b0a59 100644
--- 
a/extensions/Wikibase/lib/tests/qunit/jquery.wikibase/jquery.wikibase.entityview.tests.js
+++ 
b/extensions/Wikibase/lib/tests/qunit/jquery.wikibase/jquery.wikibase.entityview.tests.js
@@ -17,6 +17,12 @@
                entityChangersFactory: {
                        getAliasesChanger: function() {
                                return 'i am an alias changer';
+                       },
+                       getDescriptionsChanger: function() {
+                               return 'i am a descriptions changer';
+                       },
+                       getLabelsChanger: function() {
+                               return 'i am a labels changer';
                        }
                },
                api: 'i am an api',
diff --git a/extensions/Wikibase/repo/Wikibase.i18n.alias.php 
b/extensions/Wikibase/repo/Wikibase.i18n.alias.php
index 2552559..c3cdefb 100644
--- a/extensions/Wikibase/repo/Wikibase.i18n.alias.php
+++ b/extensions/Wikibase/repo/Wikibase.i18n.alias.php
@@ -354,7 +354,7 @@
        'SetSiteLink' => array( 'Đặt_liên_kết_dịch_vụ' ),
        'MergeItems' => array( 'Hợp_nhất_khoản_mục', 'Gộp_khoản_mục' ),
        'EntitiesWithoutLabel' => array( 'Thực_thể_không_nhãn' ),
-       'EntitiesWithoutDescription' => array( 'Thực_thể_không_miêu_tả' ),
+       'EntitiesWithoutDescription' => array( 'Thực_thể_không_miêu_tả', 
'Thực_thể_không_mô_tả' ),
        'ItemsWithoutSitelinks' => array( 
'Khoản_mục_không_có_liên_kết_dịch_vụ', 'Khoản_mục_không_có_liên_kết_site' ),
        'MyLanguageFallbackChain' => array( 'Chuỗi_ngôn_ngữ_thay_thế_của_tôi' ),
 );
diff --git a/extensions/Wikibase/repo/i18n/zh-hant.json 
b/extensions/Wikibase/repo/i18n/zh-hant.json
index 8f7c683..41c0a07 100644
--- a/extensions/Wikibase/repo/i18n/zh-hant.json
+++ b/extensions/Wikibase/repo/i18n/zh-hant.json
@@ -141,7 +141,7 @@
        "wikibase-newentity-submit": "建立",
        "special-setlabel": "設定標籤",
        "wikibase-setlabel-introfull": "您正在設定 [[$1]] 的 $2 標籤。",
-       "wikibase-setlabel-intro": "此表格容許您設定一個實體的標籤。您需要提供實體的 ID (例如 Q23) ,語言代碼 
(如 en) 及標籤來設定。",
+       "wikibase-setlabel-intro": "此表格容許您設定一個實體的標籤。您需要提供實體的 ID (例如 Q23) ,語言代碼 
(如 zh) 及標籤來設定。",
        "wikibase-setlabel-label": "標籤:",
        "wikibase-setlabel-submit": "設定標籤",
        "wikibase-setlabel-warning-remove": "您真的要移除 [[$1]] 的標籤嗎?",
diff --git a/extensions/Wikibase/repo/includes/View/FingerprintView.php 
b/extensions/Wikibase/repo/includes/View/FingerprintView.php
index 18c7f4a..2563090 100644
--- a/extensions/Wikibase/repo/includes/View/FingerprintView.php
+++ b/extensions/Wikibase/repo/includes/View/FingerprintView.php
@@ -138,8 +138,7 @@
         */
        private function getHtmlForAliases( AliasGroupList $aliasGroups, 
EntityId $entityId = null, $editable ) {
                $hasAliases = $aliasGroups->hasGroupForLanguage( 
$this->languageCode );
-               $action = $hasAliases ? 'edit' : 'add';
-               $editSection = $this->getHtmlForEditSection( 'SetAliases', 
$entityId, $editable, $action );
+               $editSection = $this->getHtmlForEditSection( 'SetAliases', 
$entityId, $editable, 'edit' );
 
                if ( $hasAliases ) {
                        $aliasesHtml = '';
diff --git a/vendor/autoload.php b/vendor/autoload.php
index 98d589b..0d07059 100644
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer' . '/autoload_real.php';
 
-return ComposerAutoloaderInitc3eb3df05b898d3e2d9890a565e62104::getLoader();
+return ComposerAutoloaderInit83e199c0f18e266d5f80f20dd4343ecc::getLoader();
diff --git a/vendor/composer/autoload_classmap.php 
b/vendor/composer/autoload_classmap.php
index 770594d..47012e3 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -600,9 +600,13 @@
     'Wikibase\\Lib\\Store\\EntityRevisionLookup' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/EntityRevisionLookup.php',
     'Wikibase\\Lib\\Store\\EntityStore' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/EntityStore.php',
     'Wikibase\\Lib\\Store\\EntityStoreWatcher' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/EntityStoreWatcher.php',
+    'Wikibase\\Lib\\Store\\EntityTermLookup' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/EntityTermLookup.php',
     'Wikibase\\Lib\\Store\\EntityTitleLookup' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/EntityTitleLookup.php',
     'Wikibase\\Lib\\Store\\GenericEntityInfoBuilder' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/GenericEntityInfoBuilder.php',
     'Wikibase\\Lib\\Store\\LabelConflictFinder' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/LabelConflictFinder.php',
+    'Wikibase\\Lib\\Store\\LabelLookup' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/LabelLookup.php',
+    'Wikibase\\Lib\\Store\\LanguageFallbackLabelLookup' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/LanguageFallbackLabelLookup.php',
+    'Wikibase\\Lib\\Store\\LanguageLabelLookup' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/LanguageLabelLookup.php',
     'Wikibase\\Lib\\Store\\RedirectResolvingEntityLookup' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/RedirectResolvingEntityLookup.php',
     'Wikibase\\Lib\\Store\\RevisionBasedEntityLookup' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/RevisionBasedEntityLookup.php',
     'Wikibase\\Lib\\Store\\SiteLinkCache' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/SiteLinkCache.php',
@@ -611,6 +615,7 @@
     'Wikibase\\Lib\\Store\\Sql\\SqlEntityInfoBuilder' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/sql/SqlEntityInfoBuilder.php',
     'Wikibase\\Lib\\Store\\Sql\\SqlEntityInfoBuilderFactory' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/sql/SqlEntityInfoBuilderFactory.php',
     'Wikibase\\Lib\\Store\\StorageException' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/StorageException.php',
+    'Wikibase\\Lib\\Store\\TermLookup' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/TermLookup.php',
     'Wikibase\\Lib\\Store\\UnresolvedRedirectException' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/UnresolvedRedirectException.php',
     'Wikibase\\Lib\\Store\\WikiPageEntityRevisionLookup' => $baseDir . 
'/extensions/Wikibase/lib/includes/store/sql/WikiPageEntityRevisionLookup.php',
     'Wikibase\\Lib\\Test\\Change\\EntityChangeFactoryTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/changes/EntityChangeFactoryTest.php',
@@ -910,6 +915,7 @@
     'Wikibase\\Test\\EntityRevisionLookupTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/EntityRevisionLookupTest.php',
     'Wikibase\\Test\\EntitySearchTextGeneratorTest' => $baseDir . 
'/extensions/Wikibase/repo/tests/phpunit/includes/EntitySearchTextGeneratorTest.php',
     'Wikibase\\Test\\EntitySerializerBaseTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/serializers/EntitySerializerBaseTest.php',
+    'Wikibase\\Test\\EntityTermLookupTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/store/EntityTermLookupTest.php',
     'Wikibase\\Test\\EntityViewPlaceholderExpanderTest' => $baseDir . 
'/extensions/Wikibase/repo/tests/phpunit/includes/View/EntityViewPlaceholderExpanderTest.php',
     'Wikibase\\Test\\EntityViewTest' => $baseDir . 
'/extensions/Wikibase/repo/tests/phpunit/includes/EntityViewTest.php',
     'Wikibase\\Test\\ExternalChangeFactoryTest' => $baseDir . 
'/extensions/Wikibase/client/tests/phpunit/includes/recentchanges/ExternalChangeFactoryTest.php',
@@ -942,6 +948,8 @@
     'Wikibase\\Test\\LangLinkHandlerTest' => $baseDir . 
'/extensions/Wikibase/client/tests/phpunit/includes/LangLinkHandlerTest.php',
     'Wikibase\\Test\\LanguageFallbackChainFactoryTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/LanguageFallbackChainFactoryTest.php',
     'Wikibase\\Test\\LanguageFallbackChainTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/LanguageFallbackChainTest.php',
+    'Wikibase\\Test\\LanguageFallbackLabelLookupTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/store/LanguageFallbackLabelLookupTest.php',
+    'Wikibase\\Test\\LanguageLabelLookupTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/store/LanguageLabelLookupTest.php',
     'Wikibase\\Test\\LanguageLinkBadgeDisplayTest' => $baseDir . 
'/extensions/Wikibase/client/tests/phpunit/includes/hooks/LanguageLinkBadgeDisplayTest.php',
     'Wikibase\\Test\\LanguageWithConversionTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/LanguageWithConversionTest.php',
     'Wikibase\\Test\\LibHooksTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/LibHooksTest.php',
diff --git a/vendor/composer/autoload_real.php 
b/vendor/composer/autoload_real.php
index fd96070..d11336e 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
 
 // autoload_real.php @generated by Composer
 
-class ComposerAutoloaderInitc3eb3df05b898d3e2d9890a565e62104
+class ComposerAutoloaderInit83e199c0f18e266d5f80f20dd4343ecc
 {
     private static $loader;
 
@@ -19,9 +19,9 @@
             return self::$loader;
         }
 
-        
spl_autoload_register(array('ComposerAutoloaderInitc3eb3df05b898d3e2d9890a565e62104',
 'loadClassLoader'), true, true);
+        
spl_autoload_register(array('ComposerAutoloaderInit83e199c0f18e266d5f80f20dd4343ecc',
 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        
spl_autoload_unregister(array('ComposerAutoloaderInitc3eb3df05b898d3e2d9890a565e62104',
 'loadClassLoader'));
+        
spl_autoload_unregister(array('ComposerAutoloaderInit83e199c0f18e266d5f80f20dd4343ecc',
 'loadClassLoader'));
 
         $map = require __DIR__ . '/autoload_namespaces.php';
         foreach ($map as $namespace => $path) {
@@ -42,14 +42,14 @@
 
         $includeFiles = require __DIR__ . '/autoload_files.php';
         foreach ($includeFiles as $file) {
-            composerRequirec3eb3df05b898d3e2d9890a565e62104($file);
+            composerRequire83e199c0f18e266d5f80f20dd4343ecc($file);
         }
 
         return $loader;
     }
 }
 
-function composerRequirec3eb3df05b898d3e2d9890a565e62104($file)
+function composerRequire83e199c0f18e266d5f80f20dd4343ecc($file)
 {
     require $file;
 }
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index e22883b..4eff9ce 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1145,12 +1145,12 @@
         "source": {
             "type": "git",
             "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-            "reference": "0cbf92eb74ccde368ebcc53b9a5828ac2e336b7d"
+            "reference": "3e5ecbf1d8eef4fc4f8f2ff70fd211e08d855eb4"
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/0cbf92eb74ccde368ebcc53b9a5828ac2e336b7d";,
-            "reference": "0cbf92eb74ccde368ebcc53b9a5828ac2e336b7d",
+            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/3e5ecbf1d8eef4fc4f8f2ff70fd211e08d855eb4";,
+            "reference": "3e5ecbf1d8eef4fc4f8f2ff70fd211e08d855eb4",
             "shasum": ""
         },
         "require": {
@@ -1177,7 +1177,7 @@
         "conflict": {
             "mediawiki/mediawiki": "<1.23"
         },
-        "time": "2014-10-28 22:27:04",
+        "time": "2014-10-29 22:42:41",
         "type": "mediawiki-extension",
         "installation-source": "dist",
         "autoload": {

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

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

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

Reply via email to