Aude has uploaded a new change for review.

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

Change subject: New Wikidata Build - 2014/11/20 (update property suggester)
......................................................................

New Wikidata Build - 2014/11/20 (update property suggester)

Change-Id: Iba932f701a08a8199937c26f7431addb1a7ca65f
---
M README.md
M WikibaseClient.settings.php
M WikibaseRepo.settings.php
M composer.json
M composer.lock
M extensions/PropertySuggester/.travis.yml
M extensions/PropertySuggester/PropertySuggester.php
M extensions/PropertySuggester/README.md
M extensions/PropertySuggester/build/travis/before_script.sh
M extensions/PropertySuggester/src/PropertySuggester/GetSuggestions.php
M 
extensions/PropertySuggester/src/PropertySuggester/Suggesters/SimpleSuggester.php
M 
extensions/PropertySuggester/src/PropertySuggester/UpdateTable/Importer/BasicImporter.php
M 
extensions/PropertySuggester/tests/phpunit/PropertySuggester/GetSuggestionsTest.php
M 
extensions/PropertySuggester/tests/phpunit/PropertySuggester/Suggesters/SimpleSuggesterTest.php
M 
extensions/PropertySuggester/tests/phpunit/PropertySuggester/UpdateTable/UpdateTableTest.php
M extensions/Wikibase/lib/resources/Resources.php
M extensions/Wikibase/lib/tests/qunit/resources.php
M extensions/Wikibase/repo/includes/EntityParserOutputGenerator.php
M extensions/Wikibase/repo/resources/Resources.php
R extensions/Wikibase/repo/resources/dataTypes/wikibase.dataTypes.js
R extensions/Wikibase/repo/tests/qunit/dataTypes/wikibase.dataTypes.tests.js
M extensions/Wikibase/repo/tests/qunit/resources.php
M src/SettingsFileGenerator.php
M src/WikidataSettingsBuilder.php
M tests/SettingsFileGeneratorTest.php
D tests/WikidataSettingsBuilderTest.php
M vendor/autoload.php
M vendor/composer/autoload_real.php
M vendor/composer/installed.json
29 files changed, 252 insertions(+), 190 deletions(-)


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

diff --git a/README.md b/README.md
index 5e22e88..28a85de 100644
--- a/README.md
+++ b/README.md
@@ -84,6 +84,10 @@
 grunt branch --branchName="wmf/1.25wmf1"
 ```
 
+For deployment builds, this sets the autoloader-suffix config option in the 
composer.json to be based on the branch name, which makes the composer 
autoloader code more stable when deployed and synced to multiple servers.
+
+The sharedCacheKeyPrefix setting is also set to be based on the branch 
version, and can be manually changed when doing backports to a deployment 
branch, as needed for invalidating memcached entries.
+
 ## Updating this README
 
 This readme is located 
[here](https://github.com/wmde/WikidataBuildResources/blob/master/README.md). 
Any changes made to the README in the Wikidata build repo will be overwritten 
by this file daily.
diff --git a/WikibaseClient.settings.php b/WikibaseClient.settings.php
index 7e0a955..2c8d6ad 100644
--- a/WikibaseClient.settings.php
+++ b/WikibaseClient.settings.php
@@ -1,2 +1,2 @@
 <?php
-$wgWBClientSettings["sharedCacheKeyPrefix"] = "wikibase:WBL/1416484401";
\ No newline at end of file
+$wgWBClientSettings["sharedCacheKeyPrefix"] = "wikibase:WBL/";
\ No newline at end of file
diff --git a/WikibaseRepo.settings.php b/WikibaseRepo.settings.php
index 8c41287..1d4772f 100644
--- a/WikibaseRepo.settings.php
+++ b/WikibaseRepo.settings.php
@@ -1,2 +1,2 @@
 <?php
-$wgWBRepoSettings["sharedCacheKeyPrefix"] = "wikibase:WBL/1416484401";
\ No newline at end of file
+$wgWBRepoSettings["sharedCacheKeyPrefix"] = "wikibase:WBL/";
\ No newline at end of file
diff --git a/composer.json b/composer.json
index ff413cb..cdd49d8 100644
--- a/composer.json
+++ b/composer.json
@@ -1,4 +1,7 @@
 {
+    "name": "wikidata/wikidata",
+    "description": "Wikidata build, including related components used for 
wikidata.org.",
+    "license": "GPL-2.0+",
     "repositories": [
         {
             "type": "vcs",
@@ -11,7 +14,7 @@
     ],
     "require": {
         "php": ">=5.3.0",
-        "propertysuggester/property-suggester": "~1.1.2",
+        "propertysuggester/property-suggester": "~2.0.1",
         "wikibase/wikibase": "dev-master",
         "wikibase/wikimedia-badges": "dev-master",
         "wikibase/Wikidata.org": "dev-master"
diff --git a/composer.lock b/composer.lock
index 2f0a6c0..d4e032d 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at 
http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file";,
         "This file is @generated automatically"
     ],
-    "hash": "236f65a74f9da86a0eafa52e8caefe82",
+    "hash": "111e40007b6379fcbdb42cccafd57475",
     "packages": [
         {
             "name": "composer/installers",
@@ -749,16 +749,16 @@
         },
         {
             "name": "propertysuggester/property-suggester",
-            "version": "1.1.5",
+            "version": "2.0.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/Wikidata-lib/PropertySuggester.git";,
-                "reference": "0d106a6cb2e30a34cdec2e0eda52cca66a479733"
+                "reference": "7a5279ed5a7f87da6ecf40928d6aabda23d043f9"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/Wikidata-lib/PropertySuggester/zipball/0d106a6cb2e30a34cdec2e0eda52cca66a479733";,
-                "reference": "0d106a6cb2e30a34cdec2e0eda52cca66a479733",
+                "url": 
"https://api.github.com/repos/Wikidata-lib/PropertySuggester/zipball/7a5279ed5a7f87da6ecf40928d6aabda23d043f9";,
+                "reference": "7a5279ed5a7f87da6ecf40928d6aabda23d043f9",
                 "shasum": ""
             },
             "require": {
@@ -773,7 +773,9 @@
                 "psr-4": {
                     "PropertySuggester\\": "src/PropertySuggester/"
                 },
-                "files": [],
+                "files": [
+
+                ],
                 "classmap": [
                     "PropertySuggesterHooks.php",
                     "maintenance/UpdateTable.php"
@@ -790,7 +792,7 @@
                 "wikibase",
                 "wikidata"
             ],
-            "time": "2014-11-10 15:13:08"
+            "time": "2014-11-11 11:23:20"
         },
         {
             "name": "serialization/serialization",
@@ -1191,12 +1193,12 @@
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-                "reference": "11cc4430d6e7032f2eb6c412f22da4296ec29682"
+                "reference": "d75afa49d3e66e6da218a653476bfe2ae6a4b798"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/11cc4430d6e7032f2eb6c412f22da4296ec29682";,
-                "reference": "11cc4430d6e7032f2eb6c412f22da4296ec29682",
+                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/d75afa49d3e66e6da218a653476bfe2ae6a4b798";,
+                "reference": "d75afa49d3e66e6da218a653476bfe2ae6a4b798",
                 "shasum": ""
             },
             "require": {
@@ -1262,7 +1264,7 @@
                 "wikibaserepo",
                 "wikidata"
             ],
-            "time": "2014-11-19 21:42:01"
+            "time": "2014-11-20 13:18:45"
         },
         {
             "name": "wikibase/wikimedia-badges",
@@ -1315,8 +1317,12 @@
             "time": "2014-11-11 18:42:07"
         }
     ],
-    "packages-dev": [],
-    "aliases": [],
+    "packages-dev": [
+
+    ],
+    "aliases": [
+
+    ],
     "minimum-stability": "stable",
     "stability-flags": {
         "wikibase/wikibase": 20,
@@ -1327,5 +1333,7 @@
     "platform": {
         "php": ">=5.3.0"
     },
-    "platform-dev": []
+    "platform-dev": [
+
+    ]
 }
diff --git a/extensions/PropertySuggester/.travis.yml 
b/extensions/PropertySuggester/.travis.yml
index 9b49f98..0b4da66 100644
--- a/extensions/PropertySuggester/.travis.yml
+++ b/extensions/PropertySuggester/.travis.yml
@@ -8,6 +8,8 @@
   - 5.4
   - 5.5
   - 5.6
+  - hhvm
+  - hhvm-nightly
 
 before_script:
   - bash ./build/travis/before_script.sh
diff --git a/extensions/PropertySuggester/PropertySuggester.php 
b/extensions/PropertySuggester/PropertySuggester.php
index 162ba97..619ea51 100644
--- a/extensions/PropertySuggester/PropertySuggester.php
+++ b/extensions/PropertySuggester/PropertySuggester.php
@@ -9,7 +9,7 @@
        return;
 }
 
-define( 'PropertySuggester_VERSION', '1.1.5' );
+define( 'PropertySuggester_VERSION', '2.0.1' );
 
 if ( file_exists( __DIR__ . '/vendor/autoload.php' ) ) {
        require_once __DIR__ . '/vendor/autoload.php';
@@ -51,10 +51,15 @@
        'remoteExtPath' => $remoteExtPathParts[1],
 );
 
-
 global $wgPropertySuggesterDeprecatedIds;
 $wgPropertySuggesterDeprecatedIds = array(
        107 // ( DEPRECATED main type )
 );
+
+global $wgPropertySuggesterClassifyingPropertyIds;
+$wgPropertySuggesterClassifyingPropertyIds = array(
+       31 // instance of
+);
+
 global $wgPropertySuggesterMinProbability;
 $wgPropertySuggesterMinProbability = 0.05;
diff --git a/extensions/PropertySuggester/README.md 
b/extensions/PropertySuggester/README.md
index 8668f6f..01b756e 100644
--- a/extensions/PropertySuggester/README.md
+++ b/extensions/PropertySuggester/README.md
@@ -44,11 +44,15 @@
 
 ## Release notes
 
-### 1.1.5 (2014-11-10)
-* Adjust to new version of DataModel JavaScript
+### 2.0.1 (2014-11-11)
+Adjust to new version of DataModel-JavaScript
+
+### 2.0.0 (2014-11-10)
+* Consider classifying properties (needs version 2.0.0 of 
PropertySuggester-Python)
 
 ### 1.1.4 (2014-10-22)
 * Replace usage of Wikibase\NamespaceUtils for compatibility with Wikibase 
Repo.
+* Specified GPL-2.0+ license
 
 ### 1.1.3 (2014-10-17)
 * Wikibase Data Model 2.0 compatibility fixes.
diff --git a/extensions/PropertySuggester/build/travis/before_script.sh 
b/extensions/PropertySuggester/build/travis/before_script.sh
index f45a1ca..193a996 100644
--- a/extensions/PropertySuggester/build/travis/before_script.sh
+++ b/extensions/PropertySuggester/build/travis/before_script.sh
@@ -27,6 +27,7 @@
     mysql -e 'CREATE DATABASE its_a_mw;'
 fi
 
+composer install --no-dev
 php maintenance/install.php --dbtype $DBTYPE --dbuser root --dbname its_a_mw 
--dbpath $(pwd) --pass nyan TravisWiki admin
 
 cd extensions
diff --git 
a/extensions/PropertySuggester/src/PropertySuggester/GetSuggestions.php 
b/extensions/PropertySuggester/src/PropertySuggester/GetSuggestions.php
index e287f03..006ae8e 100644
--- a/extensions/PropertySuggester/src/PropertySuggester/GetSuggestions.php
+++ b/extensions/PropertySuggester/src/PropertySuggester/GetSuggestions.php
@@ -51,6 +51,7 @@
                parent::__construct( $main, $name, $prefix );
                global $wgPropertySuggesterDeprecatedIds;
                global $wgPropertySuggesterMinProbability;
+               global $wgPropertySuggesterClassifyingPropertyIds;
 
                $store = WikibaseRepo::getDefaultInstance()->getStore();
                $this->termIndex = $store->getTermIndex();
@@ -59,6 +60,7 @@
 
                $this->suggester = new SimpleSuggester( wfGetLB() );
                $this->suggester->setDeprecatedPropertyIds( 
$wgPropertySuggesterDeprecatedIds );
+               $this->suggester->setClassifyingPropertyIds( 
$wgPropertySuggesterClassifyingPropertyIds );
 
                $this->paramsParser = new SuggesterParamsParser( 500, 
$wgPropertySuggesterMinProbability );
        }
diff --git 
a/extensions/PropertySuggester/src/PropertySuggester/Suggesters/SimpleSuggester.php
 
b/extensions/PropertySuggester/src/PropertySuggester/Suggesters/SimpleSuggester.php
index afbe9c1..bd50067 100644
--- 
a/extensions/PropertySuggester/src/PropertySuggester/Suggesters/SimpleSuggester.php
+++ 
b/extensions/PropertySuggester/src/PropertySuggester/Suggesters/SimpleSuggester.php
@@ -5,11 +5,9 @@
 use LoadBalancer;
 use ProfileSection;
 use InvalidArgumentException;
-use Wikibase\DataModel\Claim\Claim;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\Entity\PropertyId;
 use ResultWrapper;
-use Wikibase\DataModel\Snak\Snak;
 
 /**
  * a Suggester implementation that creates suggestion via MySQL
@@ -23,6 +21,11 @@
         * @var int[]
         */
        private $deprecatedPropertyIds = array();
+
+       /**
+        * @var int[]
+        */
+       private $classifyingPropertyIds = array();
 
        /**
         * @var LoadBalancer
@@ -44,14 +47,22 @@
        }
 
        /**
+        * @param int[] $classifyingPropertyIds
+        */
+       public function setClassifyingPropertyIds( array 
$classifyingPropertyIds ) {
+               $this->classifyingPropertyIds = array_flip( 
$classifyingPropertyIds );
+       }
+
+       /**
         * @param int[] $propertyIds
+        * @param string[] $idTuples
         * @param int $limit
         * @param float $minProbability
         * @param string $context
         * @throws InvalidArgumentException
         * @return Suggestion[]
         */
-       protected function getSuggestions( array $propertyIds, $limit, 
$minProbability, $context ) {
+       protected function getSuggestions( array $propertyIds, array $idTuples, 
$limit, $minProbability, $context ) {
                $profiler = new ProfileSection( __METHOD__ );
                if ( !is_int( $limit ) ) {
                        throw new InvalidArgumentException( '$limit must be 
int!' );
@@ -67,11 +78,16 @@
                $count = count( $propertyIds );
 
                $dbr = $this->lb->getConnection( DB_SLAVE );
+               if ( empty( $idTuples ) ){
+                       $condition = 'pid1 IN (' . $dbr->makeList( $propertyIds 
) . ')';
+               }
+               else{
+                       $condition = $dbr->makeList( $idTuples, LIST_OR );
+               }
                $res = $dbr->select(
                        'wbs_propertypairs',
                        array( 'pid' => 'pid2', 'prob' => 
"sum(probability)/$count" ),
-                       array( 'pid1 IN (' . $dbr->makeList( $propertyIds ) . 
')',
-                                  'qid1' => null,
+                       array( $condition,
                                   'pid2 NOT IN (' . $dbr->makeList( 
$excludedIds ) . ')',
                                   'context' => $context ),
                        __METHOD__,
@@ -80,8 +96,8 @@
                                'ORDER BY' => 'prob DESC',
                                'LIMIT'    => $limit,
                                'HAVING'   => 'prob > ' . floatval( 
$minProbability )
-                       )
-               );
+                               )
+                       );
                $this->lb->reuseConnection( $dbr );
 
                return $this->buildResult( $res );
@@ -98,8 +114,7 @@
         */
        public function suggestByPropertyIds( array $propertyIds, $limit, 
$minProbability, $context ) {
                $numericIds = array_map( array( $this, 
'getNumericIdFromPropertyId' ), $propertyIds );
-
-               return $this->getSuggestions( $numericIds, $limit, 
$minProbability, $context );
+               return $this->getSuggestions( $numericIds, array(), $limit, 
$minProbability, $context );
        }
 
        /**
@@ -107,14 +122,39 @@
         *
         * @param Item $item
         * @param int $limit
-        * @param float $minProbability
+        * @param float $minProbability
         * @param string $context
         * @return Suggestion[]
         */
        public function suggestByItem( Item $item, $limit, $minProbability, 
$context ) {
-               $claims = $item->getClaims();
-               $numericIds = array_unique( array_map( array( $this, 
'getNumericIdFromClaim' ), $claims ) );
-               return $this->getSuggestions( $numericIds, $limit, 
$minProbability, $context );
+               $statements = $item->getStatements()->toArray();
+               $ids = array();
+               $idTuples = array();
+               foreach ( $statements as $statement ) {
+                       $numericPropertyId = $this->getNumericIdFromPropertyId( 
$statement->getMainSnak()->getPropertyId() );
+                       $ids[] = $numericPropertyId;
+                       if ( !isset( 
$this->classifyingPropertyIds[$numericPropertyId] ) ) {
+                               $idTuples[] = $this->buildTupleCondition( 
$numericPropertyId, '0' );
+                       }
+                       else {
+                               if ( $statement->getMainSnak()->getType() === 
"value" ) {
+                                       $dataValue = 
$statement->getMainSnak()->getDataValue();
+                                       $numericEntityId = ( int )substr( 
$dataValue->getEntityId()->getSerialization(), 1 );
+                                       $idTuples[] = 
$this->buildTupleCondition( $numericPropertyId, $numericEntityId );
+                               }
+                       }
+               }
+               return $this->getSuggestions( $ids, $idTuples, $limit, 
$minProbability, $context );
+       }
+
+       /**
+        * @param int $a
+        * @param int $b
+        * @return string
+        */
+       private function buildTupleCondition( $pid, $qid ){
+               $tuple = '(pid1 = '. ( int )$pid .' AND qid1 = '. ( int )$qid 
.')';
+               return $tuple;
        }
 
        /**
@@ -131,10 +171,6 @@
                        $resultArray[] = $suggestion;
                }
                return $resultArray;
-       }
-
-       private function getNumericIdFromClaim( Claim $claim ) {
-               return $claim->getMainSnak()->getPropertyId()->getNumericId();
        }
 
        private function getNumericIdFromPropertyId( PropertyId $propertyId ) {
diff --git 
a/extensions/PropertySuggester/src/PropertySuggester/UpdateTable/Importer/BasicImporter.php
 
b/extensions/PropertySuggester/src/PropertySuggester/UpdateTable/Importer/BasicImporter.php
index 7b2d36a..82f3f8e 100644
--- 
a/extensions/PropertySuggester/src/PropertySuggester/UpdateTable/Importer/BasicImporter.php
+++ 
b/extensions/PropertySuggester/src/PropertySuggester/UpdateTable/Importer/BasicImporter.php
@@ -67,7 +67,7 @@
                                }
                        }
 
-                       $qid1 = is_numeric( $data[1] ) ? $data[1] : null;
+                       $qid1 = is_numeric( $data[1] ) ? $data[1] : 0;
 
                        $accumulator[] = array( 'pid1' => $data[0], 'qid1' => 
$qid1, 'pid2' => $data[2], 'count' => $data[3],
                                                                        
'probability' => $data[4], 'context' => $data[5] );
diff --git 
a/extensions/PropertySuggester/tests/phpunit/PropertySuggester/GetSuggestionsTest.php
 
b/extensions/PropertySuggester/tests/phpunit/PropertySuggester/GetSuggestionsTest.php
index dca8579..f4f6734 100644
--- 
a/extensions/PropertySuggester/tests/phpunit/PropertySuggester/GetSuggestionsTest.php
+++ 
b/extensions/PropertySuggester/tests/phpunit/PropertySuggester/GetSuggestionsTest.php
@@ -72,7 +72,7 @@
                $ip56 = (int)substr( $p56, 1 );
                $ip72 = (int)substr( $p72, 1 );
 
-               $row = array( 'pid1' => $ip56, 'qid1' => null, 'pid2' => $ip72, 
'count' => 1,
+               $row = array( 'pid1' => $ip56, 'qid1' => 0, 'pid2' => $ip72, 
'count' => 1,
                        'probability' => 0.3, 'context' => 'item' );
 
                $this->db->insert( 'wbs_propertypairs', array( $row ) );
diff --git 
a/extensions/PropertySuggester/tests/phpunit/PropertySuggester/Suggesters/SimpleSuggesterTest.php
 
b/extensions/PropertySuggester/tests/phpunit/PropertySuggester/Suggesters/SimpleSuggesterTest.php
index 9119d0b..c14ca7a 100644
--- 
a/extensions/PropertySuggester/tests/phpunit/PropertySuggester/Suggesters/SimpleSuggesterTest.php
+++ 
b/extensions/PropertySuggester/tests/phpunit/PropertySuggester/Suggesters/SimpleSuggesterTest.php
@@ -34,11 +34,11 @@
 
        public function addDBData() {
                $rows = array();
-               $rows[] = $this->row( 1, null, 2, 100, 0.1, 'item' );
-               $rows[] = $this->row( 1, null, 3, 50, 0.05, 'item' );
-               $rows[] = $this->row( 2, null, 3, 100, 0.3, 'item' );
-               $rows[] = $this->row( 2, null, 4, 200, 0.2, 'item' );
-               $rows[] = $this->row( 3, null, 1, 100, 0.5, 'item' );
+               $rows[] = $this->row( 1, 0, 2, 100, 0.1, 'item' );
+               $rows[] = $this->row( 1, 0, 3, 50, 0.05, 'item' );
+               $rows[] = $this->row( 2, 0, 3, 100, 0.3, 'item' );
+               $rows[] = $this->row( 2, 0, 4, 200, 0.2, 'item' );
+               $rows[] = $this->row( 3, 0, 1, 100, 0.5, 'item' );
 
                $this->db->insert( 'wbs_propertypairs', $rows );
        }
diff --git 
a/extensions/PropertySuggester/tests/phpunit/PropertySuggester/UpdateTable/UpdateTableTest.php
 
b/extensions/PropertySuggester/tests/phpunit/PropertySuggester/UpdateTable/UpdateTableTest.php
index 5f1a0aa..d44c589 100644
--- 
a/extensions/PropertySuggester/tests/phpunit/PropertySuggester/UpdateTable/UpdateTableTest.php
+++ 
b/extensions/PropertySuggester/tests/phpunit/PropertySuggester/UpdateTable/UpdateTableTest.php
@@ -30,16 +30,16 @@
 
        public function getRows() {
                $rows1 = array(
-                       array( 1, null, 2, 100, 0.1, 'item' ),
-                       array( 1, null, 3, 50, 0.05, 'item' ),
-                       array( 2, null, 3, 100, 0.1, 'item' ),
-                       array( 2, null, 4, 200, 0.2, 'item' ),
-                       array( 3, null, 1, 123, 0.5, 'item' )
+                       array( 1, 0, 2, 100, 0.1, 'item' ),
+                       array( 1, 0, 3, 50, 0.05, 'item' ),
+                       array( 2, 0, 3, 100, 0.1, 'item' ),
+                       array( 2, 0, 4, 200, 0.2, 'item' ),
+                       array( 3, 0, 1, 123, 0.5, 'item' )
                );
 
                $rows2 = array();
                for ($i=0; $i<1100; $i++) {
-                       $rows2[] = array( $i, null, 2, 100, 0.1, 'item' );
+                       $rows2[] = array( $i, 0, 2, 100, 0.1, 'item' );
                }
 
                return array(
diff --git a/extensions/Wikibase/lib/resources/Resources.php 
b/extensions/Wikibase/lib/resources/Resources.php
index e60c07f..70b508a 100644
--- a/extensions/Wikibase/lib/resources/Resources.php
+++ b/extensions/Wikibase/lib/resources/Resources.php
@@ -1,8 +1,5 @@
 <?php
 
-use Wikibase\Client\WikibaseClient;
-use Wikibase\Repo\WikibaseRepo;
-
 /**
  * @licence GNU GPL v2+
  * @author Daniel Werner
@@ -20,22 +17,6 @@
        );
 
        $modules = array(
-
-               'mw.config.values.wbDataTypes' => $moduleTemplate + array(
-                       'class' => 'DataTypes\DataTypesModule',
-                       'datatypefactory' => function() {
-                               // TODO: relative uglynes here! Get rid of this 
method!
-                               if ( defined( 'WB_VERSION' ) ) { // repo mode
-                                       $wikibase = 
WikibaseRepo::getDefaultInstance();
-                               } elseif ( defined( 'WBC_VERSION' ) ) { // 
client mode
-                                       $wikibase = 
WikibaseClient::getDefaultInstance();
-                               } else {
-                                       throw new \RuntimeException( "Neither 
repo nor client found!" );
-                               }
-                               return $wikibase->getDataTypeFactory();
-                       },
-                       'datatypesconfigvarname' => 'wbDataTypes',
-               ),
 
                'mw.config.values.wbSiteDetails' => $moduleTemplate + array(
                        'class' => 'Wikibase\SitesModule',
@@ -95,18 +76,6 @@
                                'mw.config.values.wbSiteDetails',
                                'wikibase',
                                'wikibase.Site',
-                       ),
-               ),
-
-               'wikibase.dataTypes' => $moduleTemplate + array(
-                       'scripts' => array(
-                               'wikibase.dataTypes/wikibase.dataTypes.js',
-                       ),
-                       'dependencies' => array(
-                               'dataTypes.DataType',
-                               'dataTypes.DataTypeStore',
-                               'mw.config.values.wbDataTypes',
-                               'wikibase',
                        ),
                ),
 
diff --git a/extensions/Wikibase/lib/tests/qunit/resources.php 
b/extensions/Wikibase/lib/tests/qunit/resources.php
index db46563..f9d8c74 100644
--- a/extensions/Wikibase/lib/tests/qunit/resources.php
+++ b/extensions/Wikibase/lib/tests/qunit/resources.php
@@ -35,16 +35,6 @@
                        ),
                ),
 
-               'wikibase.dataTypes.tests' => $moduleBase + array(
-                       'scripts' => array(
-                               
'wikibase.dataTypes/wikibase.dataTypes.tests.js',
-                       ),
-                       'dependencies' => array(
-                               'dataTypes.DataTypeStore',
-                               'wikibase.dataTypes',
-                       ),
-               ),
-
                'wikibase.api.RepoApi.tests' => $moduleBase + array(
                        'scripts' => array(
                                'api/RepoApi.tests.js',
diff --git a/extensions/Wikibase/repo/includes/EntityParserOutputGenerator.php 
b/extensions/Wikibase/repo/includes/EntityParserOutputGenerator.php
index d92adf2..41f7caa 100644
--- a/extensions/Wikibase/repo/includes/EntityParserOutputGenerator.php
+++ b/extensions/Wikibase/repo/includes/EntityParserOutputGenerator.php
@@ -10,15 +10,11 @@
 use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\Entity\Property;
-use Wikibase\DataModel\Entity\PropertyDataTypeLookup;
 use Wikibase\DataModel\SiteLinkList;
 use Wikibase\LanguageFallbackChain;
 use Wikibase\Lib\Serializers\SerializationOptions;
 use Wikibase\Lib\Store\EntityInfoBuilderFactory;
-use Wikibase\Lib\Store\EntityLookup;
-use Wikibase\Lib\Store\EntityRetrievingTermLookup;
 use Wikibase\Lib\Store\EntityTitleLookup;
-use Wikibase\Lib\Store\LanguageLabelLookup;
 use Wikibase\Repo\View\EntityViewFactory;
 
 /**
diff --git a/extensions/Wikibase/repo/resources/Resources.php 
b/extensions/Wikibase/repo/resources/Resources.php
index dec76b3..5464c22 100644
--- a/extensions/Wikibase/repo/resources/Resources.php
+++ b/extensions/Wikibase/repo/resources/Resources.php
@@ -1,4 +1,7 @@
 <?php
+
+use Wikibase\Repo\WikibaseRepo;
+
 /**
  * Wikibase Repo ResourceLoader modules
  *
@@ -97,6 +100,26 @@
                        ),
                ),
 
+               'mw.config.values.wbDataTypes' => $moduleTemplate + array(
+                       'class' => 'DataTypes\DataTypesModule',
+                       'datatypefactory' => function() {
+                               return 
WikibaseRepo::getDefaultInstance()->getDataTypeFactory();
+                       },
+                       'datatypesconfigvarname' => 'wbDataTypes',
+               ),
+
+               'wikibase.dataTypes' => $moduleTemplate + array(
+                       'scripts' => array(
+                               'dataTypes/wikibase.dataTypes.js',
+                       ),
+                       'dependencies' => array(
+                               'dataTypes.DataType',
+                               'dataTypes.DataTypeStore',
+                               'mw.config.values.wbDataTypes',
+                               'wikibase',
+                       ),
+               ),
+
                'wikibase.getLanguageNameByCode' => $moduleTemplate + array(
                        'scripts' => array(
                                'wikibase.getLanguageNameByCode.js'
diff --git 
a/extensions/Wikibase/lib/resources/wikibase.dataTypes/wikibase.dataTypes.js 
b/extensions/Wikibase/repo/resources/dataTypes/wikibase.dataTypes.js
similarity index 100%
rename from 
extensions/Wikibase/lib/resources/wikibase.dataTypes/wikibase.dataTypes.js
rename to extensions/Wikibase/repo/resources/dataTypes/wikibase.dataTypes.js
diff --git 
a/extensions/Wikibase/lib/tests/qunit/wikibase.dataTypes/wikibase.dataTypes.tests.js
 b/extensions/Wikibase/repo/tests/qunit/dataTypes/wikibase.dataTypes.tests.js
similarity index 100%
rename from 
extensions/Wikibase/lib/tests/qunit/wikibase.dataTypes/wikibase.dataTypes.tests.js
rename to 
extensions/Wikibase/repo/tests/qunit/dataTypes/wikibase.dataTypes.tests.js
diff --git a/extensions/Wikibase/repo/tests/qunit/resources.php 
b/extensions/Wikibase/repo/tests/qunit/resources.php
index d22d6c1..631293b 100644
--- a/extensions/Wikibase/repo/tests/qunit/resources.php
+++ b/extensions/Wikibase/repo/tests/qunit/resources.php
@@ -91,6 +91,16 @@
                        ),
                ),
 
+               'wikibase.dataTypes.tests' => $moduleBase + array(
+                       'scripts' => array(
+                               'dataTypes/wikibase.dataTypes.tests.js',
+                       ),
+                       'dependencies' => array(
+                               'dataTypes.DataTypeStore',
+                               'wikibase.dataTypes',
+                       ),
+               ),
+
                'wikibase.getLanguageNameByCode.tests' => $moduleBase + array(
                        'scripts' => array(
                                'wikibase.getLanguageNameByCode.tests.js'
diff --git a/src/SettingsFileGenerator.php b/src/SettingsFileGenerator.php
index 50d3519..5198341 100644
--- a/src/SettingsFileGenerator.php
+++ b/src/SettingsFileGenerator.php
@@ -2,6 +2,8 @@
 
 namespace Wikidata;
 
+use Composer\Script\Event;
+
 /**
  * @license GNU GPL v2+
  *
@@ -9,8 +11,10 @@
  */
 class SettingsFileGenerator {
 
-       public static function generateDefaultSettings() {
-               $settingsBuilder = new WikidataSettingsBuilder();
+       public static function generateDefaultSettings( Event $event ) {
+               $composerConfig = $event->getComposer()->getConfig();
+
+               $settingsBuilder = new WikidataSettingsBuilder( $composerConfig 
);
                $settingsFileGenerator = new self();
 
                $settingsFileGenerator->generate(
diff --git a/src/WikidataSettingsBuilder.php b/src/WikidataSettingsBuilder.php
index 29fbe9f..f355506 100644
--- a/src/WikidataSettingsBuilder.php
+++ b/src/WikidataSettingsBuilder.php
@@ -13,6 +13,15 @@
 
        private $commonSettings;
 
+       private $composerConfig;
+
+       /**
+        * @param Composer\Config $composerConfig - null by default, as not 
available during tests.
+        */
+       public function __construct( $composerConfig = null ) {
+               $this->composerConfig = $composerConfig;
+       }
+
        /**
         * @return array
         */
@@ -40,7 +49,13 @@
        }
 
        private function addSharedCacheKeyPrefix() {
-               $this->commonSettings['sharedCacheKeyPrefix'] = 'wikibase:WBL/' 
. time();
+               $suffix = null;
+
+               if ( $this->composerConfig !== null ) {
+                       $suffix = $this->composerConfig->get( 
'autoloader-suffix' );
+               }
+
+               $this->commonSettings['sharedCacheKeyPrefix'] = 'wikibase:WBL/' 
. $suffix ?: time();
        }
 
 }
diff --git a/tests/SettingsFileGeneratorTest.php 
b/tests/SettingsFileGeneratorTest.php
index 9ba5e8a..78702e3 100644
--- a/tests/SettingsFileGeneratorTest.php
+++ b/tests/SettingsFileGeneratorTest.php
@@ -25,7 +25,7 @@
                $settingsFileGenerator = new SettingsFileGenerator();
                $settingsFileGenerator->generate( $settings, 
'wgWikidataSettings', $filename );
 
-               include( $filename );
+               include $filename;
 
                $this->assertEquals( $settings, $wgWikidataSettings );
 
@@ -38,8 +38,17 @@
                include __DIR__ . '/../WikibaseClient.settings.php';
                include __DIR__ . '/../WikibaseRepo.settings.php';
 
-               $this->assertRegExp( '/wikibase:WBL\/\d+/', 
$wgWBClientSettings['sharedCacheKeyPrefix'] );
-               $this->assertRegExp( '/wikibase:WBL\/\d+/', 
$wgWBRepoSettings['sharedCacheKeyPrefix'] );
+               $expectedSuffix = $this->getExpectedCacheSuffix();
+
+               $this->assertRegExp(
+                       '/wikibase:WBL\/' . $expectedSuffix . '/',
+                       $wgWBClientSettings['sharedCacheKeyPrefix']
+               );
+
+               $this->assertRegExp(
+                       '/wikibase:WBL\/' . $expectedSuffix . '/',
+                       $wgWBRepoSettings['sharedCacheKeyPrefix']
+               );
 
                $this->assertEquals(
                        $wgWBClientSettings['sharedCacheKeyPrefix'],
@@ -47,4 +56,14 @@
                );
        }
 
+       private function getExpectedCacheSuffix() {
+               $composerJson = json_decode( file_get_contents( __DIR__ . 
'/../composer.json' ), true );
+
+               if ( isset( $composerJson['config']['autoloader-suffix'] ) ) {
+                       return $composerJson['config']['autoloader-suffix'];
+               }
+
+               return '\d+';
+       }
+
 }
diff --git a/tests/WikidataSettingsBuilderTest.php 
b/tests/WikidataSettingsBuilderTest.php
deleted file mode 100644
index 449b33b..0000000
--- a/tests/WikidataSettingsBuilderTest.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-namespace Wikidata\Tests;
-
-use Wikidata\WikidataSettingsBuilder;
-
-/**
- * @covers Wikidata\WikidataSettingsBuilder
- * @group Wikidata
- *
- * @license GNU GPL v2+
- *
- * @author Katie Filbert < [email protected] >
- */
-class WikidataSettingsBuilderTest extends \PHPUnit_Framework_TestCase {
-
-       public function testGetRepoSettings() {
-               $settingsBuilder = new WikidataSettingsBuilder();
-               $settings = $settingsBuilder->getRepoSettings();
-
-               $this->assertRegExp( '/wikibase:WBL\/\d+/', 
$settings['sharedCacheKeyPrefix'] );
-       }
-
-       public function testGetClientSettings() {
-               $settingsBuilder = new WikidataSettingsBuilder();
-               $settings = $settingsBuilder->getClientSettings();
-
-               $this->assertRegExp( '/wikibase:WBL\/\d+/', 
$settings['sharedCacheKeyPrefix'] );
-       }
-
-}
diff --git a/vendor/autoload.php b/vendor/autoload.php
index baf33ac..f9a4051 100644
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer' . '/autoload_real.php';
 
-return ComposerAutoloaderInitf5af3c50a6ea2224b93fe86835f8ba57::getLoader();
+return ComposerAutoloaderInit251a23e0fcfc995a09992c872b2ca274::getLoader();
diff --git a/vendor/composer/autoload_real.php 
b/vendor/composer/autoload_real.php
index 3ad1594..b91d66a 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
 
 // autoload_real.php @generated by Composer
 
-class ComposerAutoloaderInitf5af3c50a6ea2224b93fe86835f8ba57
+class ComposerAutoloaderInit251a23e0fcfc995a09992c872b2ca274
 {
     private static $loader;
 
@@ -19,9 +19,9 @@
             return self::$loader;
         }
 
-        
spl_autoload_register(array('ComposerAutoloaderInitf5af3c50a6ea2224b93fe86835f8ba57',
 'loadClassLoader'), true, true);
+        
spl_autoload_register(array('ComposerAutoloaderInit251a23e0fcfc995a09992c872b2ca274',
 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        
spl_autoload_unregister(array('ComposerAutoloaderInitf5af3c50a6ea2224b93fe86835f8ba57',
 'loadClassLoader'));
+        
spl_autoload_unregister(array('ComposerAutoloaderInit251a23e0fcfc995a09992c872b2ca274',
 '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) {
-            composerRequiref5af3c50a6ea2224b93fe86835f8ba57($file);
+            composerRequire251a23e0fcfc995a09992c872b2ca274($file);
         }
 
         return $loader;
     }
 }
 
-function composerRequiref5af3c50a6ea2224b93fe86835f8ba57($file)
+function composerRequire251a23e0fcfc995a09992c872b2ca274($file)
 {
     require $file;
 }
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 073f10d..2e3538e 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -92,6 +92,55 @@
         ]
     },
     {
+        "name": "propertysuggester/property-suggester",
+        "version": "2.0.1",
+        "version_normalized": "2.0.1.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/Wikidata-lib/PropertySuggester.git";,
+            "reference": "7a5279ed5a7f87da6ecf40928d6aabda23d043f9"
+        },
+        "dist": {
+            "type": "zip",
+            "url": 
"https://api.github.com/repos/Wikidata-lib/PropertySuggester/zipball/7a5279ed5a7f87da6ecf40928d6aabda23d043f9";,
+            "reference": "7a5279ed5a7f87da6ecf40928d6aabda23d043f9",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.0"
+        },
+        "require-dev": {
+            "phpunit/phpunit": "3.7.*",
+            "satooshi/php-coveralls": "dev-master"
+        },
+        "time": "2014-11-11 11:23:20",
+        "type": "mediawiki-extension",
+        "installation-source": "dist",
+        "autoload": {
+            "psr-4": {
+                "PropertySuggester\\": "src/PropertySuggester/"
+            },
+            "files": [
+
+            ],
+            "classmap": [
+                "PropertySuggesterHooks.php",
+                "maintenance/UpdateTable.php"
+            ]
+        },
+        "notification-url": "https://packagist.org/downloads/";,
+        "license": [
+            "GPL-2.0+"
+        ],
+        "description": "Extension for Wikibase to provide usefull suggestions 
for new properties",
+        "homepage": "https://github.com/Wikidata-lib/PropertySuggester";,
+        "keywords": [
+            "propertysuggester",
+            "wikibase",
+            "wikidata"
+        ]
+    },
+    {
         "name": "data-values/data-values",
         "version": "1.0.0",
         "version_normalized": "1.0.0.0",
@@ -1133,12 +1182,12 @@
         "source": {
             "type": "git",
             "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-            "reference": "11cc4430d6e7032f2eb6c412f22da4296ec29682"
+            "reference": "d75afa49d3e66e6da218a653476bfe2ae6a4b798"
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/11cc4430d6e7032f2eb6c412f22da4296ec29682";,
-            "reference": "11cc4430d6e7032f2eb6c412f22da4296ec29682",
+            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/d75afa49d3e66e6da218a653476bfe2ae6a4b798";,
+            "reference": "d75afa49d3e66e6da218a653476bfe2ae6a4b798",
             "shasum": ""
         },
         "require": {
@@ -1165,7 +1214,7 @@
         "conflict": {
             "mediawiki/mediawiki": "<1.23"
         },
-        "time": "2014-11-19 21:42:01",
+        "time": "2014-11-20 13:18:45",
         "type": "mediawiki-extension",
         "installation-source": "dist",
         "autoload": {
@@ -1307,52 +1356,5 @@
             "source": "https://github.com/wmde/Wikidata.org/tree/master";,
             "issues": "https://github.com/wmde/Wikidata.org/issues";
         }
-    },
-    {
-        "name": "propertysuggester/property-suggester",
-        "version": "1.1.5",
-        "version_normalized": "1.1.5.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/Wikidata-lib/PropertySuggester.git";,
-            "reference": "0d106a6cb2e30a34cdec2e0eda52cca66a479733"
-        },
-        "dist": {
-            "type": "zip",
-            "url": 
"https://api.github.com/repos/Wikidata-lib/PropertySuggester/zipball/0d106a6cb2e30a34cdec2e0eda52cca66a479733";,
-            "reference": "0d106a6cb2e30a34cdec2e0eda52cca66a479733",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.0"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "3.7.*",
-            "satooshi/php-coveralls": "dev-master"
-        },
-        "time": "2014-11-10 15:13:08",
-        "type": "mediawiki-extension",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "PropertySuggester\\": "src/PropertySuggester/"
-            },
-            "files": [],
-            "classmap": [
-                "PropertySuggesterHooks.php",
-                "maintenance/UpdateTable.php"
-            ]
-        },
-        "notification-url": "https://packagist.org/downloads/";,
-        "license": [
-            "GPL-2.0+"
-        ],
-        "description": "Extension for Wikibase to provide usefull suggestions 
for new properties",
-        "homepage": "https://github.com/Wikidata-lib/PropertySuggester";,
-        "keywords": [
-            "propertysuggester",
-            "wikibase",
-            "wikidata"
-        ]
     }
 ]

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

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

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

Reply via email to