Page MenuHomePhabricator

Undeploy LiquidThreads
Open, HighPublic

Description

LiquidThreads (LQT) is a discussion system for wiki’s talk pages. The project started in 2006 and was improved in 2009 by volunteers, the WMF made some efforts on a v3 in 2011. Nothing more has been done since then. It is still used on 5 wikis:

  • enwikinews
  • enwiktionary
  • huwiki
  • ptwikibooks
  • svwikisource

And once enabled but now frozen in:

  • fiwikimedia
  • mediawikiwiki
  • officewiki // replaced with Flow 2014-11-25
  • sewikimedia
  • strategywiki
  • testwiki
  • test2wiki
  • wikimania2010wiki

In August 2023, on average:

  • DiscussionTools is used about 18,780 times per day.
  • Flow is used about 250 times per day.
  • LiquidThreads is used less than once per day.

The work on IP masking requires significant changes for LQT, leading the Growth team to consider sunsetting LQT extensions in favor of Discussion tools -DT).

Of the various solutions we'd like to discuss with the concerned communities, one is to archive or convert LQT pages to DT. The goal is to explain the possible solutions to the communities.

Note: the solution adopted by translatewiki.net was to move the existing pages using LQT as an archive, and start over with DT on the main page: https://translatewiki.net/wiki/Support/LiquidThreads. LQT is not uninstalled.

Possible related tasks:


Process
  1. T381906: Decide how to make Liquid Threads "read only"
  2. Investigate
Manual archiving workflow

Here is the process we have been using for manually archiving pages:

  1. If a page has {{#useliquidthreads:1}}:
    1. If the page has no threads, just remove {{#useliquidthreads:1}}, using the summary No LQT threads attached. [[phab:T350164]]
    2. Else
      1. If the page is already at a archive sub-page (e.g. /Archive X or /LQT), or other page we don't mind being frozen (e.g. Wikipedia:LQT test), leave it
      2. Else:
        1. Move that page to <pagename>/LQT Archive, pointing to this phab task in the summary.
        2. Manually move (cut/paste) all the content from the LQT header back to the original <pagename>, excluding {{#useliquidthreads:1}} and anything that is specifically about the page being an LQT page (e.g. "Welcome to my LQT talk page")
  2. Once all pages with {{#useliquidthreads:1}} above have been moved to archive-able locations, we then look for orphaned threads. At Special:Allpages, look for pages in the thread namespace (90). Each comment is listed individually, so for each page open a handful of comments.
    1. Open the breadcrumb link at the top, if the comment points back to a page with {{#useliquidthreads:1}} then we are done.
    2. Else if the thread points back to a page without {{#useliquidthreads:1}} then this is an orphaned page:
      1. Add {{#useliquidthreads:1}} to the top of the page using this task as the commit message.
      2. Move that page to <pagename>/LQT Archive, pointing to this phab task in the summary.
      3. Manually move (cut/paste) all the content and any plain wikitext threads from the LQT header back to the original <pagename>, excluding {{#useliquidthreads:1}}
      4. Add a link to the archive from the re-created original page, e.g. Archive: [[/LQT Archive]]

Related Objects

StatusSubtypeAssignedTask
ResolvedNone
OpenNone
OpenNone
ResolvedTrizek-WMF
DuplicateNone
OpenNone
ResolvedTrizek-WMF
DuplicateNone
ResolvedSgs
ResolvedSgs
ResolvedTrizek-WMF
OpenNone
ResolvedMimurawil
ResolvedTchanders
In ProgressNone
OpenNone
ResolvedUrbanecm_WMF
ResolvedTrizek-WMF
Resolvedppelberg
DeclinedNone
ResolvedEsanders
ResolvedEsanders
ResolvedSTei-WMF
Resolvedzoe
Resolvedzoe
ResolvedEsanders
ResolvedEsanders
ResolvedEsanders
ResolvedEsanders
DuplicateNone
OpenNone
ResolvedEsanders
ResolvedEsanders
ResolvedNone
ResolvedEsanders
ResolvedEsanders
ResolvedEsanders
DeclinedNone
OpenNone
ResolvedEsanders
ResolvedNone
ResolvedDLynch
OpenDLynch
ResolvedUrbanecm_WMF
ResolvedDLynch
ResolvedDLynch
OpenEsanders
ResolvedRyasmeen
ResolvedUrbanecm_WMF
ResolvedDLynch
ResolvedTrizek-WMF
Resolvedzoe
ResolvedRyasmeen
ResolvedBUG REPORTEtonkovidova
ResolvedTrizek-WMF
ResolvedNone
ResolvedPRODUCTION ERRORhubaishan
ResolvedTrizek-WMF
ResolvedDLynch
ResolvedTrizek-WMF
Resolvedppelberg
ResolvedQuiddity
Resolvedppelberg
Resolvedzoe
Resolvedzoe
ResolvedRyasmeen
Resolvedzoe
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
Resolvedmatmarex
OpenNone

Event Timeline

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

On enwiktionary, LQT was only ever enabled on a limited number of pages, mostly user talk pages. When pinged regarding the potential removal of LQT, these users did not comment (most of them are only sporadically active). I do not foresee any community concern if LQT were to be removed from enwiktionary.

My suggestion for undeploying LQT from enwiktionary is to write a script that converts LQT discussions back to standard wikitext discussions using == headers, : indentation, wikitext signatures and oldest-to-newest ordering of threads, and inserts them onto the user's talk page in the correct chronological ordering among the existing wikitext discussions. Then the Thread and Summary namespaces can simply be deleted.

Out of curiosity I decided to check how the other wikis are using LQT:

WikiActivity in Thread: namespace in last 30 daysLQT is currently enabled on...
enwikinews2 edits + 2 page deletionsEntire Comments: namespace (this is set up so that readers can leave blog-style threaded comments on news articles using LQT)
enwiktionary1 edit (on a user talk page)40 pages - a handful of user talk pages of inactive or sporadically active users & a handful of gadget talk pages in MediaWiki talk: space
huwiki0~8 pages (test pages and a few user talks) - but it seems like it was previously enabled on more pages judging by the content of the Thread: namespace
ptwikibooks1 edit (on a user talk page)All talk pages by default (LQT is set to opt-out mode on this wiki)
svwikisource0Archive pages only

@KStoller-WMF is there a timeline for completing this work? It may affect our pilot wiki deployment.

The Editing team has taken over ownership of the Flow and Liquid Threads deprecation work. I believe they will be finalizing a timeline here: T370722: Set Flow and LQT sunsetting timeline and sequence.

Thank you Kirsten, Indeed, T370722: Set Flow and LQT sunsetting timeline and sequence tracks the project. We are defining a timeline now.
@kostajh, if you have other questions regarding Flow/LQT, you can contact me directly.

Thank you Kirsten, Indeed, T370722: Set Flow and LQT sunsetting timeline and sequence tracks the project. We are defining a timeline now.
@kostajh, if you have other questions regarding Flow/LQT, you can contact me directly.

Thanks, both. @ppelberg could you please comment with a timeline for when Editing could do the work described in this task?

Ebrahim updated the task description. (Show Details)

Thank you Kirsten, Indeed, T370722: Set Flow and LQT sunsetting timeline and sequence tracks the project. We are defining a timeline now.
@kostajh, if you have other questions regarding Flow/LQT, you can contact me directly.

Thanks, both. @ppelberg could you please comment with a timeline for when Editing could do the work described in this task?

Thank you for the nudge and I'm sorry for the lag, @kostajh.

Two questions for you:

  1. Would it be accurate for me to think that – at a minimum – archiving pages that use LQT and setting these pages to read only at wikis where LQT is still active [1] is what y'all need to unblock Temp Account deployments at these wikis?
  2. When are y'all currently planning to deploy Temp Accounts at the wikis where LQT is still active [1]? If this info. is already available in a timeline/document, please let me know!

  1. enwikinews, enwiktionary, huwiki, ptwikibooks, svwikisource

I don't mean to interrupt, but I think, given that LQT remains in active use on a couple of wikis - indeed, it is still enabled by default on all talk pages on ptwikibooks - some further community engagement work is required before switching it off. (I would still prefer to see LQT pages frozen in wikitext, which would ultimately allow the extension to be undeployed altogether rather than just set to read-only mode. But I can understand that the resources to do this may not be there at present.)

For example, on enwikibooks here, SVTCobra wrote in February: "Our review tools automatically create a Commentary page in LiquidThreads style whenever we publish a new article. We may need @Bawolff to look at this." but this was not followed up.

Thank you Kirsten, Indeed, T370722: Set Flow and LQT sunsetting timeline and sequence tracks the project. We are defining a timeline now.
@kostajh, if you have other questions regarding Flow/LQT, you can contact me directly.

Thanks, both. @ppelberg could you please comment with a timeline for when Editing could do the work described in this task?

Thank you for the nudge and I'm sorry for the lag, @kostajh.

Two questions for you:

  1. Would it be accurate for me to think that – at a minimum – archiving pages that use LQT and setting these pages to read only at wikis where LQT is still active [1] is what y'all need to unblock Temp Account deployments at these wikis?

Yes, that sounds right.

  1. When are y'all currently planning to deploy Temp Accounts at the wikis where LQT is still active [1]? If this info. is already available in a timeline/document, please let me know!

  1. enwikinews, enwiktionary, huwiki, ptwikibooks, svwikisource

I assume we could exclude them from our next round of deployments in February, but would need these wikis to be ready by May. (cc @sgrabarczuk @Niharika )

I don't mean to interrupt, but I think, given that LQT remains in active use on a couple of wikis - indeed, it is still enabled by default on all talk pages on ptwikibooks - some further community engagement work is required before switching it off. (I would still prefer to see LQT pages frozen in wikitext, which would ultimately allow the extension to be undeployed altogether rather than just set to read-only mode. But I can understand that the resources to do this may not be there at present.)

For example, on enwikibooks here, SVTCobra wrote in February: "Our review tools automatically create a Commentary page in LiquidThreads style whenever we publish a new article. We may need @Bawolff to look at this." but this was not followed up.

Thanks for this note. I assume that community consultation / notice would be part of this, similarly to how it was done for Flow. (cc @ppelberg)

List of wikis that have Flow installed, according to InitializeSettings.php

enwikinewsno
enwiktionaryno
huwikino
ptwikibooksyes
svwikisourceno
fiwikimediayes
mediawikiwikiyes
officewikiyes
sewikimediayes
strategywikino
testwikino
test2wikiyes
wikimania2010wikino

ptwikibooks is in a very messed up state, because LQT->Flow conversion was attempted several times but never properly finished. I suspect I'm just going to let the state become even more messed up by LQT being undeployed since the amount of work it would take to sort it out properly exceeds the extent to which I care about a wiki in a language I don't speak whose community seems to consist of one or two active users at most.

Since some topics have already been imported before and we don't have that sourcestore file, the import script has to be run with --force-recovery-conversion.

... and after doing a lot of code spelunking I think running that script with that argument just might, by magic, return things from a very messed-up state they are currently in to a less broken state (albeit still unideal because it needs /LQT Archive 1 pages deleted). It's smarter than I thought.

I know these comments are probably on the wrong ticket to be seen by whoever runs the script (T382435), but I needed to get them out there.

This comment was removed by TTO.

I know these comments are probably on the wrong ticket to be seen by whoever runs the script (T382435), but I needed to get them out there.

Once again coming to my rescue, thank you :)

I'm tracking on T388099 as that's where the undeployment checklist is

This task has become a parent task of much of the LQT undeployment work. I propose we rename it to Undeploying LiquidThreads

zoe renamed this task from [Spike] Investigate Undeploying LiquidThreads to Undeploying LiquidThreads.Aug 26 2025, 4:44 PM
Bugreporter renamed this task from Undeploying LiquidThreads to Undeploy LiquidThreads.Aug 27 2025, 2:29 AM

I looked into how long the remaining migrations from LiquidThreads pages to Flow boards should take.

Approx. number of threads per wiki (at the time of writing):

wikinumber of threads
svwikisource1428
huwiki2519
enwiktionary8327
enwikinews10513
ptwikibooks12362

...using SELECT table_rows FROM information_schema.tables WHERE table_schema = <wiki> AND table_name = 'thread';

During T405080: Convert LQT pages on enwiktionary to Flow, we've seen a rate of roughly 30 threads being migrated per minute, so the actual migrating should take less than a day.

In other words, actually migrating the threads won't cause a bottleneck, relative to debugging and fixing errors encountered during migration.

@Pppery I think it is now the right time to do this in translatewiki (refer to my new topic)

I've also informed the Rationalwiki community and the developer of Wikimini User:Lorangeo.

@Esanders please restore the edit history of my huwiki talk page (merge https://hu.wikipedia.org/wiki/Szerkeszt%C5%91vita:Tacsipacsi/LQT_Archive/LQT_Archive_1 into it). I used to use LQT for a short time over a decade ago, but since then I’ve been using plain wikitext (and DiscussionTools from day zero), so I’d like to see the edit history of the past decade where the edits were made: at Szerkesztővita:Tacsipacsi.

@Tacsipacsi : You could move your main user talk page out of the way, then move the /LQT_Archive/LQT_Archive_1 page to your main user talk page, then copy back in your most recent comments?

@Tacsipacsi : You could move your main user talk page out of the way, then move the /LQT_Archive/LQT_Archive_1 page to your main user talk page, then copy back in your most recent comments?

That would only work for someone who has suppressredirect (or delete-redirect or delete) rights on the wiki. Tacsipacsi doesn't seem to have any of those.

Ok, I've have done this sequence of moves for you @Tacsipacsi