Page MenuHomePhabricator

mw.config.get('wgServer') specifies https protocol on beta cluster but not on production
Closed, DuplicatePublic

Description

mw.config.get('wgServer') on https://en.wikipedia.beta.wmflabs.org/wiki/: https://en.wikipedia.beta.wmflabs.org
mw.config.get('wgServer') on https://commons.wikimedia.beta.wmflabs.org/wiki/: https://commons.wikimedia.beta.wmflabs.org

mw.config.get('wgServer') on https://en.wikipedia.org/wiki/: //en.wikipedia.org
mw.config.get('wgServer') on https://commons.wikimedia.org/wiki/: //commons.wikimedia.org

This can cause gadgets to fail if this is unexpected. It would be nice if the protocol could consistently be omitted or specified, I don't particularly care either way as long as it's consistent.

Event Timeline

Reedy subscribed.

It's only inconsistent because the input is inconsistent

https://noc.wikimedia.org/conf/highlight.php?file=InitialiseSettings.php

# wgServer @{
'wgServer' => [
	// Projects
	'wikipedia' => '//$lang.wikipedia.org',
	'wikibooks' => '//$lang.wikibooks.org',
	'wikimedia' => '//$lang.wikimedia.org',
	'wikinews' => '//$lang.wikinews.org',
	'wikiquote' => '//$lang.wikiquote.org',
	'wikisource' => '//$lang.wikisource.org',
	'wikiversity' => '//$lang.wikiversity.org',
	'wikivoyage' => '//$lang.wikivoyage.org',
	'wiktionary' => '//$lang.wiktionary.org',

	// Individual wikis
	'advisorswiki' => '//advisors.wikimedia.org',
	'advisorywiki' => '//advisory.wikimedia.org',
	'amwikimedia' => '//am.wikimedia.org',
	'apiportalwiki' => '//api.wikimedia.org',
	'arwikimedia' => '//ar.wikimedia.org',
	'auditcomwiki' => '//auditcom.wikimedia.org',
	'be_x_oldwiki' => '//be-tarask.wikipedia.org',
	'boardgovcomwiki' => '//boardgovcom.wikimedia.org',
	'boardwiki' => '//board.wikimedia.org',
	'brwikimedia' => '//br.wikimedia.org',
	'chairwiki' => '//chair.wikimedia.org',
	'chapcomwiki' => '//affcom.wikimedia.org',
	'checkuserwiki' => '//checkuser.wikimedia.org',
	'cnwikimedia' => '//cn.wikimedia.org',
	'collabwiki' => '//collab.wikimedia.org',
	'commonswiki' => '//commons.wikimedia.org',
	'testcommonswiki' => '//test-commons.wikimedia.org',
	'donatewiki' => '//donate.wikimedia.org',
	'electcomwiki' => '//electcom.wikimedia.org',
	'etwikimedia' => '//ee.wikimedia.org',
	'execwiki' => '//exec.wikimedia.org',
	'fdcwiki' => '//fdc.wikimedia.org',
	'foundationwiki' => '//foundation.wikimedia.org',
	'gewikimedia' => '//ge.wikimedia.org', // T236389
	'grwikimedia' => '//gr.wikimedia.org', // T245911
	'grantswiki' => '//grants.wikimedia.org',
	'hiwikimedia' => '//hi.wikimedia.org',
	'iegcomwiki' => '//iegcom.wikimedia.org',
	'incubatorwiki' => '//incubator.wikimedia.org',
	'internalwiki' => '//internal.wikimedia.org',
	'labswiki' => "//wikitech.wikimedia.org",
	'labtestwiki' => "//labtestwikitech.wikimedia.org",
	'legalteamwiki' => '//legalteam.wikimedia.org',
	'loginwiki' => '//login.wikimedia.org',
	'maiwikimedia' => '//mai.wikimedia.org',
	'mediawikiwiki' => '//www.mediawiki.org',
	'metawiki' => '//meta.wikimedia.org',
	'movementroleswiki' => '//movementroles.wikimedia.org',
	'mxwikimedia' => '//mx.wikimedia.org',
	'ngwikimedia' => '//ng.wikimedia.org', // T240771
	'nostalgiawiki' => '//nostalgia.wikipedia.org',
	'noboard_chapterswikimedia' => '//noboard-chapters.wikimedia.org',
	'nycwikimedia' => '//nyc.wikimedia.org', // T31273
	'officewiki' => '//office.wikimedia.org',
	'ombudsmenwiki' => '//ombudsmen.wikimedia.org',
	'otrs_wikiwiki' => '//vrt-wiki.wikimedia.org',
	'outreachwiki' => '//outreach.wikimedia.org',
	'pa_uswikimedia' => '//pa-us.wikimedia.org',
	'projectcomwiki' => '//projectcom.wikimedia.org', // T143138
	'punjabiwikimedia' => '//punjabi.wikimedia.org',
	'qualitywiki' => '//quality.wikimedia.org',
	'romdwikimedia' => '//romd.wikimedia.org', // T187184
	'searchcomwiki' => '//searchcom.wikimedia.org',
	'sourceswiki' => '//wikisource.org',
	'spcomwiki' => '//spcom.wikimedia.org',
	'specieswiki' => '//species.wikimedia.org',
	'stewardwiki' => '//steward.wikimedia.org',
	'strategywiki' => '//strategy.wikimedia.org',
	'techconductwiki' => '//techconduct.wikimedia.org', // T165977
	'testwiki' => '//test.wikipedia.org',
	'testwikidatawiki' => '//test.wikidata.org',
	'thankyouwiki' => '//thankyou.wikipedia.org',
	'transitionteamwiki' => '//transitionteam.wikimedia.org',
	'usabilitywiki' => '//usability.wikimedia.org',
	'votewiki' => '//vote.wikimedia.org',
	'wikidatawiki' => '//www.wikidata.org',
	'wikimania2005wiki' => '//wikimania2005.wikimedia.org',
	'wikimania2006wiki' => '//wikimania2006.wikimedia.org',
	'wikimania2007wiki' => '//wikimania2007.wikimedia.org',
	'wikimania2008wiki' => '//wikimania2008.wikimedia.org',
	'wikimania2009wiki' => '//wikimania2009.wikimedia.org',
	'wikimania2010wiki' => '//wikimania2010.wikimedia.org',
	'wikimania2011wiki' => '//wikimania2011.wikimedia.org',
	'wikimania2012wiki' => '//wikimania2012.wikimedia.org',
	'wikimania2013wiki' => '//wikimania2013.wikimedia.org',
	'wikimania2014wiki' => '//wikimania2014.wikimedia.org',
	'wikimania2015wiki' => '//wikimania2015.wikimedia.org',
	'wikimania2016wiki' => '//wikimania2016.wikimedia.org',
	'wikimania2017wiki' => '//wikimania2017.wikimedia.org',
	'wikimania2018wiki' => '//wikimania2018.wikimedia.org',
	'wikimaniawiki' => '//wikimania.wikimedia.org',
	'wikimaniateamwiki' => '//wikimaniateam.wikimedia.org',
],
# @} end of wgServer

vs

https://noc.wikimedia.org/conf/highlight.php?file=InitialiseSettings-labs.php

		'-wgServer' => [
			'wiktionary'	=> 'https://$lang.wiktionary.beta.wmflabs.org',
			'wikipedia'	 => 'https://$lang.wikipedia.beta.wmflabs.org',
			'wikiversity'	=> 'https://$lang.wikiversity.beta.wmflabs.org',
			'wikisource'	=> 'https://$lang.wikisource.beta.wmflabs.org',
			'wikiquote'	=> 'https://$lang.wikiquote.beta.wmflabs.org',
			'wikinews'	=> 'https://$lang.wikinews.beta.wmflabs.org',
			'wikibooks'	 => 'https://$lang.wikibooks.beta.wmflabs.org',
			'wikivoyage'	=> 'https://$lang.wikivoyage.beta.wmflabs.org',

			'apiportalwiki'	   => 'https://api.wikimedia.beta.wmflabs.org',
			'commonswiki'   => 'https://commons.wikimedia.beta.wmflabs.org',
			'deploymentwiki'	  => 'https://deployment.wikimedia.beta.wmflabs.org',
			'loginwiki'	 => 'https://login.wikimedia.beta.wmflabs.org',
			'metawiki'	  => 'https://meta.wikimedia.beta.wmflabs.org',
			'votewiki'	  => 'https://vote.wikimedia.beta.wmflabs.org',
			'wikidatawiki'  => 'https://wikidata.beta.wmflabs.org',
			'en_rtlwiki' => 'https://en-rtl.wikipedia.beta.wmflabs.org',
		],

I suppose it's better to omit the protocol in case some future protocol replaces https. Can't the protocol just be removed from InitialiseSettings-labs.php?

I doubt anything is likely to replace https any time soon.

Generally, we tend not to use protocol relative these days, as we know the site is HTTPS only.

Of course, using a decent URL parsing library... This shouldn't really be a problem...

I doubt anything is likely to replace https any time soon.

Generally, we tend not to use protocol relative these days, as we know the site is HTTPS only.

Of course, using a decent URL parsing library... This shouldn't really be a problem...

Okay, in that case add https to InitialiseSettings.php? I had a gadget that specified https because production was protocol relative and I probably added it because.. can't remember and forgot to take it out. So it broke on beta. Again, no strong feelings either way as long as it's consistent.

I suppose another argument for specifying https may be to discourage the use of https stripping proxies.