Hi,
the current status of the project can be found at http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/FlaggedRevs/specs.... Jörg will work on this project fulltime this week, but will not be available the week thereafter. Still, the goal is to start testing on a broader basis before 20th of April. It has turned out, that having multiple levels for a single flag makes things complicated, for example when looking at the feature of reviewing versions from a diff. Following is a copy of the above namend textfile, where I have added priority levels to the features that are not yet done. Based on this, Jörg will decide what to do next. Priority 1 is the highest. Feel free to comment on my priorization, in particular if I made severe errors. Otherwise, see you next week, I'll greet Benedetto from you ;-)
Bye,
Philipp
The wiki will allow the configuration of "revision tags", which can then be associated with any revision of an article. Tags are organized in tag array, where each array represents a set of tags that describe a similar attribute, e.g., accuracy-related tags would be organized in one array, while those used for flagging materials for export might be organized in another. This is to ensure that "levels" of quality (unvandalized -> reviewed for accuracy -> featured article etc.) can be represented correctly.
###Status: Works so far
Each tag has certain attributes: - tag comments: Should the tag support a comment field which explains why the revision was tagged in a certain way?
###Status: every tag has a comment so far ###Wishlist item: possibility of having no comment field for certain tags.
- permissions: Which user groups have permission to set the tag?
###Status: for overall flagging permissions can be set ###Todo: have it on a per flag basis ###Priority: 2
- stylesheet and UI: not requiring explicit configuration, each tag should have a stylesheet class and MediaWiki: namespace message(s) associated with it, to allow for differences in visual and textual representation
###Status: namespace messages are there ###Todo: css classes and ids ###Priority: 8
- implicit tagging: should this tag be implicitly set by any user within the associated group when editing? (this will be used for the "non-vandalized" tag)
###Todo: do it ###Priority: 7
A generic change is required to allow for automatic membership in a user group when a user has more than X edits and is older than Y days.
###Todo: do it ###Priority: 3
There should be a configuration option which associates a namespace with - a tag-array - a minimum level in that array.
###Status: minimum level per tag, not namespace ###Todo: do it ###Priority: 9
This option determines that, by default, the revision shown from this namespace will be the one from that array which is also >= the minimum level. So, for instance, one could determine that pages in the article namespace need to be at least checked for vandalism, or at least reviewed for accuracy.
###Status: nearly there on a per tag level, last bugs being fixed ###Priority:10
As a high priority wishlist item, these view options should also be applicable on a per-page basis. The existing protection UI should be expanded for this purpose. Implementation (and schedule) of this item will depend on overall implementation progress.
###Todo: do it ###Priority: Wishlist
Whichever view one ends up with, we expect that the top of the page indicates this, and allows you to switch & get diffs to other views.
###Todo: done
Because MediaWiki currently does not show templates and revisions in time synchronization, this behavior has to be fixed for old revisions. When one has expressed a preference for a revision with a specific tag/level (e.g. "unvandalized") AND this is the most recent revision, it will be shown together with the most recent equally tagged templates if they exist, otherwise with the most recent ones.
###Status: shown with most recent ones, images are stored in local ### cache ###Todo: to it for old revs ###Priority: 1
Example: On a page like the Main Page, which includes many templates, one would typically want to have an unvandalized view of the entire construction. The Main Page itself rarely changes, but because the most recent revision is flagged as "unvandalized", it would be synchronized with templates for which this is also true. When viewing an older version, however, the templates would be shown as they were at that date&time.
###Todo: do it
It is crucial that queries for revision lookup are highly performant; we should aim for a performance impact of less than 10% on uncached pageviews with a revision tag preference. Needless to say, the feature needs to interact correctly with Squid proxy caching.
###Todo: comes at the end
Tagging revisions should be possible from three places: - when editing (with the help of a collapsible diff) - when looking at diffs - when looking at revisions without any prior or later tags.
###Status: mostly done ###Priority: 4
A tag can only be set with reference to a diff to the last version that has the same tag. The Special:Recentchanges tool should be
###Status: on any diff ###Todo: limit to last version ###Priority: 5
customizable to have such a diff link to the last version with a given tag. It is desirable that this view also includes an icon that indicates the state of the logged revision (derived from the tag stylesheets).
###Todo: do it ###Priority: 6
Wishlist items for the future include things like mass vandalism review and advanced queries. I also have some ideas for phase II of the project, which I would love to see implemented before the tool is switched on on the English Wikipedia, but this will wait until phase I and any adjustments needed for its operations are successfully completed.
###Extras: Logging