We need some prefix to link to Wikifunctions.
For example a simple a: if that's not already taken, would be my preference. Otherwise, abstract: is also fine.
Do not go with aw: or anything that might be a language code.
We need some prefix to link to Wikifunctions.
For example a simple a: if that's not already taken, would be my preference. Otherwise, abstract: is also fine.
Do not go with aw: or anything that might be a language code.
It's not particularly important, but aw is not an ISO 639 two-letter language code, and highly unlikely to ever become an ISO 639 language code. The ISO 639 document said in 2000 that New codes will no longer be added to ISO 639-1.
abstract: should be easy enough to set at https://meta.wikimedia.org/wiki/Interwiki_map — we should post at https://meta.wikimedia.org/wiki/Talk:Interwiki_map to get that started. We should do this regardless of the below.
A single-letter option is do-able, if the broader community are OK with that; that needs a change to dumpInterwiki.php in WikimediaMaintenance instead.
"A:" is already claimed as a pseudo-namespace for "Help:" on the Spanish, Catalan, and Portuguese Wikipedias (among other uses, I didn't do an exhaustive check). In theory you could deploy the T363538 trick to work around that, but I've never been fully satisfied with what happened there for various reasons.
It's also worth pointing out that the addition of the "f:" interwiki for Wikifunctions has caused harm that remains unsolved to this day. For example see https://sv.wiktionary.org/wiki/Special:PrefixIndex/T195546
And also there's a documentary series titled https://en.wikipedia.org/wiki/Abstract:_The_Art_of_Design
All that means technically is that you'll need to run cleanupTitles or namespaceDupes on at least the wikis that have an article on that series if you want to go with "abstract:". We have plenty of other cases like it in https://en.wikipedia.org/wiki/Category:Restricted_titles_(interwiki_prefix)
Ack, we'll need to run:
Then:
Change #1259992 had a related patch set uploaded (by Jforrester; author: Jforrester):
[operations/mediawiki-config@master] [abstractwiki] Don't list abstract as a langlist entry
Change #1259993 had a related patch set uploaded (by Jforrester; author: Jforrester):
[operations/mediawiki-config@master] dumpInterwiki: Re-generate to add Abstract Wikipedia (and others)
Change #1259992 merged by jenkins-bot:
[operations/mediawiki-config@master] [abstractwiki] Don't list abstract as a langlist entry
Mentioned in SAL (#wikimedia-operations) [2026-03-24T20:22:33Z] <jforrester@deploy2002> jforrester: Backport for [[gerrit:1259967|Set json object before setting Abstract Wiki Id (T420916)]], [[gerrit:1259994|AbstractPreview: apply selected preview language lang/dir to abstract preview body (T420687)]], [[gerrit:1260092|AbstractTitle: Handle pageinfo responses without normalized titles (T420725)]], [[gerrit:1259992|[abstractwiki] Don't list abstract as a langlist entry (T420654)]] s
Change #1259993 merged by jenkins-bot:
[operations/mediawiki-config@master] dumpInterwiki: Re-generate to add Abstract Wikipedia (and others)
Mentioned in SAL (#wikimedia-operations) [2026-03-24T20:30:35Z] <jforrester@deploy2002> Started scap sync-world: Backport for [[gerrit:1256433|[wikifunctions] Drop m.wikifunctions.org from lists, we've not used it for years]], [[gerrit:1250114|Move GrowthExperiments REST API definition to IS]], [[gerrit:1259993|dumpInterwiki: Re-generate to add Abstract Wikipedia (and others) (T420654)]]
Mentioned in SAL (#wikimedia-operations) [2026-03-24T20:32:50Z] <jforrester@deploy2002> jforrester: Backport for [[gerrit:1256433|[wikifunctions] Drop m.wikifunctions.org from lists, we've not used it for years]], [[gerrit:1250114|Move GrowthExperiments REST API definition to IS]], [[gerrit:1259993|dumpInterwiki: Re-generate to add Abstract Wikipedia (and others) (T420654)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified the
Mentioned in SAL (#wikimedia-operations) [2026-03-24T20:38:21Z] <jforrester@deploy2002> Finished scap sync-world: Backport for [[gerrit:1256433|[wikifunctions] Drop m.wikifunctions.org from lists, we've not used it for years]], [[gerrit:1250114|Move GrowthExperiments REST API definition to IS]], [[gerrit:1259993|dumpInterwiki: Re-generate to add Abstract Wikipedia (and others) (T420654)]] (duration: 07m 46s)
Mentioned in SAL (#wikimedia-operations) [2026-03-24T20:38:46Z] <jforrester@deploy2002> mwscript-k8s job started: sql maintenance/namespaceDupes.php --wiki=enwiki --fix # T420654 abstract: is now an interwiki
Mentioned in SAL (#wikimedia-operations) [2026-03-24T20:39:07Z] <jforrester@deploy2002> mwscript-k8s job started: sql extensions/WikimediaMaintenance/maintenance/namespaceDupes.php --wiki=enwiki --fix # T420654 abstract: is now an interwiki
Mentioned in SAL (#wikimedia-operations) [2026-03-24T20:39:35Z] <jforrester@deploy2002> mwscript-k8s job started: maintenance/namespaceDupes.php --wiki=enwiki --fix # T420654 abstract: is now an interwiki
Mentioned in SAL (#wikimedia-operations) [2026-03-24T20:45:50Z] <jforrester@deploy2002> mwscript-k8s job started: maintenance/namespaceDupes.php --wiki=eswiki --fix # T420654 abstract: is now an interwiki
Mentioned in SAL (#wikimedia-operations) [2026-03-24T20:46:36Z] <jforrester@deploy2002> mwscript-k8s job started: maintenance/namespaceDupes.php --wiki=frwiki --fix # T420654 abstract: is now an interwiki
Mentioned in SAL (#wikimedia-operations) [2026-03-24T20:46:46Z] <jforrester@deploy2002> mwscript-k8s job started: maintenance/namespaceDupes.php --wiki=idwiki --fix # T420654 abstract: is now an interwiki
Mentioned in SAL (#wikimedia-operations) [2026-03-24T20:47:01Z] <jforrester@deploy2002> mwscript-k8s job started: maintenance/namespaceDupes.php --wiki=ptwiki --fix # T420654 abstract: is now an interwiki
@Pppery Noted that https://fr.wikipedia.org/wiki/Abstract_:_L%27art_du_design didn't get fixed by the script due to the space.
Mentioned in SAL (#wikimedia-operations) [2026-03-24T20:55:18Z] <jforrester@deploy2002> mwscript-k8s job started: moveBatch '--u=Jdforrester (WMF)' --r=T420654 --noredirects /home/jforrester/T420654-frwiki-move # T420654 abstract: is now an interwiki; manual fix
Mentioned in SAL (#wikimedia-operations) [2026-03-24T20:55:38Z] <jforrester@deploy2002> mwscript-k8s job started: moveBatch --wiki=frwiki '--u=Jdforrester (WMF)' --r=T420654 --noredirects /home/jforrester/T420654-frwiki-move # T420654 abstract: is now an interwiki; manual fix
Mentioned in SAL (#wikimedia-operations) [2026-03-24T21:00:49Z] <jforrester@deploy2002> mwscript-k8s job started: maintenance/namespaceDupes.php --wiki=frwiki --source-pseudo-namespace=Abstract_ --fix # T420654 abstract: is now an interwiki
And it looks like you forgot the talk pages too: https://en.wikipedia.org/wiki/Wikipedia:Village_pump_(technical)#Help!
MediaWiki is smart enough to consider talk pages of interwikis invalid because it knows the base page they pertain to can't exist.
Unfortunately I don't think it's possible to do this automatically. The only maintenance script for this doesn't do the associated namespace, and the one for moving pages won't work with invalid titles.
@Jdforrester-WMF
We could temporarily disable the following instruction in interwiki.php:
'__global:abstract' => '0 https://abstract.wikipedia.org/wiki/$1',
Would it be okay to do so to proceed with the move?
Try running namespaceDupes with --move-talk (in addition to the --source-pseudo-namepace param required to handle the space for frwiki)
(Why isn't --move-talk the default?)
Or, as the ultimate failsafe you can run cleanupTitles.php to fix all invalid titles no matter how they became invalid but it's slow because it looks at every page on the wiki.
Mentioned in SAL (#wikimedia-operations) [2026-03-30T18:07:04Z] <jforrester@deploy2002> mwscript-k8s job started: maintenance/namespaceDupes.php --wiki=frwiki --source-pseudo-namespace=Abstract_ --fix --move-talk # T420654 abstract: is now an interwiki
Aha, perfect. Done, and it seems to work.
(Why isn't --move-talk the default?)
Indeed. Filed as T421759: namespaceDupes: Make --move-talk default-on.