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
