Flow |
---|
![]() |
(All links go to mediawiki.org) |
This page hopes to answer several frequently asked questions about Flow.
Nomenclature
The following nomenclature is used in this document to avoid confusion. This nomenclature is development-facing, not user-facing, and terms may change when visible to the user.
- Board – a collection of topics, equivalent to a talkpage. There may be only one Board per page.
- Header – content at the top of a Board (introductory text and such). There are/will be limitations on what can go in the header.
- Topic – a "workflow instance". In the discussion space, this is a single discussion. This document concerns itself primarily with discussion workflows; however it should be noted that workflow instances can take many forms. Topics may be subscribed to by multiple Boards.
- Topic Titlebar - the area collecting metadata, which currently includes: topic title, timestamp of last activity, number of comments, usernames of participants (ordered by: "$OriginalPoster, $MostRecentPoster, $SecondMostRecent, and X others")
- Summary – a Topic can be summarized (not implemented yet). Other workflows might be more elaborate, e.g. "Closed. Answer #7 to this question was accepted by the originator on 2013-10-15".
- Post – an atomic reply, comment, or object whose parent is a Topic.
- Comment – synonymous with Post.
- Reply – a child Post of another Post. In the October prototype, there is only one level of replies and these are called "Tangents".
- Branch – a series of Posts that are all ultimately children of a single Post.
- MVP – an acronym standing for "Minimum Viable Product".
- Flow team – WMF staff working on the Flow project (including developers, designers, analysts, and product managers)
- Core Features team – WMF development team that builds and maintains features like PageCuration, Echo notifications, and Flow. This team will primarily be focused on Flow this fiscal year (July 2013 – July 2014)
- Extension:Flow, aka "Flow" – the software product, which has two components: a discussion system and a workflow engine. The Flow team will be working primarily on the former this fiscal year (July 2013 – July 2014).
- w:WP:Flow or mw:Flow Portal – the Flow Portals, or homepages.
Development principles
With any complex software project, it's almost impossible for the designers, developers and product people to know everything. This is a particular problem in an environment like that of the Wikimedia projects - due to the sandbox-like nature of the place, there are tens of thousands of different workflows, different user needs, and different problems. Even if we could accurately identify all of them, we can't necessarily tell if our solution is the right one until we put it in front of users.
Accordingly, we're keeping two things in mind while we're developing the Flow software. First: we are partners with the community on this. Editors are welcome and encouraged to participate in the development process, pointing out things we've missed, identifying and describing new workflows, and helping keep us honest - when something hits this level of complexity, it's impossible to make things work without as many people helping as possible. Before and after we build things, we'll open a conversation about the feature. Second: a lot of the work we're going to do, at least initially, is experimental: we don't know if it's the right implementation of a feature. If it's not, we'll be happy to roll it back.
Components of the discussion system
Here's a brief list of the main feature areas for a discussion system, a description of what the plan is for each one, notes about the status, and links to any ongoing discussions. It'll be regularly updated to factor in new discussions, and to note the permanency of the feature.
Component | Solution in Flow | Status | Notes | Discussion |
Message separation and nesting | Different messages in the same thread will be visually distinguished through both design cues and indentation. The first release will feature two levels of threading (or, one set of indentation), for reasons explained in the Design FAQ. | Experimental | The limited indentation is something we want to try, but we're fully aware that it may not turn out to be practical, and happy to experiment with more levels of threading if necessary. We discussed the advantages/disadvantages of limited versus unlimited indentation (and different limits on indentation) at this feedback request thread - more feedback would be welcome :). | - |
Navigation and archiving | The Flow software features infinite scrolling on a talkpage, and will be combined with a search infrastructure; there won't be a table of contents. It will have a toggle to collapse all threads. | Experimental | This is something we're going to have to actively collaborate to make work; little is more important than actually accessing and navigating between discussions. If the search functionality isn't satisfactory (once implemented) we can experiment with other ways to get the same information. | Discuss |
Design density | The Flow software is deliberately using more whitespace than wikipedia currently does - whitespace is actually beneficial for reading. Having said that, the current intended level of whitespace is something we're happy to alter as is needed, and is also smaller than the level displayed in the prototype. TL;DR, it won't be as sparse as it currently looks :). | Experimental | This is something we're going to discuss when we've got the prototype ready for wide-scale testing, and again when we've deployed it to the wikiprojects that have opted-in. | Discuss |
Comment editing | Flow as it is configured currently doesn't allow users to edit the comments of others - the pros and cons of this are discussed more below. Logged-in users can edit their own comments, including markup and templates. | Experimental | This will be present in the prototype we'll show to the community before deploying it on-wiki, but it's a configuration setting: we can allow it if people want (or allow it to only administrators, or only autoconfirmed users, for example). | (no ongoing thread) (prior threads) |
Topic order | Flow will have "top posting", in the sense that what topics will be displayed from last-added to first-added: within topics, posts will operate from first-added to last-added within each subthread (normal chronological order). | Experimental | The main reasons for this are in the Design FAQ, but we're open to feedback. | Discuss |
Timestamps | Flow currently has human-readable relative (elapsed) timestamps on posts, topics, and history views, which expand to show full UTC time on hover. After initial experimentation with these timestamps on the board and history views, we decided to change to full (exact) UTC timestamps for higher granularity. | Experimental | - | |
Wikitext editing | Topic titles of Flow posts do not currently render wikitext. Within Flow posts and header areas, virtually all forms of wikitext, extensions (such as mw:Extension:Math), and templates are supported (see Parsoid limitations for templates that do not currently work; these are very rarely used in discussions). Most supported wikitext renders correctly. Parsoid may rewrite wikitext when previewing or saving and re-editing. Those rewrites will usually be non-damaging. | Confirmed | - | |
Posts don't update | On WMF wikis, Flow stores the parsed HTML of the header area and posts. When you view Flow content you see this stored HTML; when you edit the header area or a post you do not see the original wikitext, Parsoid generates new wikitext on the fly which should resemble the original wikitext. The wikitext is parsed to HTML again on save. This means that changes to a template will not appear in the Flow headers and posts using it until they are edited. | Experimental | Flow posts are snapshots of a moment in time, so allowing templates within posts to change days, weeks, or years later, without any outward indication of the change, is not something we want to support. (We realize that while "What links here" doesn't work for Flow content, this feature is more problematic.) Depending on user needs, we may change the way the header area works, so it can accept transclusion or can automatically update for commonly used project and article banners. | - |
Post moderation | "Hide", "Delete" and "Suppress" - analogous to revert, revision-deletion and oversight - are planned features for Flow, and will be present before the first deployment on Wikipedia. As well as applying to specific comments, users will also have the ability to delete/suppress entire threads. | Experimental | - | |
Input method | As explained below, both the VisualEditor and simulated wikitext will be supported. | Confirmed | The first release will only include wikitext support. We plan to add VisualEditor support via Beta Features, later on. (So that you can opt-in to one, but not the other, and vice-versa). | - |
Workflows | Wikipedia's processes are incredibly complex, and so no rigid one-size-fits-all system will ever work. Instead, we're building a workflow language which users can use to script Wikipedia processes, much like the current template-based process scripting. The differences are that it will integrate with MediaWiki proper and that, as a result, users using the processes won't have to be exposed to the internal gunk. | To be discussed | You can read more about workflows below or in a recent developer request for comment about them. We're going to do a lot of work talking to the community about the processes that are generally used, over the coming months, so we know what the language needs to do before developing it. | (no ongoing thread) (prior threads) |
Page/thread protection | This is still to be discussed. Since threads can potentially exist on multiple discussion pages, a protection system that is equitable to users is difficult to get just right. | To be discussed | - | |
Auto-signing | Flow will attribute content changes automatically (both new-posts, and edits to anything). Sinebot and {{unsigned}} will become unneeded. | Confirmed | - |
Is this replacing talkpages?
The short answer is "yes" – the long answer is "yes, but not for a long time". Talkpages are incredibly complex, with the number of processes they have to support (discussion closing, unblocking, requested moves) and the number of things a user can do on them – there's some research into this at mw:Flow Portal/Use cases. Because of this, we've decided to start small: we don't have all the answers yet, and don't want to act as if we do.
The first release (in early December 2013)[needs update] will be to a couple of Wikiproject talkpages, where the Wikiproject has volunteered to test the software. Work after that will also go into the Wikipedia talk namespace and its various workflows, before switching to focusing on places like user and article talkpages. Conversations on Wikimedia projects are very complex things. We need to start with the "simplest" use cases first.
Given this plan, we're not going to be offering Flow as an option for most users until mid to late 2014. When we start rolling it out more actively, it will be opt-in for existing users (and the default for new ones). At some point in the future, once the software is stable and a significant portion of active Wikimedians have had a chance to trial it and offer their feedback, we may mandate Flow on all discussion pages, but that's a long way away.
What about places like AN/I and the Village Pumps?
Places like the Village Pumps are natural candidates for Flow, but we're not planning on rolling out there in the first release. The idea is to deploy in a slow and steady fashion, working from simple, lower-traffic talkpages up to more complex ones.
Something like the Administrator's Noticeboard, however, is far more complicated. It's a high-velocity system with many user-created shortcuts and complex social conventions, and starting there would probably be asking for trouble.
Can I opt-out?
Sort of. In terms of using Flow on talk pages, it won't be an option on user talkpages for quite a while. When it becomes one, it will be opt-in for existing users – you won't be forced to have it on your talkpage if you don't want it. If you convert to using Flow during the trial period (in a WikiProject discussion space), we'll be able to convert the content back into a normal talkpage if needed.
At some point in the future, after a great deal of community testing and feedback, we may want to convert all remaining wikitext talkpages into Flow talkpages. That's a long way away, and it won't happen without a great deal of discussion and gradual iteration of the product. If you're concerned about how Flow will look and behave, your best bet is to trial the software early, so you can give us feedback on what needs changing well before we begin discussion on whether or not it should become the default on all discussion pages.
In terms of viewing, you won't be able to opt out of seeing Flow. If other users have converted their talkpages to Flow pages, or reached consensus that a Wikipedia or article talkpage should be converted, there's not going to be a way to avoid using Flow if you want to contribute to that page.
What will happen to current talkpage discussions?
The current plan is to archive the talkpage and link to the archives from the talkpage header. Obviously this complicates deployments somewhat – what do people do if they'd like to try Flow but have discussions actively occurring on their talkpage? – but it's the least-bad option. Ultimately, we plan to have a search feature for Flow that allows users to go through the pre-Flow archives and find content from there, too, but that probably won't be a part of the very first release to Wikipedia.
What about IP/anonymous editors?
Anonymous users will be able to use Flow-enabled talkpages as any other user, although there will be some restrictions: they'll be unable, for example, to hide posts. Generally these will align with the restrictions existing talkpages have. When Flow is more widely enabled, they'll have Flow-enabled talkpages (again, like any other user).
Why don't we use a pre-built system, like PHPBB or Discourse?
The simple answer is that "they won't cut it". The complex answer is that pre-built systems are designed around singular use cases, and Wikimedia projects do not have "singular" use cases. On the English Wikipedia alone, the following are discussions that take totally different forms:
- User talk
- Article talk
- Requests for Comment
- Request for Adminship
- Deletion discussions
- Merge discussions
- Village pump discussions
- AN/I
- Arbcom cases
The list goes on and on. A singular package will not and cannot cover these cases. So we have to build our own.
Why not use LiquidThreads?
LiquidThreads (LQT) was an early attempt at creating a structured discussion system. It has both strengths and weaknesses. After exploration and discussion, LQT was abandoned as a solution going forward for several reasons.
First, LiquidThreads has incredibly poor performance, especially when run at scale. This has to do with the way that individual comments or posts are stored, parsed, rendered, cached, and assembled. If a thread has 50 responses, and the user reading it is logged in, then all 50 responses must be re-rendered, parsed, and assembled every time. There is no way to cache them. This is terribly slow. Second, Flow is designed to be interwiki from the beginning. This requires that it have a completely different data model (one that supports globally unique identifiers). LiquidThreads cannot (and could never) provide support for this.
Third, Flow is designed to be "future proof". Since the roadmap for Wikimedia projects is heavily invested around the VisualEditor, the data that Flow creates must be able to work with that. "Upgrading" LiquidThreads would require that we provide an agonizing level of backwards compatibility.
Finally, LiquidThreads was only designed to be a "discussion system" and as such is hamstrung by being less flexible than is required for discussions on Wikimedia projects. Flow is designed to be a "workflow facilitation system". The difference may seem subtle on the surface but deeper examination into the way various Wikimedia projects use the collaboration space will quickly show that simple forum software is insufficient to meet the needs of the community. In fact, very few discussions actually match the pure "conversation" model that LiquidThreads is designed to answer. Flow is designed to be flexible with regards to workflows and collaboration techniques in a way that LQT could never be.
What is the MVP, and what will the initial release incorporate?
It's important to understand that the MVP (or minimum viable product) is not an unpolished version of the full product; it's a proof of concept.
We're building a single-feature MVP that we think our early adopters (users that discuss content within WikiProjects) will understand, find useful, and get excited about enough to ask for more of. That single MVP feature is structured, atomic discussion elements that can be interacted with (replied to, moderated) separately, as opposed to a single unstructured talk page that must be edited in its entirety.
The goal of the MVP, which we are building on a test wiki, is to invite users to try it and see if it's ready for a real trial on Wikipedia. The goal of the first release on Wikipedia (on a couple of WikiProject discussion pages) is to deploy the MVP in a real discussion environment and iron out any bugs that occur. But it's also to go beyond the single-feature MVP and, together with the community, identify additional features and functionality that we need to add in order to make Flow suitable for more complex discussions and collaboration, as well as changes that will bring it more in line with users' needs and expectations.
The benefit of this approach is that we won't have sunk a ton of time and resources into our product before showing it to our community. If users don't find the MVP suitable for onwiki release, we can add functionality that they identify as crucial. Once Flow is in trial on Wikipedia, each new release will be an opportunity for staff and the community to discuss and collaboratively prioritize work on new features.
How will Flow handle spam and vandalism?
Each topic and individual post will come with a set of moderation features. These are:
- Hide (equivalent to reversion/rollback);
- Delete (equivalent to revision-deletion), and
- Suppress (equivalent to oversight or, well, suppression ;p)
Handling spam and vandalism in Flow should actually be easier than dealing with it on existing talkpages. Because Flow topics and comments exist as discrete elements, a specific post can be removed with a single set of actions: there's no need to go through the page history removing intervening comments, for example.
Will Flow support wikitext or the VisualEditor?
Both. Flow will provide simulated wikitext via Parsoid, which is the software that the VisualEditor uses to read and write wikimarkup. Hooked into that will be both a wikitext editor and the VisualEditor: users can pick which they want to use. Whatever markup Parsoid supports, Flow can support. Most supported markup will render correctly. Flow does not actually save the wikitext, Parsoid generates new wikitext on the fly whenever you preview or save. This may result in changes to teh wikitext you see, however those changes will usually not be damaging. There may be some restrictions put in – so, for example, it might be a bad idea to have magic words usable if we use a magic word to trigger Flow: we don't really want people embedding a Flow board in a Flow board in a Flow board. Complex templates that use parser functions might be limited for performance reasons. But, generally speaking, anything users commonly need to use (mathematical symbols, references, templates) will be available before any widespread deployment. Users can use subpages for wiki text or templates incompatible with Flow, since subpages of Flow-enabled pages won't themselves be Flow-enabled (unless someone requests it).
Will Flow support all the templates and other markup we need in discussions?
Yes. You can see and test templates and other markup in the prototype, eg this thread has some examples. Note that we've only imported a few hundred test templates – more can be requested at w:Wikipedia:Flow/Top templates. As mentioned above, there may be some markup that isn't supported, but things that are necessary shouldn't be on that list.
What happens to my custom signature?
Flow will not directly support custom signatures, for a couple of reasons. The first is that they're disruptive from a UI point of view. Custom signatures are great for letting people know who said what; they allow for a specific user to be easily, visually distinguishable in discussions. The problem is that the way this comes about is by allowing refactoring of where links live, how they're displayed, and so on. As a result, there's a complete lack of consistency, which hurts the ability of users to navigate easily. One user might have their talkpage link in one place – another in a different place, and with a signature that doesn't actually reveal their username. The second is technical; allowing people to add raw HTML formatting into Flow boards could cause serious issues and errors in how the page is displayed.
Having said that, we appreciate the advantages of custom signatures; it allows for some distinguishing elements, it allows for forms of identification that extend beyond username. We're going to be working a "preferred name" field into the interface to allow for the latter; while it won't be as malleable as the status quo, it will allow for some originality. Your own posts will be visually highlighted to be more easily findable.
Will we be able to edit other people's posts?
There's a common design argument that users being allowed to edit the posts of others is atypical and unexpected: a discussion medium does not work without the certainty that the comment you are replying to is genuine, and that your comment will not itself be tweaked or corrupted by others. Accordingly, the argument is for Flow to not permit modification of posts, with the exception of a user trying to modify their own contribution. The problem with this is that the community has developed various workflows in discussions and in the talk namespaces that are dependent on that kind of editing and interleaving. Removing the ability to edit the comments of others undermines these workflows. At the moment we're trying to build a list of situations where users need to be able to edit comments, so we can see whether this is an insurmountable obstacle. If you can think of any not listed, please add them. What's probably going to happen is that we'll build Flow so that comment editing is a configuration setting, and then make the initial deployment to a couple of wikiprojects with it turned off. If it turns out there are situations where comment editing is necessary, we can easily enable it, either for everyone or just for a subset of editors (autoconfirmed, say, or administrators).
How will you support all of the processes Wikipedia uses?
It's a complex problem. In line with the philosophy of a wiki, Wikipedia (and other Wikimedia sites) have developed their own workflows, based on social conventions and templates, inside talkpages. An example of this on the English-language Wikipedia would be the unblocking process; a user edits a template to add a rationale, which adds a category, which admins can see, and an admin closes it one way or the other...and that's one of the simpler workflows. There are thousands of others, many of which are more complex, and many of which we're unaware of. It'd be silly of us to assume that we could fit all of them into Flow at our end. Instead, what we plan on doing is working on a workflow engine – a structured language that editors can use to describe a workflow and incorporate it into Flow, for a specific action or a specific page. This sounds a lot like templates in some ways, and we hope that the same people who write templates will be interested in working on this, but there are a couple of differences:
- First, the language will actually be integrated into MediaWiki. At the moment, one user has to write the unblocking template, which is somewhat complex, and every other user has to be very careful to use it in a specific way, fill out the template just-so, and so on. With workflows, one user can write an unblocking workflow...and to everyone else, it will look like it's part of the software itself, and be fully integrated into Flow.
- Second, this is something we can use in other projects, too. In the above example of an unblock template, if another language or sister project wants to adopt this template, they have to copy over the template code, documentation, and all its dependencies to their project, which is time-consuming and prone to error. With a common workflow language across MediaWiki, we could standardize not only simple workflows, but also more complex software like Page Curation and Echo notifications, making it easier for users to configure and create custom messages for these tools.
Due to the complexity of the customizable workflow piece of Flow, we're not focusing on it just yet. Our first priority is to tackle user-to-user discussions and build workflows on top of that.
What will happen to all the banners?
Each Board has a header area, for permanent things like banner-templates to go in. See this copied article talkpage, or mw:Talk:Sandbox.
Questions about the design or layout
The initial design is experimental in nature and intent, and will be changing based on feedback and onwiki testing, over the coming months. You can read about the decisions that went into the current design at w:Wikipedia:Flow/Design FAQ, and discuss them at its talkpage. [Reminder: As of October 2013, the design on the prototype site is still full of holes.]