jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/400999 )
Change subject: wikidata: Install wikibase using individual extensions ...................................................................... wikidata: Install wikibase using individual extensions The wikidatabuild repo has been deprecated and is no longer being updated. Change install method to provision individual extensions as is now done in the Wikimedia production deployment. Bug: T181769 Bug: T183307 Co-Authored-By: Bryan Davis <bd...@wikimedia.org> Change-Id: I3e90b08e518505b0a1111f1b57dda73b4b690627 --- M puppet/modules/role/manifests/wikidata.pp M puppet/modules/role/templates/wikidata/init.php.erb M puppet/modules/role/templates/wikidata/shared.php.erb 3 files changed, 114 insertions(+), 51 deletions(-) Approvals: BryanDavis: Checked; Looks good to me, approved jenkins-bot: Verified diff --git a/puppet/modules/role/manifests/wikidata.pp b/puppet/modules/role/manifests/wikidata.pp index 9ef3ada..8bfcb87 100644 --- a/puppet/modules/role/manifests/wikidata.pp +++ b/puppet/modules/role/manifests/wikidata.pp @@ -12,7 +12,67 @@ include ::role::sitematrix include ::role::langwikis - mediawiki::wiki { 'wikidata': } + mediawiki::wiki { 'wikidata': + wgconf => { + 'wmvExtensions' => { + 'ArticlePlaceholder' => false, + }, + }, + } + + # Bootstrapping settings + mediawiki::settings { 'WikiData-Init': + priority => $::load_early, + values => template('role/wikidata/init.php.erb'), + } + + # Note composer installing all of the extensions will run into duplicate + # libs being installed. The first one that is loaded will actually be + # used, in theory we could run into issues here but as long as each + # extension is checked out at the same time / to the same version there + # shouldnt be issues... + + # NOTE: there is always a wikibase_repo role, maybe we should use that? + mediawiki::extension { 'Wikibase': + composer => true, + needs_update => true, + settings => template('role/wikidata/shared.php.erb'), + } + + mediawiki::extension { 'Wikidata.org': + needs_update => true, + wiki => 'wikidata', + } + + mediawiki::extension { 'PropertySuggester': + needs_update => true, + wiki => 'wikidata', + } + + mediawiki::extension { 'WikibaseQuality': + needs_update => true, + wiki => 'wikidata', + } + + mediawiki::extension { 'WikibaseQualityConstraints': + needs_update => true, + wiki => 'wikidata', + } + + mediawiki::extension { 'WikimediaBadges': + needs_update => true, + } + + mediawiki::extension { 'ArticlePlaceholder': + needs_update => true, + } + + mediawiki::maintenance { 'wikidata-populate-site-tables': + command => "/usr/local/bin/foreachwikiwithextension Wikibase extensions/Wikibase/lib/maintenance/populateSitesTable.php --load-from http://en${mediawiki::multiwiki::base_domain}${::port_fragment}/w/api.php", + refreshonly => true, + } + + Mediawiki::Wiki<| |> ~> Mediawiki::Maintenance['wikidata-populate-site-tables'] # TODO: Going to http://wikidata.wiki.local.wmftest.net:8080/ # will work, but if you explicitly visit Main_Page in the main @@ -31,32 +91,4 @@ wiki => 'wikidata', db_name => 'wikidatawiki', } - - mediawiki::extension { 'WikidataBuildResources': - remote => 'https://gerrit.wikimedia.org/r/wikidata/build-resources', - entrypoint => 'Wikidata.php', - composer => true, - needs_update => true, - settings => template('role/wikidata/shared.php.erb'), - } - - mediawiki::settings { 'WikiData-Init': - priority => $::load_early, - values => template('role/wikidata/init.php.erb'), - } - - exec { 'wikidata-update-git-remote': - command => '/usr/bin/git remote set-url origin https://gerrit.wikimedia.org/r/wikidata/build-resources', - unless => "/usr/bin/git remote -v | grep -q 'https://gerrit.wikimedia.org/r/wikidata/build-resources'", - cwd => "${::mediawiki::dir}/extensions/WikidataBuildResources", - require => Mediawiki::Extension['WikidataBuildResources'], - } - - mediawiki::maintenance { 'wikidata-populate-site-tables': - command => "/usr/local/bin/foreachwikiwithextension WikidataBuildResources extensions/WikidataBuildResources/extensions/Wikibase/lib/maintenance/populateSitesTable.php --load-from http://en${mediawiki::multiwiki::base_domain}${::port_fragment}/w/api.php", - refreshonly => true, - } - - Mediawiki::Wiki<| |> ~> Mediawiki::Maintenance['wikidata-populate-site-tables'] - } diff --git a/puppet/modules/role/templates/wikidata/init.php.erb b/puppet/modules/role/templates/wikidata/init.php.erb index f1e3c67..cab28fd 100644 --- a/puppet/modules/role/templates/wikidata/init.php.erb +++ b/puppet/modules/role/templates/wikidata/init.php.erb @@ -1,8 +1,3 @@ -if ( $wgDBname === 'wikidatawiki' ) { - $wmgUseWikibaseRepo = true; - $wmgUseWikibaseClient = true; - $wmgUseWikibasePropertySuggester = true; -} else { - $wmgUseWikibaseRepo = false; - $wmgUseWikibaseClient = true; -} +$wgEnableWikibaseRepo = ( $wgDBname === 'wikidatawiki' ); +$wgEnableWikibaseClient = true; +$wmgUseWikibasePropertySuggester = ( $wgDBname === 'wikidatawiki' ); diff --git a/puppet/modules/role/templates/wikidata/shared.php.erb b/puppet/modules/role/templates/wikidata/shared.php.erb index b4949a8..b299ef4 100644 --- a/puppet/modules/role/templates/wikidata/shared.php.erb +++ b/puppet/modules/role/templates/wikidata/shared.php.erb @@ -1,27 +1,50 @@ +/*<?php*/ + +// NOTE: do *not* define WB_NS_ITEM and WB_NS_ITEM_TALK when using a core +// namespace for items! define( 'WB_NS_PROPERTY', 122 ); define( 'WB_NS_PROPERTY_TALK', 123 ); +define( 'WB_NS_QUERY', 124 ); +define( 'WB_NS_QUERY_TALK', 125 ); require_once "<%= scope['::mediawiki::multiwiki::script_dir'] %>/dblist.php"; + +$wgWBSharedSettings = []; // Tell Wikibase which namespace to use for which kind of entity. // WikibaseClient wikis also need to know how this is configured on // WikibaseRepo wikis that it accesses, thus these are shared settings. -$wgWBEntityNamespaces = [ +$wgWBSharedSettings['entityNamespaces'] = [ 'item' => NS_MAIN, 'property' => WB_NS_PROPERTY ]; -if ( $wmgUseWikibaseRepo ) { - // Define custom namespaces. Use these exact constant names. +$wgWBSharedSettings['specialSiteLinkGroups'][] = 'wikidata'; + +if ( $wgEnableWikibaseRepo ) { + // Setup and alias for the main namespace $wgNamespaceAliases['Item'] = NS_MAIN; $wgNamespaceAliases['Item_talk'] = NS_TALK; // Register extra namespaces. - $wgWBNamespaces[WB_NS_PROPERTY] = 'Property'; - $wgWBNamespaces[WB_NS_PROPERTY_TALK] = 'Property_talk'; + $wgExtraNamespaces[WB_NS_PROPERTY] = 'Property'; + $wgExtraNamespaces[WB_NS_PROPERTY_TALK] = 'Property_talk'; + $wgExtraNamespaces[WB_NS_QUERY] = 'Query'; + $wgExtraNamespaces[WB_NS_QUERY_TALK] = 'Query_talk'; - $wgWBRepoSettings['entityNamespaces'] = $wgWBEntityNamespaces; - $wgExtraNamespaces = $wgWBNamespaces + $wgExtraNamespaces; + $wgWBRepoSettings = $wgWBSharedSettings + $wgWBRepoSettings; + + $wgWBRepoSettings['statementSections'] = [ + 'item' => [ + 'statements' => null, + 'identifiers' => [ + 'type' => 'dataType', + 'dataTypes' => [ 'external-id' ], + ], + ], + ]; + + $wgWBRepoSettings['normalizeItemByTitlePageNames'] = true; $wgWBRepoSettings['localClientDatabases'] = []; foreach ( $wgLocalDatabases as $db ) { @@ -30,13 +53,26 @@ } } -} else { - $wgWBClientSettings['siteGlobalID'] = 'enwiki'; + $wgPropertySuggesterMinProbability = 0.069; - $wgWBClientSettings['changesDatabase'] = 'wikidatawiki'; - $wgWBClientSettings['repoDatabase'] = 'wikidatawiki'; - - $wgWBClientSettings['entityNamespaces'] = $wgWBEntityNamespaces; + require_once "<%= scope['::mediawiki::multiwiki::script_dir'] %>/dblist.php"; + $wgWBRepoSettings['localClientDatabases'] = []; + foreach ( $wgLocalDatabases as $db ) { + if ( $db !== 'wikidatawiki' ) { + $wgWBRepoSettings['localClientDatabases'][] = $db; + } + } } -$wgWBClientSettings['repoUrl'] = '//wikidata<%= scope['::mediawiki::multiwiki::base_domain'] %><%= scope['::port_fragment'] %>'; +if ( $wgEnableWikibaseClient ) { + $wgWBClientSettings = $wgWBSharedSettings + $wgWBClientSettings; + $wgWBClientSettings['siteGlobalID'] = 'enwiki'; + $wgWBClientSettings['changesDatabase'] = 'wikidatawiki'; + $wgWBClientSettings['repoDatabase'] = 'wikidatawiki'; + $wgWBClientSettings['repoNamespaces'] = [ + 'item' => '', + 'property' => 'Property' + ]; + $wgWBClientSettings['repoUrl'] = '//wikidata<%= scope['::mediawiki::multiwiki::base_domain'] %><%= scope['::port_fragment'] %>'; +} + -- To view, visit https://gerrit.wikimedia.org/r/400999 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I3e90b08e518505b0a1111f1b57dda73b4b690627 Gerrit-PatchSet: 2 Gerrit-Project: mediawiki/vagrant Gerrit-Branch: stretch-migration Gerrit-Owner: BryanDavis <bda...@wikimedia.org> Gerrit-Reviewer: Addshore <addshorew...@gmail.com> Gerrit-Reviewer: BryanDavis <bda...@wikimedia.org> Gerrit-Reviewer: Dduvall <dduv...@wikimedia.org> Gerrit-Reviewer: Smalyshev <smalys...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits