Page MenuHomePhabricator

Deal with Manual of Style pseudo-namespaces conflicting with Mooré Wikipedia
Open, Needs TriagePublic

Description

See https://meta.wikimedia.org/wiki/Requests_for_new_languages/Wikipedia_Moor%C3%A9#Comments.

(LangCom has decided that this is not their problem at https://meta.wikimedia.org/wiki/Talk:Language_committee#Approval_Request_for_Moor%C3%A9_Wikipedia)

Possibilities include:

  • Accept that the English Wikipedia is going to get screwed. This seems seriously unwise and likely to incite a user revolt.
  • Create the wiki at some other name like "mos-x-deconflict.wikipedia.org" (using the BCP47 private subtag syntax is probably the least bad). This would work, probably without major changes, but doesn't feel right.
  • Create the wiki at mos.wikipedia.org and add hacks to the dumpInterwiki script in MediaWiki-extensions-WikimediaMaintenance so, either only for enwiki or for all wikis mos: doesn't become an interwiki. I've written a patch for this locally, and it's similar to what we already do for Swedish ("s:" isn't an interwiki on Swedish Wikipedia because they abbreviate "saint" as s:t), but that caused problems like T177913 and probably others.
  • Convert the MOS: enwiki pseudo-namespace to a real namespace (which overrides interwikis), and do something similar with WikimediaMaintenance to add an interwiki with some other name like "mos-x-deconflict"
  • Someone on enwiki suggested making interwiki prefixes case-sensitive and having "mos": point to the project while "MOS:" is a pseudo-namespace. This isn't how either concept currently works, and will probably break things elsewhere
  • Something else I haven't thought of?

EDIT 2024-09-09: Current working plan is outlined at T363538#10121857. Briefly: add MOS as a "real" namespace on most wikis which contain "MOS:xxx" pages which will ensure existing "MOS:xxx" links don't break. Then fix some bugs with wikibase and CirrusSearch when namespaces and interwikis conflict, add a new parser function to be able to unambiguously create a language link/interwiki when there is a conflicting namespace, and then add moswiki as an interwiki.

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

slwiki outputs: namespaceDupes with --add-prefix at P68797, cleanupTitles at P68798.

Mentioned in SAL (#wikimedia-operations) [2024-09-10T14:14:19Z] <Lucas_WMDE> lucaswerkmeister-wmde@mwmaint1002:~$ mwscript namespaceDupes thwiki --source-pseudo-namespace MOS --dest-namespace 126 --move-talk --add-prefix=T363538/ --fix | tee T363538-thwiki-namespaceDupes

Mentioned in SAL (#wikimedia-operations) [2024-09-10T14:14:33Z] <Lucas_WMDE> lucaswerkmeister-wmde@mwmaint1002:~$ mwscript cleanupTitles thwiki | tee T363538-thwiki-cleanupTitles

thwiki outputs: namespaceDupes with --add-prefix at P68799, cleanupTitles at P68800.

Mentioned in SAL (#wikimedia-operations) [2024-09-10T14:15:58Z] <Lucas_WMDE> lucaswerkmeister-wmde@mwmaint1002:~$ mwscript namespaceDupes zhwiki --source-pseudo-namespace MOS --dest-namespace 126 --move-talk --add-prefix=T363538/ --fix | tee T363538-zhwiki-namespaceDupes

Mentioned in SAL (#wikimedia-operations) [2024-09-10T14:16:17Z] <Lucas_WMDE> lucaswerkmeister-wmde@mwmaint1002:~$ mwscript cleanupTitles zhwiki | tee T363538-zhwiki-cleanupTitles

zhwiki outputs: namespaceDupes with --add-prefix at P68803, cleanupTitles compressed with zstd -19:

And with that, all the wikis from T363538#10131953 should be done: aswiki, bnwiki, dagwiki, idwiki, jawiki, mswiki, simplewiki, slwiki, thwiki, zhwiki.

enwiki remains to be done, presumably soon, once the changes to the above wikis have been verified.

Apologies for the email spam to everyone subscribed here, but it’s important to keep track of the maintenance scripts that were run and their outputs.

Comments for whoever does the enwiki run:

  • make sure you run the maintenance script in a server-side tmux or screen session in case your connection dies
  • namespaceDupes without --add-prefix or --add-suffix will probably say “Oh noeees” at the end, that’s an indication that the prefix or suffix is needed for at least one title (MOS:) :)
  • when actually running namespaceDupes, you may as well include --add-prefix directly, it’s not necessary to first run the script without it (the prefix is only added when needed anyway)
  • namespaceDupes will probably take a couple of minutes but not too long (and there should be a steady stream of output)
  • cleanupTitles will take a while (it goes through the whole page table!) and be quite chatty while it runs, just leave it running
    • based on the zhwiki run, I’d estimate it should take just under half an hour
    • its estimate of the total number of pages isn’t totally accurate, so don’t panic if the output crosses “100% done” (zhwiki finished at “104.20% done” – just give it a few more moments) or finishes “early” (bnwiki finished with “99.77% done”), it’s fine
    • if you want to post its output on Phabricator you’ll definitely have to compress it (try zstd -19, and if that’s not enough, maybe even bzip2)

I would recommend the following two commands:

mwscript namespaceDupes enwiki --source-pseudo-namespace MOS --dest-namespace 126 --move-talk --add-prefix=T363538/ --fix | tee T363538-enwiki-namespaceDupes
mwscript cleanupTitles enwiki | tee T363538-enwiki-cleanupTitles

If you want a dry run first, remove --fix from namespaceDupes and add --dry-run to cleanupTitles. (Though a cleanupTitles dry run is going to take just as long as the real run, I think, so honestly I wouldn’t bother with that. But for namespaceDupes it could be useful.)

For the record, the changes actually made by cleanupTitles (to put them in one place rather than scattered across several huge or compressed files)

Aswiki:

page 21243 (MoS:HEAD) doesn't match self.
renaming 21243 (0,'MoS:HEAD') to (0,'Broken/MOS:HEAD')
page 21244 (Mos:head) doesn't match self.
renaming 21244 (0,'Mos:head') to (0,'Broken/MOS:Head')
page 21246 (MoS:) is illegal.
renaming 21246 (0,'MoS:') to (0,'Broken/MoS:')
page 21264 (MoS:IMAGES) doesn't match self.
renaming 21264 (0,'MoS:IMAGES') to (0,'Broken/MOS:IMAGES')
page 21317 (MoS:DASH) doesn't match self.
renaming 21317 (0,'MoS:DASH') to (0,'Broken/MOS:DASH')
page 21322 (MoS:HYPHEN) doesn't match self.
renaming 21322 (0,'MoS:HYPHEN') to (0,'Broken/MOS:HYPHEN')
Finished page... 6 of 96155 rows updated

Bnwiki:

page 108587 (MoS:) is illegal.
renaming 108587 (0,'MoS:') to (0,'Broken/MoS:')
Finished page... 1 of 1269075 rows updated

Dagwiki:
No changes
Idwiki:
No changes
jawiki:
No changes
mswiki:
No changes
simplewiki:
No changes
slwiki:
No changes
thwiki:
No changes
zhwiki:
No changes

Posted on village pumps about broken/renamed pages:

  1. https://as.wikipedia.org/wiki/%E0%A7%B1%E0%A6%BF%E0%A6%95%E0%A6%BF%E0%A6%AA%E0%A6%BF%E0%A6%A1%E0%A6%BF%E0%A6%AF%E0%A6%BC%E0%A6%BE:%E0%A7%B0%E0%A6%BE%E0%A6%87%E0%A6%9C%E0%A7%B0_%E0%A6%9A%27%E0%A7%B0%E0%A6%BE_(%E0%A6%AC%E0%A6%BF%E0%A6%AC%E0%A6%BF%E0%A6%A7)#MOS_namespace_transition
  2. https://bn.wikipedia.org/w/index.php?title=%E0%A6%89%E0%A6%87%E0%A6%95%E0%A6%BF%E0%A6%AA%E0%A6%BF%E0%A6%A1%E0%A6%BF%E0%A6%AF%E0%A6%BC%E0%A6%BE%3A%E0%A6%86%E0%A6%B2%E0%A7%8B%E0%A6%9A%E0%A6%A8%E0%A6%BE%E0%A6%B8%E0%A6%AD%E0%A6%BE%2F%E0%A6%B8%E0%A6%82%E0%A6%AC%E0%A6%BE%E0%A6%A6#MOS_namespace_transition
  3. https://dag.wikipedia.org/wiki/Wikipedia:Mabiligu_dund%C9%94%C5%8B#MOS_namespace_transition
  4. https://id.wikipedia.org/wiki/Wikipedia:Warung_Kopi_(Teknis)#MOS_namespace_transition
  5. https://ja.wikipedia.org/wiki/Wikipedia:%E3%83%90%E3%82%B0%E3%81%AE%E5%A0%B1%E5%91%8A#MOS_namespace_transition
  6. https://ms.wikipedia.org/wiki/Wikipedia:Kedai_Kopi_(teknikal)#MOS_namespace_transition
  7. https://simple.wikipedia.org/wiki/Wikipedia:Simple_talk#MOS_namespace_transition
  8. https://sl.wikipedia.org/wiki/Wikipedija:Pod_lipo#MOS_namespace_transition
  9. https://th.wikipedia.org/wiki/%E0%B8%A7%E0%B8%B4%E0%B8%81%E0%B8%B4%E0%B8%9E%E0%B8%B5%E0%B9%80%E0%B8%94%E0%B8%B5%E0%B8%A2:%E0%B8%AA%E0%B8%96%E0%B8%B2%E0%B8%99%E0%B8%97%E0%B8%B9%E0%B8%95%E0%B8%A7%E0%B8%B4%E0%B8%81%E0%B8%B4%E0%B8%A1%E0%B8%B5%E0%B9%80%E0%B8%94%E0%B8%B5%E0%B8%A2#MOS_namespace_transition
  10. https://zh.wikipedia.org/wiki/Wikipedia:%E4%BA%92%E5%8A%A9%E5%AE%A2%E6%A0%88/%E6%8A%80%E6%9C%AF#MOS_namespace_transition

All Meta links are just soft redirects to enWP:
https://meta.wikimedia.org/wiki/Special:PrefixIndex/MOS:

Additionally, it is an easy way for those wikis where MOS: namespace would exist to link to a page in Mossi WP with [[m:mos:]] syntax. It is better not to add a namespace there for those reasons.

And testWP doesn’t seem to have any pages under MOS:? https://test.wikipedia.org/wiki/Special:PrefixIndex/MOS:

I've deleted the metawiki pages as a local admin.

Teswiki has https://test.wikipedia.org/wiki/Wikipedia:MOS:L, which isn't actually affected but my script for checking these things thought it was.

Tentatively, I plan to do enwiki on Thursday; I'll give folks here a couple of days to poke at what was done on as/bn/dag/id/ja/ms/simple/sl/th/zh and see if anything broke. The main issue seems to be the [[MOS:]]/[[MoS:]] pages, which get moved to [[MOS:T363538]] or [[Broken/MoS:]] respectively.

Change #1071942 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/extensions/Wikibase@master] Pass language links as TitleValue, not as strings

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

Confusing request left for enwiki community at: https://en.wikipedia.org/w/index.php?title=Wikipedia:Village_pump_(technical)&oldid=1245192151#Cleaning_up_MOS%3A_links - can someone clarify there in a way that is very clear to editors about what is changing, what is breaking, etc.

First read seems to be asking for editors to update many many pages with 1 day notice.

@Xaosflux: it refers to simple [[MOS:]] / [[MoS:]] links. Those would break when the namespace is created. Not to [[MOS:ABCD]] etc., those can be left as is.

For benefit of deployers:

  • make sure you run the maintenance script in a server-side tmux or screen session in case your connection dies
  • namespaceDupes without --add-prefix or --add-suffix will probably say “Oh noeees” at the end, that’s an indication that the prefix or suffix is needed for at least one title (MOS:) :)
  • when actually running namespaceDupes, you may as well include --add-prefix directly, it’s not necessary to first run the script without it (the prefix is only added when needed anyway)
  • namespaceDupes will probably take a couple of minutes but not too long (and there should be a steady stream of output)
  • cleanupTitles will take a while (it goes through the whole page table!) and be quite chatty while it runs, just leave it running
    • based on the zhwiki run, I’d estimate it should take just under half an hour
    • its estimate of the total number of pages isn’t totally accurate, so don’t panic if the output crosses “100% done” (zhwiki finished at “104.20% done” – just give it a few more moments) or finishes “early” (bnwiki finished with “99.77% done”), it’s fine
    • if you want to post its output on Phabricator you’ll definitely have to compress it (try zstd -19, and if that’s not enough, maybe even bzip2)

These are the commands Lucas recommends for the enwiki deploy:

mwscript namespaceDupes enwiki --source-pseudo-namespace MOS --dest-namespace 126 --move-talk --add-prefix=T363538/ --fix | tee T363538-enwiki-namespaceDupes
mwscript cleanupTitles enwiki | tee T363538-enwiki-cleanupTitles

If you want a dry run first, remove --fix from namespaceDupes and add --dry-run to cleanupTitles. (Though a cleanupTitles dry run is going to take just as long as the real run, I think, so honestly I wouldn’t bother with that. But for namespaceDupes it could be useful.)

Change #1072300 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Skin: don't reparse language link titles

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

Change #1071067 merged by jenkins-bot:

[operations/mediawiki-config@master] Elevate pseudo-namespace MOS to a real namespace on enwiki

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

Mentioned in SAL (#wikimedia-operations) [2024-09-12T13:31:34Z] <hashar@deploy1003> Started scap sync-world: Backport for [[gerrit:1071067|Elevate pseudo-namespace MOS to a real namespace on enwiki (T363538)]]

Mentioned in SAL (#wikimedia-operations) [2024-09-12T13:33:34Z] <hashar@deploy1003> cscott, hashar: Backport for [[gerrit:1071067|Elevate pseudo-namespace MOS to a real namespace on enwiki (T363538)]] synced to the testservers (https://wikitech.wikimedia.org/wiki/Mwdebug)

Mentioned in SAL (#wikimedia-operations) [2024-09-12T13:38:14Z] <hashar@deploy1003> Finished scap sync-world: Backport for [[gerrit:1071067|Elevate pseudo-namespace MOS to a real namespace on enwiki (T363538)]] (duration: 06m 39s)

Mentioned in SAL (#wikimedia-operations) [2024-09-12T13:42:58Z] <hashar> Afternoon backport deployments are completed . NamespaceDupe is being run on enwiki for T363538#10140642

Mentioned in SAL (#wikimedia-operations) [2024-09-12T13:43:01Z] <cscott> mwscript namespaceDupes enwiki --source-pseudo-namespace MOS --dest-namespace 126 --move-talk --add-prefix=T363538/ --fix | tee ~/T363538-enwiki-namespaceDupes

Mentioned in SAL (#wikimedia-operations) [2024-09-12T13:50:01Z] <cscott> mwscript namespaceDupes enwiki --source-pseudo-namespace MOS --dest-namespace 126 --move-talk --add-suffix=/T363538 --fix 2>&1 | tee ~/T363538-enwiki-namespaceDupes.take2

enwiki outputs:

  • namespaceDupes with prefix at F57503089
    • crashed with MOS:_OVERLINKING (we saw this issue with underscore prefixed names on aswiki as well)
  • namespaceDupes with suffix at F57503090
  • cleanupTitles - with progress messages filtered F57503171; full log bzip2'ed F57503178

Mentioned in SAL (#wikimedia-operations) [2024-09-12T13:56:22Z] <cscott> mwscript cleanupTitles enwiki 2>&1 | tee ~/T363538-enwiki-cleanupTitles

Mentioned in SAL (#wikimedia-operations) [2024-09-12T14:30:07Z] <cscott> cleanupTitles on enwiki complete (T363538)

Here's the list of special cases on enwiki:

MOS: -> MOS:T363538/ (alternate)
MOS:: -> MOS:T363538/: (alternate)
MOS::HEADINGS -> MOS:T363538/:HEADINGS (alternate)
MOS:_OVERLINKING -> MOS:OVERLINKING/T363538 (alternate)
MOS:all-caps -> MOS:All-caps/T363538 (alternate)
MOS:co -> MOS:Co/T363538 (alternate)
MOS:col -> MOS:Col/T363538 (alternate)
MOS:collapse -> MOS:Collapse/T363538 (alternate)
MOS:disambiguation -> MOS:Disambiguation/T363538 (alternate)
MOS:layout -> MOS:Layout/T363538 (alternate)
MOS:music -> MOS:Music/T363538 (alternate)
MOS:overlink -> MOS:Overlink/T363538 (alternate)
MOS:time -> MOS:Time/T363538 (alternate)
MOS:x86 -> MOS:X86/T363538 (alternate)
MOS: -> MOS_talk:/T363538 (alternate)

and

('MoS:ABBR') to ('Broken/MOS:ABBR')
('MoS:ABB') to ('Broken/MOS:ABB')
('MoS:ACRO') to ('Broken/MOS:ACRO')
('Mos:amp') to ('MOS:Amp')
('MoS:BIO') to ('Broken/MOS:BIO')
('Mos:bio') to ('MOS:Bio')
('Mos:bold') to ('Broken/MOS:Bold')
('Mos:caps') to ('Broken/MOS:Caps')
('MoS:CAPS') to ('Broken/MOS:CAPS')
('MoS:COMMA') to ('Broken/MOS:COMMA')
('MoS:CT') to ('Broken/MOS:CT')
('MoS:CURRENCY') to ('Broken/MOS:CURRENCY')
('Mos:dabrl') to ('MOS:Dabrl')
('Mos:DAB') to ('Broken/id:_3949249')
('Mos:Dab') to ('Broken/id:_3949265')
('MoS:Dab') to ('Broken/id:_54822247')
('Mos:dab') to ('Broken/MOS:Dab')
('MoS:DAB') to ('Broken/MOS:DAB')
('Mos:DASH') to ('Broken/id:_57299288')
('MoS:DASH') to ('Broken/MOS:DASH')
('MoS:DATARANGE') to ('MOS:DATARANGE')
('MoS:DATERANGE') to ('Broken/MOS:DATERANGE')
('Mos:dates') to ('Broken/MOS:Dates')
('Mos:date') to ('Broken/MOS:Date')
('MoS:DATE') to ('Broken/MOS:DATE')
('Mos:disambig') to ('MOS:Disambig')
('Mos:dl') to ('MOS:Dl')
('Mos:DOB') to ('Broken/MOS:DOB')
('Mos:DP') to ('Broken/id:_3949243')
('Mos:Dp') to ('Broken/MOS:Dp')
('MoS:DP') to ('Broken/MOS:DP')
('Mos:dp') to ('MOS:Dp')
('MoS:D') to ('Broken/MOS:D')
('MoS:EDITORIAL') to ('Broken/MOS:EDITORIAL')
('MoS:EGG') to ('Broken/MOS:EGG')
('Mos:ethnicity') to ('Broken/MOS:Ethnicity')
('Mos:film') to ('Broken/MOS:Film')
('Mos:first') to ('MOS:First')
('Mos:Flag') to ('Broken/id:_74828646')
('Mos:flag') to ('Broken/MOS:Flag')
('Mos:genitive') to ('MOS:Genitive')
('Mos:hash') to ('MOS:Hash')
('MoS:Headings') to ('Broken/id:_57903205')
('Mos:headings') to ('Broken/MOS:Headings')
('MoS:HEADINGS') to ('Broken/MOS:HEADINGS')
('MoS:Heading') to ('Broken/MOS:Heading')
('Mos:head') to ('Broken/MOS:Head')
('MoS:HEAD') to ('Broken/MOS:HEAD')
('MoS:HYPHEN') to ('Broken/MOS:HYPHEN')
('MoS:IMAGES') to ('Broken/MOS:IMAGES')
('Mos:imgloc') to ('MOS:Imgloc')
('Mos:islamhon') to ('MOS:Islamhon')
('MoS:J') to ('Broken/MOS:J')
('Mos:layout') to ('Broken/MOS:Layout')
('Mos:lds') to ('MOS:Lds')
('Mos:leadimage') to ('MOS:Leadimage')
('Mos:lead') to ('Broken/MOS:Lead')
('Mos:link') to ('MOS:Link')
('Mos:lq') to ('MOS:Lq')
('MoS:L') to ('Broken/MOS:L')
('MoS:MATH') to ('Broken/MOS:MATH')
('Mos:milterms') to ('MOS:Milterms')
('MoS:MUSIC') to ('Broken/MOS:MUSIC')
('MoS:NAMES') to ('Broken/MOS:NAMES')
('Mos:names') to ('MOS:Names')
('Mos:Neo') to ('Broken/MOS:Neo')
('Mos:nopipe') to ('MOS:Nopipe')
('MoS:NUM') to ('Broken/MOS:NUM')
('Mos:order') to ('Broken/MOS:Order')
('Mos:overlink') to ('Broken/MOS:Overlink')
('MoS:PIPE') to ('Broken/MOS:PIPE')
('Mos:pn') to ('MOS:Pn')
('Mos:poss') to ('MOS:Poss')
('Mos:puffery') to ('Broken/MOS:Puffery')
('MoS:PUNCT') to ('Broken/MOS:PUNCT')
('Mos:quotename') to ('MOS:Quotename')
('Mos:ref') to ('MOS:Ref')
('MoS:RJL') to ('Broken/MOS:RJL')
('Mos:rt') to ('MOS:Rt')
('Mos:RT') to ('MOS:RT')
('Mos:seaofblue') to ('MOS:Seaofblue')
('Mos:time') to ('Broken/MOS:Time')
('Mos:TITLES') to ('Broken/MOS:TITLES')
('MoS:TITLE') to ('Broken/MOS:TITLE')
('Mos:title') to ('MOS:Title')
('Mos:TM') to ('Broken/id:_23617928')
('MoS:TM') to ('Broken/MOS:TM')
('Mos:') to ('Broken/Mos:')
('MoS:') to ('Broken/MoS:')
('MoS:T') to ('Broken/MOS:T')
('Mos:tvproduction') to ('MOS:Tvproduction')
('Mos:ul') to ('MOS:Ul')
('Mos:unlinkdates') to ('MOS:Unlinkdates')
('MoS:UNLINKYEARS') to ('Broken/MOS:UNLINKYEARS')
('MoS:WORDSASWORDS') to ('Broken/MOS:WORDSASWORDS')
('MoS:WORDS') to ('Broken/MOS:WORDS')
('MoS:Words_to_watch') to ('Broken/MOS:Words_to_watch')
('Talk:MoS:ABBR') to ('MOS_talk:ABBR')
('Talk:MoS:ABB') to ('MOS_talk:ABB')
('Talk:MoS:ACRO') to ('MOS_talk:ACRO')
('Talk:Mos:amp') to ('MOS_talk:Amp')
('Talk:Mos:bio') to ('MOS_talk:Bio')
('Talk:MoS:BIO') to ('MOS_talk:BIO')
('Talk:Mos:bold') to ('Broken/Talk:Mos:bold')
('Talk:MoS:CAPS') to ('MOS_talk:CAPS')
('Talk:MoS:COMMA') to ('MOS_talk:COMMA')
('Talk:MoS:CT') to ('MOS_talk:CT')
('Talk:MoS:CURRENCY') to ('MOS_talk:CURRENCY')
('Talk:Mos:dabrl') to ('MOS_talk:Dabrl')
('Talk:Mos:dab') to ('Broken/Talk:Mos:dab')
('Talk:Mos:DAB') to ('MOS_talk:Broken/id:57665624')
('Talk:Mos:Dab') to ('MOS_talk:Broken/id:57665626')
('Talk:MoS:Dab') to ('MOS_talk:Dab')
('Talk:MoS:DAB') to ('MOS_talk:DAB')
('Talk:Mos:DASH') to ('MOS_talk:Broken/id:57665623')
('Talk:MoS:DASH') to ('MOS_talk:DASH')
('Talk:Mos:dates') to ('MOS_talk:Dates')
('Talk:Mos:date') to ('MOS_talk:Date')
('Talk:MoS:DATE') to ('MOS_talk:DATE')
('Talk:Mos:disambig') to ('MOS_talk:Disambig')
('Talk:Mos:DOB') to ('MOS_talk:DOB')
('Talk:Mos:DP') to ('MOS_talk:Broken/id:57665629')
('Talk:Mos:dp') to ('MOS_talk:Broken/id:57665649')
('Talk:Mos:Dp') to ('MOS_talk:Dp')
('Talk:MoS:DP') to ('MOS_talk:DP')
('Talk:MoS:D') to ('MOS_talk:D')
('Talk:Mos:film') to ('MOS_talk:Film')
('Talk:Mos:Flag') to ('Broken/Talk:Mos:Flag')
('Talk:Mos:flag') to ('MOS_talk:Flag')
('Talk:Mos:hash') to ('MOS_talk:Hash')
('Talk:Mos:headings') to ('MOS_talk:Headings')
('Talk:Mos:head') to ('MOS_talk:Head')
('Talk:MoS:HEAD') to ('MOS_talk:HEAD')
('Talk:MoS:HYPHEN') to ('Broken/Talk:MoS:HYPHEN')
('Talk:MoS:IMAGES') to ('Broken/Talk:MoS:IMAGES')
('Talk:Mos:imgloc') to ('MOS_talk:Imgloc')
('Talk:MoS:J') to ('MOS_talk:J')
('Talk:Mos:layout') to ('MOS_talk:Layout')
('Talk:Mos:lds') to ('MOS_talk:Lds')
('Talk:Mos:link') to ('MOS_talk:Link')
('Talk:Mos:lq') to ('MOS_talk:Lq')
('Talk:MoS:L') to ('MOS_talk:L')
('Talk:MoS:MATH') to ('MOS_talk:MATH')
('Talk:Mos:milterms') to ('MOS_talk:Milterms')
('Talk:MoS:MUSIC') to ('MOS_talk:MUSIC')
('Talk:MoS:NAMES') to ('Broken/Talk:MoS:NAMES')
('Talk:Mos:names') to ('MOS_talk:Names')
('Talk:Mos:Neo') to ('MOS_talk:Neo')
('Talk:Mos:nopipe') to ('MOS_talk:Nopipe')
('Talk:MoS:NUM') to ('MOS_talk:NUM')
('Talk:Mos:order') to ('Broken/Talk:Mos:order')
('Talk:Mos:overlink') to ('MOS_talk:Overlink')
('Talk:MoS:PIPE') to ('MOS_talk:PIPE')
('Talk:Mos:pn') to ('MOS_talk:Pn')
('Talk:Mos:poss') to ('MOS_talk:Poss')
('Talk:MoS:PUNCT') to ('MOS_talk:PUNCT')
('Talk:MoS:RJL') to ('MOS_talk:RJL')
('Talk:Mos:RT') to ('MOS_talk:RT')
('Talk:Mos:time') to ('MOS_talk:Time')
('Talk:Mos:TITLES') to ('MOS_talk:TITLES')
('Talk:Mos:title') to ('MOS_talk:Title')
('Talk:MoS:TITLE') to ('MOS_talk:TITLE')
('Talk:Mos:TM') to ('Broken/Talk:Mos:TM')
('Talk:MoS:TM') to ('Broken/Talk:MoS:TM')
('Talk:MoS:T') to ('MOS_talk:T')
('Talk:Mos:unlinkdates') to ('MOS_talk:Unlinkdates')
('Talk:MoS:UNLINKYEARS') to ('Broken/Talk:MoS:UNLINKYEARS')
('Talk:MoS:WORDSASWORDS') to ('MOS_talk:WORDSASWORDS')
('Talk:MoS:WORDS') to ('MOS_talk:WORDS')
('Talk:MoS:Words_to_watch') to ('MOS_talk:Words_to_watch')

Seems like Talk:MoS: variations are mostly deletable given that they relate to the discussions that are no longer related to the pages they got merged to (RfD notices about MoS:/Mos:/etc. redirects).

This is up to the enwiki admins (a group that does not contain me anymore), but I agree that eventhing in Broken/ can probably be deleted.

Current status: with MOS rolled out as a "real" namespace, links on enwiki to [[MOS;]] will not break if/when mos: is added as an interwiki prefix.

Interlanguage and interwiki links should work on all sites where MOS is not a namespace (everything but the 11 wikis listed above). However on enwiki the following fixes will be needed:

With the above patches, language links from wikidata to moswiki should display correctly on enwiki, however there'd be no way to add language links to mos from wikitext on enwiki, and interwiki links would have to be written as [[m:mos:....]], (ab)using the fact that metawiki does not have a MOS namespace.

For first class support for language and interwiki links where namespace and prefix collide, you'd need:

or something like it. (Scribunto's title.makeTitle method can already create titles with an explicit interwiki portion, but it may be that some lua code on-wiki still would need to be patched to be more careful about reparsing language links.)

Just to keep all the links in this task, as with the other wikis (T363538#10134707) I posted on enwiki announcing the change and listing the broken titles:

Change #1072601 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] ApiParse: don't reparse language link titles

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

Note: after moswiki is created, cleanupTitles should be run in wikis still have MOS: pages in main namespace (the second list of T363538#10123348) so that such pages can be recovered.

Change #1071942 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Pass language links as TitleValue, not as strings

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

Change #1072878 had a related patch set uploaded (by Ebrahim; author: Ebrahim):

[operations/mediawiki-config@master] Elevate pseudo-namespace MOS to a real namespace on fawiki

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

This comment was removed by Ebrahim.

Change #1072878 abandoned by Ebrahim:

[operations/mediawiki-config@master] Add a new namespace for MOS on fawiki

Reason:

Not actually needed or should be discussed separately

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

Change #1071239 merged by jenkins-bot:

[mediawiki/core@master] ParserOutput::collectMetadata(): fix handling of links

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

Change #1072300 merged by jenkins-bot:

[mediawiki/core@master] Skin: don't reparse language link titles

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

Change #1072601 merged by jenkins-bot:

[mediawiki/core@master] ApiParse: don't reparse language link titles

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

Mentioned in SAL (#wikimedia-operations) [2024-09-24T22:33:39Z] <zabe> zabe@mwmaint1002:~/T363538$ mwscript cleanupTitles.php --wiki=elwiki # T363538

Mentioned in SAL (#wikimedia-operations) [2024-09-24T22:33:45Z] <zabe> zabe@mwmaint1002:~/T363538$ mwscript cleanupTitles.php --wiki=cawiki # T363538

Mentioned in SAL (#wikimedia-operations) [2024-09-24T22:34:16Z] <zabe> zabe@mwmaint1002:~/T363538$ mwscript cleanupTitles.php --wiki=eowikinews # T363538

Mentioned in SAL (#wikimedia-operations) [2024-09-24T22:34:31Z] <zabe> zabe@mwmaint1002:~/T363538$ mwscript cleanupTitles.php --wiki=foundationwiki # T363538

Mentioned in SAL (#wikimedia-operations) [2024-09-24T22:34:50Z] <zabe> zabe@mwmaint1002:~/T363538$ mwscript cleanupTitles.php --wiki=gurwiki # T363538

Mentioned in SAL (#wikimedia-operations) [2024-09-24T22:35:06Z] <zabe> zabe@mwmaint1002:~/T363538$ mwscript cleanupTitles.php --wiki=metawiki # T363538

Mentioned in SAL (#wikimedia-operations) [2024-09-24T22:41:44Z] <zabe> zabe@mwmaint1002:~/T363538$ mwscript cleanupTitles.php --wiki=orwiki # T363538

Mentioned in SAL (#wikimedia-operations) [2024-09-24T22:42:03Z] <zabe> zabe@mwmaint1002:~/T363538$ mwscript cleanupTitles.php --wiki=pawiki # T363538

Mentioned in SAL (#wikimedia-operations) [2024-09-24T22:42:16Z] <zabe> zabe@mwmaint1002:~/T363538$ mwscript cleanupTitles.php --wiki=testwiki # T363538

Mentioned in SAL (#wikimedia-operations) [2024-09-24T22:42:35Z] <zabe> zabe@mwmaint1002:~/T363538$ mwscript cleanupTitles.php --wiki=tumwiki # T363538

Mentioned in SAL (#wikimedia-operations) [2024-09-24T22:42:50Z] <zabe> zabe@mwmaint1002:~/T363538$ mwscript cleanupTitles.php --wiki=viwiki # T363538

Note: after moswiki is created, cleanupTitles should be run in wikis still have MOS: pages in main namespace (the second list of T363538#10123348) so that such pages can be recovered.

Did this now. Had to gzip the output of metawiki and viwiki, since it would go beyond the phab file upload limit otherwise.

cawiki: P69401
elwiki: P69402
eowikinews: P69403
foundationwiki: P69404
gurwiki: P69405
metawiki:


orwiki: P69406
pawiki: P69407
testwiki: P69408
tumwiki: P69409
viwiki:

Interlanguage and interwiki links should work on all sites where MOS is not a namespace (everything but the 11 wikis listed above). However on enwiki the following fixes will be needed:

With the above patches, language links from wikidata to moswiki should display correctly on enwiki, however there'd be no way to add language links to mos from wikitext on enwiki, and interwiki links would have to be written as [[m:mos:....]], (ab)using the fact that metawiki does not have a MOS namespace.

Just a note, since the wiki is now live:

Since [[:mos:]] interlanguage links still don't work at the English Wikipedia, [[w:mos:]] links also don't work from all other English projects (meaning English Wiktionary, English Wikibooks, etc.), since such links are actually rendered as: "https://en.wikipedia.org/mos:". (And a link like [[:mos:w:]] won't work either, because there is no Mooré Wiktionary, Mooré Wikibooks, etc.)

So, [[m:mos:]] actually needs to be used from all English projects, not just Wikipedia.

That's odd. I was expecting https://en.wiktionary.org/wiki/mos:w:foo to work, since that does work for language interwikis (i.e https://cs.wikivoyage.org/wiki/en:foo does work). But I see now why that doesn't and it's not an easy fix.

Change #1075957 had a related patch set uploaded (by Pppery; author: Pppery):

[operations/mediawiki-config@master] Missing.php: Improve detection of interwikis in certain cases

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

Above patch will make "mos:w" work from English Wiktionary (and is not specific to Moore - it will make "language:w:" work for any language with a Wikipedia even if the project it is on doesn't have a version in that language)

Although I'm not sure who's going to code review it. Missing.php is largely unowned code.

Change #1075957 merged by jenkins-bot:

[operations/mediawiki-config@master] Missing.php: Improve detection of interwikis in certain cases

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

Mentioned in SAL (#wikimedia-operations) [2024-10-15T20:33:21Z] <cjming@deploy2002> Started scap sync-world: Backport for [[gerrit:1075957|Missing.php: Improve detection of interwikis in certain cases (T363538)]]

Mentioned in SAL (#wikimedia-operations) [2024-10-15T20:35:38Z] <cjming@deploy2002> cjming, pppery: Backport for [[gerrit:1075957|Missing.php: Improve detection of interwikis in certain cases (T363538)]] synced to the testservers (https://wikitech.wikimedia.org/wiki/Mwdebug)

https://en.wiktionary.org/wiki/mos:w:foo (or "mos:w:foo" links from English Wiktionary or other English projects) now work.

Mentioned in SAL (#wikimedia-operations) [2024-10-15T20:42:12Z] <cjming@deploy2002> Finished scap sync-world: Backport for [[gerrit:1075957|Missing.php: Improve detection of interwikis in certain cases (T363538)]] (duration: 08m 50s)

Change #1071016 merged by jenkins-bot:

[mediawiki/core@master] Add new core parser functions {{#iwlink}} and {{#langlink}}

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

Change #1093420 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Rename {{#iwlink}} and {{#langlink}} to {{#interwikilink}} and {{#languagelink}}

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