- Ensure T402549: ptwikibooks: Convert LQT pages to Flow is done
- Ensure T402532: ptwikibooks: LQT set to readonly and removed as default is done
- Run FlowMoveBoardsToSubpages on ptwikibooks
- Attach logs to this ticket
- Make sure all of the Flow boards were properly moved and move those that weren't.
- All Flow pages are set in read-only mode (wgFlowReadOnly set to true)
Description
Details
Event Timeline
Good news: looks like DiscussionTools exists by default and I don't need to enable it manually
One page archived as a test: https://pt.wikibooks.org/wiki/Utilizador_Discuss%C3%A3o:Roan_Kattouw_(WMF)
Will run the rest later assuming this is ok.
We've come across a few pages (2 in the first 4,000) that trigger an exception in Parsoid, probably due to using and old version of Parsoid HTML:
UnexpectedValueException from line 730 of /srv/mediawiki/php-1.46.0-wmf.3/vendor/wikimedia/parsoid/src/Utils/DOMDataUtils.php: Unable to decode data-mw [{"parts":[{"template":{"target":{"wt":"fullurl:User talk:Raylton P. Sousa","function":"fullurl"},"params":{"action":{"wt":"edit§ion=new"}},"i":0}}]}]
#0 /srv/mediawiki/php-1.46.0-wmf.3/vendor/wikimedia/parsoid/src/Utils/DOMDataUtils.php(674): Wikimedia\Parsoid\Utils\DOMDataUtils::loadDataAttribs(Object(Wikimedia\Parsoid\DOM\Element), Array)
#1 /srv/mediawiki/php-1.46.0-wmf.3/vendor/wikimedia/parsoid/src/Utils/DOMUtils.php(73): Wikimedia\Parsoid\Utils\DOMDataUtils::Wikimedia\Parsoid\Utils\{closure}(Object(Wikimedia\Parsoid\DOM\Element), Array)
#2 /srv/mediawiki/php-1.46.0-wmf.3/vendor/wikimedia/parsoid/src/Utils/DOMUtils.php(77): Wikimedia\Parsoid\Utils\DOMUtils::visitDOM(Object(Wikimedia\Parsoid\DOM\Element), Object(Closure), Array)
#3 /srv/mediawiki/php-1.46.0-wmf.3/vendor/wikimedia/parsoid/src/Utils/DOMDataUtils.php(673): Wikimedia\Parsoid\Utils\DOMUtils::visitDOM(Object(Wikimedia\Parsoid\DOM\Element), Object(Closure), Array)
#4 /srv/mediawiki/php-1.46.0-wmf.3/vendor/wikimedia/parsoid/src/Utils/ContentUtils.php(101): Wikimedia\Parsoid\Utils\DOMDataUtils::visitAndLoadDataAttribs(Object(Wikimedia\Parsoid\DOM\DocumentFragment), Array)
#5 /srv/mediawiki/php-1.46.0-wmf.3/vendor/wikimedia/parsoid/src/Html2Wt/WikitextSerializer.php(167): Wikimedia\Parsoid\Utils\ContentUtils::createAndLoadDocumentFragment(Object(Wikimedia\Parsoid\DOM\Document), '<span about="#m...', Array)Change #1210584 had a related patch set uploaded (by Esanders; author: Esanders):
[mediawiki/extensions/Flow@master] FlowMoveBoardsToSubpages: Skip moves that throw exceptions
Change #1210584 merged by jenkins-bot:
[mediawiki/extensions/Flow@master] FlowMoveBoardsToSubpages: Skip moves that throw exceptions
Change #1211008 had a related patch set uploaded (by Esanders; author: Esanders):
[mediawiki/extensions/Flow@wmf/1.46.0-wmf.3] FlowMoveBoardsToSubpages: Skip moves that throw exceptions
Change #1211008 merged by jenkins-bot:
[mediawiki/extensions/Flow@wmf/1.46.0-wmf.3] FlowMoveBoardsToSubpages: Skip moves that throw exceptions
Mentioned in SAL (#wikimedia-operations) [2025-11-25T14:19:06Z] <tchanders@deploy2002> Started scap sync-world: Backport for [[gerrit:1211008|FlowMoveBoardsToSubpages: Skip moves that throw exceptions (T402552)]], [[gerrit:1201814|Drop $wgCampaignEventsCountrySchemaMigrationStage (T408932)]]
Mentioned in SAL (#wikimedia-operations) [2025-11-25T14:23:32Z] <tchanders@deploy2002> daimona, esanders, tchanders: Backport for [[gerrit:1211008|FlowMoveBoardsToSubpages: Skip moves that throw exceptions (T402552)]], [[gerrit:1201814|Drop $wgCampaignEventsCountrySchemaMigrationStage (T408932)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.
Mentioned in SAL (#wikimedia-operations) [2025-11-25T14:28:00Z] <tchanders@deploy2002> Finished scap sync-world: Backport for [[gerrit:1211008|FlowMoveBoardsToSubpages: Skip moves that throw exceptions (T402552)]], [[gerrit:1201814|Drop $wgCampaignEventsCountrySchemaMigrationStage (T408932)]] (duration: 08m 54s)
After the first ~4,000 flow boards moved successfully, we appear to have thousands of broken Flow boards now:
Examples:
- https://pt.wikibooks.org/wiki/Utilizador_Discuss%C3%A3o:Julia~ptwikibooks
- https://pt.wikibooks.org/wiki/Utilizador_Discuss%C3%A3o:Ronaldoh
- https://pt.wikibooks.org/wiki/Discuss%C3%A3o:Livros_ap%C3%B3crifos/Capa
The /Flow archive pages just don't exist:
- https://pt.wikibooks.org/wiki/Utilizador_Discuss%C3%A3o:Julia~ptwikibooks/Flow
- https://pt.wikibooks.org/wiki/Utilizador_Discuss%C3%A3o:Ronaldoh/Flow
- https://pt.wikibooks.org/wiki/Discuss%C3%A3o:Livros_ap%C3%B3crifos/Capa/Flow
I had a look in IA, and it seems at least some of these pages had content in the board description, if not any Flow threads:
https://web.archive.org/web/20250617223301/https://pt.wikibooks.org/wiki/Discuss%C3%A3o:Livros_ap%C3%B3crifos/Capa
The conversion script does not throw any errors on these pages, in fact it reports that as having being moved successfully, but when run again, the script doesn't recognise them as having being moved and again reports successfully moving them:
First run:
Moved 'Utilizador Discussão:Julia~ptwikibooks' to 'Utilizador Discussão:Julia~ptwikibooks/Flow' Created stub at 'Utilizador Discussão:Julia~ptwikibooks'
Second run:
Moved 'Utilizador Discussão:Julia~ptwikibooks' to 'Utilizador Discussão:Julia~ptwikibooks/Flow' Created stub at 'Utilizador Discussão:Julia~ptwikibooks'
So for these pages, there is an entry in the page table with a page_title of <old title> and there is an entry in flow_workflow withe workflow_title_text of <old title>/Flow. Which suggests that the page has only been partially moved.
This looks a lot like T371769: Moving a Flow discussion page can render it inaccessible
FlowFixInconsistentBoards detects this broken boards in a dry run, but when trying to actually fix, triggers the same Parsoid error as above. Looks like we will need to get that Parsoid fix deployed, then fix the boards, then try the moves again.
The Parsoid fix was deployed and the broken board moves have all been fixed. Re-running the move script...
The move script has resumed and appears to be working:
Moved 'Utilizador Discussão:Rafael Canhête L. Filho' to 'Utilizador Discussão:Rafael Canhête L. Filho/Flow' Created stub at 'Utilizador Discussão:Rafael Canhête L. Filho' Moved 'Utilizador Discussão:Julia~ptwikibooks' to 'Utilizador Discussão:Julia~ptwikibooks/Flow' Created stub at 'Utilizador Discussão:Julia~ptwikibooks' Moved 'Utilizador Discussão:Juulinha' to 'Utilizador Discussão:Juulinha/Flow' Created stub at 'Utilizador Discussão:Juulinha' Moved 'Utilizador Discussão:Jonas AGX' to 'Utilizador Discussão:Jonas AGX/Flow' Created stub at 'Utilizador Discussão:Jonas AGX' Moved 'Wikilivros Discussão:Portal comunitário/Apresente-se' to 'Wikilivros Discussão:Portal comunitário/Apresente-se/Flow' Created stub at 'Wikilivros Discussão:Portal comunitário/Apresente-se' Moved 'Utilizador Discussão:Julimaq' to 'Utilizador Discussão:Julimaq/Flow' Created stub at 'Utilizador Discussão:Julimaq' Moved 'Utilizador Discussão:Franprarod' to 'Utilizador Discussão:Franprarod/Flow' Created stub at 'Utilizador Discussão:Franprarod' Moved 'Utilizador Discussão:GArantes' to 'Utilizador Discussão:GArantes/Flow' Created stub at 'Utilizador Discussão:GArantes' ...
The move script is completed. 50 page were skipped for either being "standalone Flow pages" (in a subject namespace) or having no associated subject page:
Skipped 'Wikilivros:Plantão de dúvidas' as it is a standalone Flow page Skipped 'Utilizador:Alustriel/Arquivo 3' as it is a standalone Flow page Skipped 'Wikilivros:Enquete' as it is a standalone Flow page Skipped 'Wikilivros:Predefinições/Discussões' as it is a standalone Flow page Skipped 'Wikilivros:LiquidThreads' as it is a standalone Flow page Skipped 'Wikilivros:Comentários' as it is a standalone Flow page Skipped 'Wikilivros:Robôs' as it is a standalone Flow page Skipped 'Wikilivros:Filtro de edições/Problemas' as it is a standalone Flow page Skipped 'Wikilivros:Filtro de edições/Pedidos' as it is a standalone Flow page Skipped 'Discussão:Teste' as it has no associated subject page Skipped 'Discussão:Introdução' as it has no associated subject page Skipped 'Discussão:Java/O porquê de se estudar Java' as it has no associated subject page Skipped 'Discussão:Logística/Arquivo' as it has no associated subject page Skipped 'Discussão:Larry David' as it has no associated subject page Skipped 'Discussão:Suor Angelica' as it has no associated subject page Skipped 'Discussão:YDreams' as it has no associated subject page Skipped 'Discussão:Etano' as it has no associated subject page Skipped 'Discussão:Louis Vuitton' as it has no associated subject page Skipped 'Discussão:Referência rápida de C++/' as it has no associated subject page Skipped 'Wikilivros Discussão:Portal comunitário/Arquivo/Página' as it has no associated subject page Skipped 'Wikilivros Discussão:Wikilivros:Diálogos comunitários/Arquivo/Diálogos comunitários-Discussão' as it has no associated subject page Skipped 'Wikilivros Discussão:Wikilivros:Diálogos comunitários/Arquivo/Diálogos comunitários-Discussão/Arquivo' as it has no associated subject page Skipped 'Wikilivros Discussão:Página principal/Arquivo 2' as it has no associated subject page Skipped 'Wikilivros Discussão:Página principal/Arquivo 3' as it has no associated subject page Skipped 'Wikilivros Discussão:Página principal/Arquivo 4' as it has no associated subject page Skipped 'Wikilivros Discussão:Pedidos de eliminação de páginas/Arquivo 1' as it has no associated subject page Skipped 'Wikilivros Discussão:Biblioteca/Arquivo' as it has no associated subject page Skipped 'Ficheiro Discussão:Gazpar2dmod.gif' as it has no associated subject page Skipped 'Ficheiro Discussão:Gazpar3d.gif' as it has no associated subject page Skipped 'Ficheiro Discussão:Como usar Blueprints 01.jpg' as it has no associated subject page Skipped 'Ficheiro Discussão:Pentagono regular e seus elementos.svg' as it has no associated subject page Skipped 'MediaWiki Discussão:Whatlinkshere' as it has no associated subject page Skipped 'MediaWiki Discussão:Copyrightwarning' as it has no associated subject page Skipped 'MediaWiki Discussão:PDF Template Blacklist' as it has no associated subject page Skipped 'MediaWiki Discussão:Newsectionsummary' as it has no associated subject page Skipped 'MediaWiki Discussão:Livros' as it has no associated subject page Skipped 'MediaWiki Discussão:Common.js/Topo' as it has no associated subject page Skipped 'MediaWiki Discussão:Pageinfo-footer' as it has no associated subject page Skipped 'MediaWiki Discussão:Welcomecreation' as it has no associated subject page Skipped 'Discussão:Vegetarianismo/Malefícios do Carnivorismo' as it has no associated subject page Skipped 'Discussão:Luis Banda Capenba' as it has no associated subject page Skipped 'Discussão:Silo Meno' as it has no associated subject page Skipped 'Discussão:Italiano/Aula1' as it has no associated subject page Skipped 'Discussão:Denkou Choujin: Gridman' as it has no associated subject page Skipped 'Discussão:Valter Bitencourt Júnior' as it has no associated subject page Skipped 'Discussão:Factos que você não sabia sobre a Desciclopedia!' as it has no associated subject page Skipped 'Discussão:Ricardo Pavanelly' as it has no associated subject page Skipped 'Discussão:Russo/Exercícios/Caso prepositivo' as it has no associated subject page Skipped 'Discussão:Peeragogy Handbook V1.1 (pt-Brazilian)' as it has no associated subject page Skipped 'Discussão:Dicionário Brasileiro de Linguagem Jurídica/Fale conosco' as it has no associated subject page
Of these pages only https://pt.wikibooks.org/wiki/Wikilivros:Plant%C3%A3o_de_d%C3%BAvidas has had any meaningful activity in the last 5 years.
Change #1213430 had a related patch set uploaded (by Esanders; author: Esanders):
[mediawiki/extensions/Flow@master] FlowMoveBoardsToSubpages: Add 'title' option for moving a specific board
Change #1213442 had a related patch set uploaded (by Esanders; author: Esanders):
[mediawiki/extensions/Flow@wmf/1.46.0-wmf.4] FlowMoveBoardsToSubpages: Add 'title' option for moving a specific board
Change #1213430 merged by jenkins-bot:
[mediawiki/extensions/Flow@master] FlowMoveBoardsToSubpages: Add 'title' option for moving a specific board
Change #1213442 merged by jenkins-bot:
[mediawiki/extensions/Flow@wmf/1.46.0-wmf.4] FlowMoveBoardsToSubpages: Add 'title' option for moving a specific board
Mentioned in SAL (#wikimedia-operations) [2025-12-01T14:47:39Z] <esanders@deploy2002> Started scap sync-world: Backport for [[gerrit:1213442|FlowMoveBoardsToSubpages: Add 'title' option for moving a specific board (T402552)]]
Mentioned in SAL (#wikimedia-operations) [2025-12-01T14:49:39Z] <esanders@deploy2002> esanders: Backport for [[gerrit:1213442|FlowMoveBoardsToSubpages: Add 'title' option for moving a specific board (T402552)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.
Mentioned in SAL (#wikimedia-operations) [2025-12-01T14:54:10Z] <esanders@deploy2002> Finished scap sync-world: Backport for [[gerrit:1213442|FlowMoveBoardsToSubpages: Add 'title' option for moving a specific board (T402552)]] (duration: 06m 31s)
This page has been moved manually. The rest can be archived in place. Here is the list of unmoved boards for reference: https://pt.wikibooks.org/wiki/Utilizador:ESanders_(WMF)/skipped
Change #1213501 had a related patch set uploaded (by Esanders; author: Esanders):
[operations/mediawiki-config@master] Set Flow to read-only on ptwikibooks
Okay, most of those skipped pages were unhelpful noise from 2015 where either both the Flow board and the LQT archive should be deleted or the Flow board should be deleted with the LQT archive taking its place - full details at https://meta.wikimedia.org/wiki/Global_sysops/Requests
Change #1213501 merged by jenkins-bot:
[operations/mediawiki-config@master] Set Flow to read-only everywhere
Mentioned in SAL (#wikimedia-operations) [2025-12-03T14:29:09Z] <esanders@deploy2002> Started scap sync-world: Backport for [[gerrit:1213501|Set Flow to read-only everywhere (T402552)]]
Mentioned in SAL (#wikimedia-operations) [2025-12-03T14:31:25Z] <esanders@deploy2002> esanders: Backport for [[gerrit:1213501|Set Flow to read-only everywhere (T402552)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.
Mentioned in SAL (#wikimedia-operations) [2025-12-03T14:38:53Z] <esanders@deploy2002> Finished scap sync-world: Backport for [[gerrit:1213501|Set Flow to read-only everywhere (T402552)]] (duration: 09m 44s)