Collaboration/Deployment planning

For instructions on how to update this page, see Collaboration/Deployment planning/Recipe

Keys: RCFilters = Filters for RecentChanges; WLFilters = Filters for Watchlists; StructuredDiscussions were formerly known as Flow.

Standard schedule

 * Tuesday 19:00-21:00 UTC: group0 (test wikis and mw.org)
 * Wednesday 19:00-21:00 UTC: group1 (non-Wikipedias, Catalan and Hebrew Wikipedias)
 * Thursday 19:00-21:00 UTC: group2 (other Wikipedias)
 * Full schedule: Deployments page on wikitech

1.31.0-wmf.27 (Mar 27-29)

 * New features / bigger changes
 * - (Thanks) Add revision-thanking links to some log entries
 * Bug fixes
 * - RCFilters: Hide 'reload watchlist automatically' setting if RCFilters is enabled
 * - (Echo) Use updated bell/tray icons from OOUI 0.26
 * - (Echo) Update OOUI-copied icons
 * - (Echo) Follow-Up Ie6252a8c: Fix suffices of constructive icons
 * - (Echo) Replace double-check with checkAll from OOUI
 * - (Flow) Fit user-mention.svg to new 20x20 canvas
 * - (Flow) Don't wrap text in fake placeholders (to avoid FOUC)
 * - (Flow) Remove special `font-size` treatment following-up UI unification for `14px` base
 * - (Thanks) Add GENDER support to thanks-thanked-notice
 * No user impact
 * - (Echo) Detect reverts differently
 * - (Echo) Revert my fix for summary pings in reverts
 * - (Echo) build: Make SVGO indent with tabs
 * - (Echo) Remove unused 'trash' icon
 * - (Echo) Remove unused bellOn icons
 * - (Flow) API parameters with defaults cannot be required
 * - (Flow) CancelConfirmDialog: Don't set to small size, which is the default
 * - (Flow) CancelConfirmDialog: Drop verbose option, ignored since v0.20.0
 * - (Flow) Removed deprecated position statements from resource loader module
 * - (Flow) Test with hardcoded UUID to ensure they meet the tests requirements (
 * - (Flow) Replace fixed `transition` values with mixin
 * - (Thanks) Update for the actor table change

1.31.0-wmf.26 (Mar 20-22)

 * Bug fixes
 * - (Kartographer) Use the 'grab' cursor rather than 'pointer' cursor as default
 * - (Kartographer) Cut the marker clickable space by half height
 * - (Kartographer) Followup I39c13145: Clip selection area outside the mapbox library
 * - (Kartographer) Send page language to Kartotherian from Kartographer
 * - (Flow) Fix tocWidget styles
 * - (Echo) Place the notification page settings popup in an overlay
 * No user impact
 * - (Kartographer) KartographerTest: Force $wgKartographerStaticMapframe to false
 * - (Flow) Remove display:inline-block with float:left/right
 * - (Thanks) ApiCoreThankIntegrationTest: Fix intermittent failures

1.31.0-wmf.25 (Mar 14-16)

 * New features / bigger changes
 * - (Thanks) Add revision-thanking links to some log entries
 * - (Thanks) Reintroduce the API to thank for log entries
 * - Allow querying contributions of interwiki usernames
 * - (Flow) Add $wgFlowReadOnly
 * Bug fixes
 * - (Kartographer) Fix corruption of title/description wikitext to HTML when editing in VE
 * - (Flow) Reference templates that actually exist
 * - (Echo) Don't ping from user talk links in summary
 * - (Echo) Allow to avoid pinging from summaries by prefixing with :
 * - (Echo) Disable pings from summary for bots
 * - Change Recent Changes "Number of edits..." preference message
 * No user impact
 * - (Kartographer) Clean up promise usage
 * - (Flow) Update for the actor table change
 * - (Echo) Update for the actor table change

1.31.0-wmf.24 (Mar 6-8)

 * Bug fixes
 * - Revert "Use UserSaveSettings hook for opt in/out of beta feature"
 * No user impact
 * - More ExternalStore test fixes
 * - Use valid external store paths in RevisionStorageTest

1.31.0-wmf.23 (Feb 27 - Mar 1)

 * New features / bigger changes
 * - (Echo) Ping users mentioned in edit summaries
 * Bug fixes
 * - RCLFilters specific message for invalid target page
 * - Truncate tag filter descriptions
 * - (Echo) Prevent double-clicking on badge when initializing
 * - (Echo) Add various read-only mode checks
 * - (Kartographer) Apply more forcefully the noflip LTR dir for the scale
 * No user impact
 * - (Flow) Fix "div" tags to "article" tags

1.31.0-wmf.22 (Feb 20-22)

 * Bug fixes
 * - RCFilters: Add missing jQueryMsg dependency
 * - RCLFilters: make sticky filters default and current value equal
 * - (Thanks) Send thank for the right link
 * - (Kartographer) Escape messages when using as HTML
 * No user impact
 * - (Flow) Simplify nested deferred in OptInController

1.31.0-wmf.21 (Feb 13-15)

 * New features / bigger changes
 * - (Flow) Handle Ctrl+Enter events
 * - (Kartographer) Add support for zoom level 19 in Kartographer
 * Bug fixes
 * - (Flow) Handle $input as array in UUID::create
 * - (Flow) Unset an invalid submitted topic
 * - (Flow) Validate that 'newRevision' param is a string
 * - (Flow) Make sure 'content' isset before trimming it
 * - (Flow) AbstractRevision: Specify table in USE INDEX to fix DB error
 * No user impact
 * - (Kartographer) build: Bring SVGO optimization to build step

1.31.0-wmf.20 (Feb 6-8)

 * Bug fixes
 * - mediawiki.Uri: Don't double-escape fragments
 * - (Kartographer) Add directionality to control elements to support RTL interface
 * - (Kartographer) Have the sidebar adjust to interface language direction
 * - (Kartographer) Allow 2-digit numeric markers
 * - (Flow) Change "comment" to "post" in English messages
 * - (Flow) NewTopicWidget, BoardDescriptionWidget: Don't clear on error
 * - (Flow) Improve error-handling for OptInController
 * - (Flow) noindex,nofollow the 'access denied' topic page
 * - (Flow) BoardDescriptionWidget: Fix init when no description created yet
 * - (Flow) Replace deprecated 'alert' indicator with similar icon
 * - (Flow) Re-add previous patterns to flow archive format
 * - (Flow) Ensure TOC button label is truncated
 * - (Echo) Truncate page name in the sidebar and organize into table view
 * - (Echo) Fix help menu icon placement for monobook
 * - (Echo) Align the icon in the popup action sub menus
 * - (Echo) Don't hide notification popup when scrolling
 * - (Echo) Make icon not overlap with confirmation message
 * No user impact
 * - RCFilters: replace usages of deprecated getSelectedItem
 * - (Flow) Fix 'flow_topic_list' table to use non-nullable fields in the primary key
 * - (Flow) OptInController catch both errors and exception
 * - (Flow) Avoid using deprecated EmailNotification::updateWatchlistTimestamp
 * - (Flow) Use ExtensionRegistry to check if extensions are installed

1.31.0-wmf.17 (Jan 16-18)

 * Bug fixes
 * - RCFilters: Only normalize title with 'target' when it is needed
 * - (Flow) Unbreak CSS selector for fallback input widget
 * - (Flow) Implement robot-policy
 * - (Flow) Use UserSaveSettings hook for opt in/out of beta feature
 * - (Flow) Initializer: Simplify and deduplicate setupUndoPage
 * - (ORES) Tentatively re-enable ORES filters on RecentChangesLinked
 * - (WikimediaEvents) Bump ChangesListFilters schema revision

1.31.0-wmf.16 (Jan 9-11)

 * Bug fixes
 * - RCFilters: Fix limit display for limit=1
 * - RCLFilters: reword target placeholder
 * - (Echo) Format user-rights reason as plain text
 * - (Echo) Fix "Mark as read" button icon on no-JS
 * - (Echo) PresentationModelSectionTrait: Use section anchor generation from code
 * - (Flow) Make the tour module depend on ext.guidedTour
 * No user impact
 * - Cleanup live update feature flag and FilterWrapperWidget
 * - (Flow) Remove the old editor system
 * - (Flow) Remove unused cancel buttons and some other things
 * - (Flow) Don't ship unused templates to the client

1.31.0-wmf.15 (Jan 2-4)

 * New features / bigger changes
 * - (StructuredDiscussions) Remove editor switching infrastructure in favor of VE's source mode
 * - (StructuredDiscussions) Respect "Always use VE" and "Always use source editor" preferences
 * - RCLFilters: change working of 'to-and-from' selector


 * Bug fixes
 * - RCLFilters: make target and to/from parameters sticky again
 * - Fix how "Live updates" behave when user logs out
 * - RCLFilters: display target page as a title
 * - Follow-up Ib933de3a3f: remove unnecessary override from SpecialWatchlist
 * - RCLFilters: support target page with a subpage
 * - RCFilters: Fix live update
 * - Fix getNamespace error
 * - mw.rcfilters.ui.MenuSelectWidget: Always open this menu downwards
 * - Absolutely position legend only on new RCFilters
 * - RCFilters: Don't load JS or redirect when transcluding
 * - RCFilters: Query using current (not default) sticky parameters values
 * - RecentChangesLinked: Include title without subpage in form
 * - RCFilters: Create one single source of truth for item display
 * - RCLFilters: support longer page names
 * - RCFilters: Correct looking for items in namespace group
 * - (Echo) mw.echo.ui.NotificationBadgeWidget: Do not flip popups
 * - (Echo) mw.echo.ui.MenuItemWidget: Override OOUI styles harder
 * - (Echo) Move the popups to the overlay
 * - (StructuredDiscussions) Fix various bugs with timestamps in mixed directionality
 * - (StructuredDiscussions) Use new editor instead of old editor for undoing topic summary edits


 * No user impact
 * - RCFilters: Change findHighlightedItem due to deprecation
 * - (StructuredDiscussions) Fix case of class TreeRepositoryDbTest
 * - (Echo) Minor cleanups to PHPDoc blocks

1.31.0-wmf.12 (Dec 12-14)

 * - Allow wikilinks in "show/hide " labels on Watchlist and RecentChanges
 * - Prevent results from wiggling


 * - RCLFilters: UI tweaks


 * - RCFilters: Reserve space between filters and results


 * - RCLFilters: Make 'target' and 'to/from' sticky


 * - Fix "Save current filter settings" menu and legend overlap


 * - RCFilters: Set up conditional views for RCLinked


 * - WLFilters: Correctly check if RCFilters should be enabled on WL


 * - Add overlay to list of changes


 * - RCFilters: Add class back on "show new changes" link
 * (Echo) - Better color to represent read notifications
 * (Flow) - Remove unique, inconsistent treatment of menu items

1.31.0-wmf.11 (Dec 5-7)

 * - Small change to "Other review tools" link
 * - Combine changes limit and time period selectors
 * - Add new core tags
 * - RCFilters: Followup I75cfb2b56a: Fix function declaration
 * - RCFilters: Ignore 'invert' model if there are no namespaces in saved queries
 * - RCFilters: Make 'days' and 'limit' sticky
 * - RCFilters: Clarify 'hidden' and 'sticky' filters
 * - RCLFilters: convert related changes tool to new UX
 * - RCFilters: Update invert URL param when toggled
 * - RCLFilters: Show images and descriptions with page suggestions
 * - (Echo) Add left padding to PageNotificationsOptionWidget
 * - (Flow) Flow Nuke: Include hidden topics in Nuke overview
 * - (Flow) Fix padding on smaller screen sizes
 * - (ORES) Split WL and RC prefs for ORES
 * - (ORES) Protect Special:Contributions code from missing threshold
 * - (ORES) Cache anti-stampede improvements
 * - (ORES) Rate limit thresholds failures to once per (minute x model x wiki)

1.31.0-wmf.10 (Nov 28-30)

 * Cherry-picked to wmf.8
 * - Revert "RCFilters: Remove excluded params from URL"
 * New features / bigger changes
 * - Graduate live update out of beta
 * Bug fixes
 * - Change "Live update" button animation
 * - RCFilters: Respect subpage in RCLinked
 * - RCFilters: Update URL even when we skip fetching
 * - RCFilters: Only apply excluded label to namespace items
 * (StructuredDiscussions) - Disable 'reply' button until something typed
 * (StructuredDiscussions) - Update colors of betafeatures icons
 * (StructuredDiscussions) - Make BoardContent::getParserOutput call the "ContentAlterParserOutput" hook
 * No user impact
 * - Use Remex in Sanitizer::stripAllTags

1.31.0-wmf.8 (Nov 14-16)

 * - RCFilters: Remove excluded params from URL
 * - RCFilters: Remove redundant replaceUpdatedUrl method
 * - RCFilters: Don't reload the list if the change was highlights-only
 * - RCFilters: some more highlight cleanup
 * - Change disabled saved filter tooltip
 * - RCFilters: fix call to changesListModel.update
 * (StructuredDiscussions) - Don't wrap Documents with tags
 * (StructuredDiscussions) - Update mobile target check
 * (Notifications) - Use getHtmlCode instead of getCode for HTML attribute lang
 * (Notifications) - Equal CrossWiki/BundleNotificationItemWidget group's `padding`
 * (Translate) - Port Translate filters to new RC filters UI \

1.31.0-wmf.7 (Nov 7-9)

 * - RCFilters: HTML-escape tag names in filter capsules
 * - RCFilters: Move label prefixes from dm.ItemModel to ui.TagItemWidget
 * - RCFilters: Change main entry point text
 * - RCFilters: Spell out Tags and Namespaces labels
 * - Remove Media namespace from the list of RCFilters
 * - Make filter area togglable
 * - More specific warning when RC page fails to load
 * - RCFilters:Make bookmark icon gray when unavailable
 * (StructuredDiscussions) - API: Make format parameters always default to 'fixed-html'

1.31.0-wmf.6 (Oct 31 - Nov 2)
Nothing notable.

1.31.0-wmf.5 (Oct 24-26)

 * - RCFilters: Don't let new params filter out old page
 * - RCFilters: Move parameter operations to ViewModel
 * - RCFilters: rephrase newcomers description
 * - RCFilters: define consistent interface in ChangesListFilterGroup
 * - RCFilters: refactor highlight state
 * - RCFilters: Truncate saved query menu item
 * - Fix changes list misaligned arrow
 * - RCFilters: Actually toggle the collapsed class for toplinks
 * - RCFilters: Display specific error if query times out
 * (Notifications) - Use position:sticky for toolbar floating
 * (Notifications) - Get rid of double-escaping
 * (Notifications) - Make edit-user-talk notifications expandable
 * (StructuredDiscussions) - Use mw-editfont-* classes on noJS wikitext inputs
 * (StructuredDiscussions) - Match VE horizontal padding to placeholder
 * (StructuredDiscussions) - Cleanup use of min-height to prevent vertical height flicker
 * (StructuredDiscussions) - Connect borders together on non-JS board page
 * (StructuredDiscussions) - Fix FOUC around navigation widget
 * (StructuredDiscussions) - Remove IE8 hacks
 * (StructuredDiscussions) - Set highlight border to exact pixel value to avoid scrollbar flicker
 * (StructuredDiscussions) - Make sure ReplyWidget isn't destroyed while it's pending
 * (FlaggedRevs) - New RCFilters group for "Flagged Revisions"

1.31.0-wmf.4 (Oct 17-19)

 * - RCFilters: Store invert as a standard filter/parameter
 * - RCFilters: Don't reload when removing highlighted item
 * - RCFilters: Use GroupWidget for grouping buttons and aggregating events
 * - RCFilters: Fix RC jumpiness due to expanded/collapsed community links
 * - RCFilters: Use mixins and variables in LESS files
 * - Improve wording in Saved Filter Menu
 * - Remove strong tag from "Other review tools"
 * - Fix tabindex applied twice on RC top section
 * - Fix changes list misaligned arrow
 * (Notifications) - Align popup message color to toast message in MinervaNeue
 * (Notifications) - Fix CrossWiki-/BundleGroup layout
 * (Notifications) - mw.echo.ui.PageNotificationsOptionWidget: Fix CSS after changes in OOjs UI
 * (ORES) - Revert "WLFilters: Temporarily stop respecting hideNonDamaging on WL with beta feature"
 * - (ORES) Use the v3 API for fetching scores.

1.31.0-wmf.3 (Oct 10-12)

 * - Remove perf tracking code that was moved to WikimediaEvents in Ib300af5c
 * - RCFilters: Convert saved queries from filters to parameters
 * - RCFilters: Init highlight button based on model state
 * - RCFilters: Avoid adding raw filter and group objects to js vars
 * - RCFilters: Allows specifying default highlights from the server
 * - RCFilters: Load default saved query if it exists
 * - RCFilters UI: In the highlight code, use .data the way it was meant to be used
 * - Change Tagged edits help icon
 * (Notifications) - ContainmentSet: Use strict comparison for array_search
 * (Notifications) - Replace subtle greys with WikimediaUI color palette ones
 * (StructuredDiscussions) - Replace validation colors with WikimediaUI palette ones
 * (ORES) - RCFilters: default highlight according to preference
 * (ORES) - WLFilters: Temporarily stop respecting hideNonDamaging on WL with beta feature
 * (ORES) - Don't use STRAIGHT_JOIN for Watchlist queries

1.31.0-wmf.2 (Oct 3-5)

 * - RCFilters: Log performance data
 * - Fix watchlist "in the last X hours" display
 * - Migrate and convert WL settings to the new UX
 * - Make the RC/Watchlist legend not jump when initially collapsed
 * - RCFilters: Don't apply/clear highlights 66 times
 * - Add a help button to the Tagged Edits menu
 * - Change "Advanced filters" label color
 * (Notifications) - Fix gap between notification pop-up header and notifications
 * (Notifications) - Change Echo notification blacklist message
 * (Notifications) - Use User Ids instead of User Names for Echo Mute
 * (StructuredDiscussions) - BadImageRemover: Also look for nodes, and mw:Image/* types
 * (StructuredDiscussions) - BadImageRemover: Update for figure-inline change in Parsoid
 * (WikimediaEvents) - Move RCFilters performance logging to WikimediaEvents and also log performance for old UI
 * (WikimediaMessages) - Change font contrast on RCFilters guided tours
 * (ORES) - RCFilters: highlight damaging levels
 * (ORES) - RCFilters: Respect hideNonDamaging pref on RC and WL

1.31.0-wmf.1 (Sep 26-28)

 * Cherry-picked to wmf.19
 * - SpecialRecentchangeslinked: Unconditionally join on the page table
 * - RCFilters: Don't remove mw-changeslist-line-prefix in enhanced mode
 * - RCFilters: Redo the way spinners and ready/loading states are managed
 * - RCFilters: Don't grey out results area when initializing, unless there's a default saved query
 * - Lazy creation for heavy menu
 * - WLFilters: Don't hide .watchlistDetails while loading
 * - RCFilters: Make the interface not jump around while loading
 * - (StructuredDiscussions) Follow-up 02dc3605c6b, 7c35b50f0e: also fix bad translations of FlowMention template name
 * - (StructuredDiscussions) Follow-up 02dc3605c6b: don't rename the FlowMention template
 * New features / bigger changes
 * - (WikimediaMessages) RCFilters: Add 'learn more' link to guided tour introducing rcfilters
 * Bug fixes
 * - RCFilters: Make 'lastRevision' filter include non-rev types
 * - RCFilters: Start the toplinks collapsed/expanded by cookie value
 * - RCFilters: restore watch/unwatch link
 * - WLFilters: Live update and View newest
 * - RCFilters: Cache ChangesListSpecialPage::buildChangeTagList
 * - RCFilters: Also set toplinks-collapsed class if no cookie
 * - (StructuredDiscussions) Change progressive action to full opacity
 * - (StructuredDiscussions) Align added to watchlist tooltip to style guide and replace deprecated icon
 * - (StructuredDiscussions) Align icon opacity to text color
 * - (Notifications) Provide base href in Echo's HTML emails
 * - (WikimediaMessages) Remove unnecessary word in an ERI message
 * - (WikimediaMessages) Fix link to ORES in RCFilters beta description
 * No user impact
 * - RCFilters: Use findRelativeSelectableItem instead of getRelativeSelectableitem
 * - RCFilters: remove wgStructuredChangeFiltersEnableExperimentalViews
 * - RCFilters: Make live update polling configurable
 * - RCFilters: Don't load all of OOUI
 * - (ORES) Remove cached scores when corresponding recentchanges rows are purged

1.30.0-wmf.19 (Sep 19-21)

 * New features / bigger changes
 * - Tweak UI for main filtering entry point
 * - Revert "Tweak UI for main filtering entry point"
 * - Move New Filters opt-out preference to own section
 * - RCFilters: make live update part of the beta feature
 * - RCFilters: Add an initialization hook
 * - Hide RC/WL related preferences as appropriate
 * - (GuidedTour) Allow directly launching tour from server without ?tour= or cookies
 * Bug fixes
 * - SpecialRecentchangeslinked: Unconditionally join on the page table
 * - WLFilters: Handle (un)seen (un)filled bullets on grouped RC
 * - RCFilters: Actually check whether defaults are empty and update state
 * - RCFilters: Only selectively scroll to popup when it's focused
 * - RCFilters: Don't cast days default to an integer
 * - RCFilters: Allow empty saved query
 * - Fix saved query names cutoff
 * - RCFilters: Output namespace class on log actions as well
 * - RCFilters: Actually apply proper classes to grouped pages
 * - Center items in 'Save current filter settings'
 * - RCFilters: Preference length is in bytes, so use $.byteLength
 * - (StructuredDiscussions) Match JS and non-JS styles for navigation placeholder
 * - (Echo) Consistently use the message when updating count
 * - (Echo) Use "formatversion: 2" in notification fetching
 * - (GuidedTour) Check real RL list for existence
 * No user impact
 * - WLFilters: always create a balanced fieldset
 * - RCFilters: Live update: no data returns 204
 * - Don't use Title::setFragment
 * - (StructuredDiscussions) Rename to Structured Discussions IV: Initial i18n keys
 * - (StructuredDiscussions) Rename to Structured Discussions II: Special pages
 * - (Flow) Rename to Structured Discussions I: i18n

1.30.0-wmf.18 (Sep 12-14)

 * New features / bigger changes
 * - Provide an opt-out preference for New Filters for RecentChanges
 * - (WikimediaMessages) RCFilters: Add introduction tour when RCFilters comes out of beta
 * Bug fixes
 * - Add class marking whether RCFilters is enabled
 * - RCFilters: Live update: disable peek param
 * - RCFilters: Remove getValue and use FormOptions
 * - WLFilters: Respect default values
 * - RCLFilters: Bring back Saved Queries
 * - WLFilters: hide watchlist-details during loading of the app
 * - Align "What's this" vertically
 * - (ORES) RCFilters: hide ores highlight and "r" on watchlist beta
 * - (Flow) Fix width of non-JS reply widget
 * - (Flow) Put 'Edit description' button in its own div
 * - (Flow) Fix left padding of root comments
 * - (Flow) Align board overflow menu with WikimediaUI Style Guide
 * - (Flow) ReorderTopicsWidget: Remove hack and custom padding
 * - (Flow) WorkflowLoaderFactory: Don't crash for negative namespace titles
 * No user impact
 * - RCFilters: Live Update: download less data
 * - RCFilters: make isStructuredFilterUiEnabled public
 * - (Echo) Fix interpretation of 'prioritized'
 * - (Flow) Move handling for missing post content to lower level
 * - (Flow) Handle new fields for RecentChange object attributes

1.30.0-wmf.17 (Sep 5-7)

 * New features / bigger changes
 * - WLFilters: convert 'edit watchlist' button to new UX
 * Bug fixes
 * - SpecialRecentchanges: Restore ability to use language links in 'recentchangestext' message
 * - WLFilters: Use displaysOnUnstructuredUi instead of isVisible
 * - RCFilters: Include invert param when reading default saved query
 * - RCFilters: rephrase the feedback link text
 * - Fix highlight display for enhanced mode
 * - WLFilters: describe how unseen changes should look
 * - RCFilters: Make top links in RecentChanges expand to full-width
 * - WLFilters: fix server-side tag filtering
 * - WLFilters: adapt to customized watchlist-details
 * - WLFilters: wrap Watchlist-details in a div instead of a p
 * - WLFilters: fix msg keys to comply with standard
 * - RCFilters: Minimize vertical spacing; get rid of legend and  s
 * - WLFilters: reword watchlist-details slightly
 * - mediawiki.special.changeslist.legend.js: Remove wait for document ready
 * - (ORES) RCFilters: Note that these are now available on the Watchlist too

1.30.0-wmf.16 (Aug 29-31)

 * New features / bigger changes
 * - WLFilters: convert 'edit watchlist' button to new UX
 * - WLFilters: set default values
 * - RCFilters: Adjust highlight for seen/unseen states in Watchlist
 * - RCFilters: Enable 'View newest'
 * - WLFilters: avoid querying the DB when filters are in conflict
 * Bug fixes
 * - WLFilters: fix server-side tag filtering
 * - RCFilters: Target pushPin icon for size, not all icons
 * - RCFilters: Minimize saved query before comparison
 * - WLFilters: Fix seen/unseen filters
 * - RCFilters: Align remaining outdated greys to WikimediaUI palette ones
 * - RCFilters: Adjust pushpin 'default' icon behavior and style
 * - RCFilters: Hide saved queries from anonymous users
 * - RCFilters: Minimize vertical space
 * - RCFilters: Truncate long saved query titles
 * - (Flow) Fix infinite scroll
 * - (Flow) Recompile Handlebars, changing CSS classes
 * No user impact
 * - (PageTriage) Remove execute mode from non-executable
 * - (Flow) Improve some parameter docs
 * - (Flow) Title::getSquidURLs is deprecated
 * - (Flow) build: Update eslint-config-wikimedia 0.4->0.5, eslint 19->20

1.30.0-wmf.15 (Aug 22-24)

 * New features / bigger changes
 * - RCFilters: Add title attribute to [x] button
 * - RCFilters: Add title attribute to highlighted rows
 * - WLFilters: new 'watchlist activity' filter group
 * - WLFilters: convert mark as seen button to new style
 * - Enable RCFilters app on Watchlist
 * - RCFilters: tweak old changes indicator
 * - RCFilters: Add marker between old and new changes in enhanced mode
 * - (Flow) Localize namespaces in ba
 * Bug fixes
 * - RCFilters: Ignore sticky filters when emptying all filters
 * - RCFilters: Fix highlight circle misalignment
 * - RCFilters: Fix validation for single_option groups
 * - RCFilters UI: Correct full coverage message
 * - (Echo) Update Red50 'destructive' color
 * - (Echo) Fix 'unread' dot top padding regression
 * - (Echo) Replace outdated `border-radius` value with WikimediaUI one
 * - (Echo) Better explain how the Mute feature works
 * No user impact
 * - (ORES) Use json extension for .stylelintrc
 * - (PageTriage) Use json extension for .stylelintrc
 * - (Flow) Use json extension for .stylelintrc
 * - (Flow) Replace 'constructive' with 'progressive' flag
 * - (Flow) Duplicate new table from core, patch 349457
 * - (Echo) Use namespaced ScopedCallback
 * - (Echo) Use json extension for .stylelintrc
 * - (Echo) Duplicate new table from core, patch 349457

1.30.0-wmf.14 (Aug 15-17)

 * New features / bigger changes
 * - Unwatch link for pages in Special:Watchlist
 * - (Echo) Add 'Mark all as read' button
 * Bug fixes
 * - RCFilters: preserve invert parameter in saved queries
 * - (Flow) Replace abandoned `@colorGray13` with current WikimediaUI one
 * - (Flow) Replace remaining greys with WikimediaUI palette ones

1.30.0-wmf.13 (Aug 8-10)

 * New features / bigger changes
 * - RCFilters: Add 'enhanced' view (Group by pages)
 * - RCFilters: Add 'advanced filters' label to the view selection
 * - SpecialWatchlist: Always apply a LIMIT
 * Bug fixes
 * - RCFilters: Unsticky the 'limit' preference temporarily
 * - RCFilters: Pluralize 'show last X changes' message
 * - Follow-up 31be7d0: send tags list if experimental mode is disabled
 * - RCFilters: Trim results to allow searching for spaces after trigger
 * - RCFilters: Scroll widget to top when switching view
 * - RCFilters: Don't reload results for redundant requests
 * - RCFilters: Normalize arbitrary values before adding them
 * - RCFilters: set live update button title
 * - RCFilters: Add vendor prefixes to loading animation
 * - RCFilters: Prevent live update fetch if model is in conflict
 * - RCFilters: Adjust styling of 'other review tools' button
 * - RCFilters: Normalize 'limit' to minimum 0, like the backend does
 * - RCFilters: Adjust server default variable names for limit/days
 * - RCFilters: Normalize user-generated default values
 * - RCFilters: Remove new changes visual cue for Live Update feature
 * - RCFilters: Bring back old vs new marker in live update
 * - RCFilters: Correct label for "View newest changes" button
 * - RCFilters: Allow non-sticky filters to be excluded from saved queries
 * - RCFilters: Show "from" link when live update is not available
 * - Set a min and max on the rclimit preference
 * - (Flow) Add for flow-dialog-cancelconfirm-{title,message}

1.30.0-wmf.12 (Aug 1-3)

 * Cherry-picked to wmf.11
 *  - RCFilters: Filter duplicates when filtering for multiple tags 
 *  - Follow-up 2a04f2d: don't pass [  ] as tag filter when tagfilter=  
 *  - RCFilters: Improve loading animation 
 *  - RCFilters UI: Unbreak limit and days widgets in non-experimental mode
 *  - RCFilters: Followup I78e23f85c3: Don't disable RCFilters system when fetching results 
 *  - RCFilters: Read base value of limit/days from preference 
 *  - Follow-up 94b6ba5453: cast default value to string
 * New features / bigger changes
 * - RCFilters: Make 'related links' collapsible
 * - RCFilters: Create a sticky preference for days/limit groups
 * - RCFilters: Allow setting a new query as default
 * - RCFilters: show new changes
 * Bug fixes
 * - RCFilters: Close limit/days popups after choosing value
 * - RCFilters: Reduce space between filters and saved queries button
 * - RCFilters: Trim input text before evaluation
 * - RCFilters: Open limit/days popups the other way
 * - RCFilters: Remember legend expand/collapse state
 * - (ORES) Messages for low and high accuracy likelybad filters
 * - (ORES) Treat RC_LOG and RC_EXTERNAL rows as unscorable
 * - (ORES) Follow-up a93bd12: also ignore RC_LOG/RC_EXTERNAL in non-RCFilters UI
 * - Cap 'days' param in RC/Watchlist at $wgRCMaxAge
 * - Split minoredit into minoredit and enotif_minoredit
 * No user impact
 * - ChangeTags: Remove $wgRequest abuse in modifyDisplayQuery
 * - Add unit tests for ChangeTags::modifyDisplayQuery
 * - RCFilters UI: Remove duplicate(!!) method mw.rcfilters.Controller#_getDefaultParams
 * - RCFilters: Make namespace and tag features no longer experimental
 * - RCFilters: Remove $wgStructuredChangeFiltersEnableSaving feature flag
 * - Remove StructuredChangeFiltersEnableSaving completely
 * - Enable jsduck for resources/src/mediawiki.rcfilters and make pass
 * - (ORES) Use instead of hardcoding "Logged actions"
 * - (ORES) Allow filter UI to be turned off

1.30.0-wmf.11 (July 25-27)

 * Cherry-picked to wmf.10
 *  - (Echo) Fix layout regression in notification popup footer 
 *  - (Thanks) Add missing jQueryMsg dependency for mobile diff view 
 * New features / bigger changes
 * - RCFilters: Add range group filters - limit, days and hours
 * - RC Filters: combine user registration and experience level filters
 * - RCFilters: proper group name for user experience level
 * - RCFilters: Emphasize UI when saved query is loaded
 * - RCFilters: Change loading animation
 * Bug fixes
 * - RCFilters: Only open one 'Whats This' popup at a time
 * - RCFilters: Change `What's this?` i18n based on user testing
 * - RC Filters: Tweak i18n for latest/not latest revision filter
 * - EnhancedChangesList: Don't render headings for empty days
 * - RCFilters: Don't emit wikipage.content on first load
 * - RCFilters: Increase the initial height of the loading box
 * - RCFilters: Make sure single_option always has 1 item selected
 * - RCFilters: Exclude 'hidden' filters from 'areCurrentFiltersEmpty' query
 * - RCFilters: Make the pulsating animation on the live update button not block clicks
 * - RCFilters: Don't empty the changes list on first load
 * - SpecialRecentchanges: Handle ?days= parameter more sanely
 * - (Flow) Add mw-parser-output to summaries and board widget
 * - (WikimediaMessages) Hooks::onBeforePageDisplay: Don't show a Beta Features invite on non-BF wikis
 * No user impact
 * - RCFilters: Add 'boolean' group
 * - RCFilters: Log filter groupings

1.3o.0-wmf.10 (July 18-20)

 * New features / bigger changes
 * - RCFilters: Allow experimental live update feature to be enabled with query string parameter
 * Bug fixes
 * - ChangesListStringOptionsFilter: Make isSelected respect ALL
 * - RCFilters: Correct language for invert button
 * - RCFilters: Reduce saved queries items height
 * - RCFilters: Scroll to top on view switch
 * - RCFilters: Don't call ChangeTags::tagUsageStatistics for now
 * - ChangesListSpecialPage: Don't short-circuit the ChangesList, instead format zero rows
 * - (Flow) Add mw-parser-output class to flow posts
 * No user impact
 * - rcfilters: LiveUpdateButtonWidget: Fix bad method call leading to weird warning

1.30.0-wmf.9 (July 11-13)

 * Cherry-picked to wmf.7
 *  - RCFilters: Fix typo in removing a saved query 
 *  - RCFilters: Followup I200720ffde8ad: Hide extended footer if gater is disabled 
 *  - RCFilters: Followup I5cede87633147: Set actual value rather than object 
 * New features / bigger changes
 * - Fix \n handling for HTMLUsersMultiselectField
 * - UsersMultiSelectWidget: Port from CapsuleMultiselectWidget to MenuTagMultiselectWidget
 * - (Echo) Improve UI for blacklist preference
 * - Fix font size / alignment of timestamps in enhanced recent changes
 * - RCFilters: Basic implementation of live updates
 * - (Echo) Adding the first step in order to enable the visualization of the Article Reminder feature.
 * - (Echo) Improve messages about page reminders
 * - (Echo) i18n tweak for article reminder category on preferences
 * Bug fixes
 * - (Flow) Do not override other flags on enhanced recent changes
 * - RCFilters: Reverse the sorting on tags
 * - RCFilters: Fix parameter name for "namespace"
 * - RCFilters: Remove  if extension table is empty
 * - RCFilters: Correct default view title
 * - RCFilters: Simplify "Saved filter settings" to "Saved filters"
 * - RCFilters: Always use the filled bookmark icon (unClip)
 * - RCFilters: Move legend into results (both js and nojs output)
 * - RCFilters: Make extra filters footer non-sticky
 * - RCFilters: Correct display of save filter popup
 * - RCFilters: Fix popup head with long message and icon
 * - RCFilters: Trim spaces in saved query names
 * - RCFilters: Change tooltip messages for view buttons
 * - RCFilters: Only show 'no filters' when actually none were found
 * - RCFilters: Respect ?enhanced=0 url regardless of preference
 * - RangeChronologicalPager: Don't clear $offset when $this->rangeConds is set
 * - RCFilters: Followup I436f00bc87db: Remove onPopupToggle listener
 * - (Echo) Fix alignment of the "Mark all read" button
 * - (Flow) Change "article" to "page"
 * - (WikimediaMessages) Follow-up 6401f1ec9b69: actually add the RTL version of the feedback icon
 * No user impact
 * - SpecialRecentchanges: Globals for config are bad, m'kay
 * - RCFilters: Only build tag list when experimental views are enabled
 * - (Echo) Replace EchoDiscussionParser::htmlToText with Sanitizer::stripAllTags
 * - (Flow) Don't mess with $wgHooks in DeletedContributionsLineEnding hook
 * - (Flow) Remove no-op onSkinMinervaDefaultModules hook logic
 * - (Flow) Split multi variable declaration
 * - (Flow) Force topics to be exported by UUID order
 * - (Flow) Dumps: filter out non-compliant characters (bad PCDATA) from revision text

1.30.0-wmf.7 (June 27-29)

 * New features / bigger changes
 * - RCFilters: Change to the new views redesign
 * - (Wikibase) Support Wikibase changes in enhanced recent changes on clients
 * Bug fixes
 * - RCFilters: Change the input icon on interaction
 * - RCFilters: Correct unbalanced margins in active filters display
 * - RCFilters: Reposition TagItemWidget to be center on the widget
 * - RC Filters: Fix tags for integrated filters
 * - RCFilters: Remove view triggers before checking emptiness of string
 * - RCFilters: Have the model accept multiple views
 * - RCFilters: Actually recognize a saved query default and delete when removed
 * - RCFilters: Invert the muted state of inverted namespace options
 * - RCFilters: Fix typo in removing a saved query
 * - RCFilters: Followup I200720ffde8ad: Hide extended footer if gater is disabled
 * - RCFilters: Followup I5cede87633147: Set actual value rather than object
 * - (ORES) Rework highlighting frontend to make it work everywhere
 * - (WikimediaEvents) Follow-up 6b83e12aee71: reenable fromrc handling, but without breaking visited links


 * No user impact
 * - RCFilters: Unify reading filters by views and adjust unit tests
 * - RCFilters: Add 'single_option' group type

1.30.0-wmf.6 (June 20-22)

 * New features / bigger changes
 * - RCFilters: Add 'views' concept and a namespace view to RCFilters
 * - RCFilters: Always replaceState the URL
 * Bug fixes
 * - (Flow) Emphasing Flow Beta feature activation message + add Special:MyLanguage
 * - RCFilters: Make frontend URL follow backend rules and add 'urlversion=2'
 * - RCFilters: Send form info even for empty checkboxes
 * - Add | to error message about invalid change tag characters
 * No user impact
 * - ChangesListSpecialPage: Add urlversion and make urlversion=2 ignore defaults

1.30.0-wmf.5 (June 13-15)

 * New features / bigger changes
 * Bug fixes
 * - RCFilters: Retain extra url params when comparing url equivalency
 * Cherry-picked to wmf.4
 * - (Flow) Revert "Throw when unserializing invalid Flow workflow metadata JSON"
 * No user impact

1.30.0-wmf.4 (June 6-8)

 * New features / bigger changes
 * - Enable $wgStructuredChangeFiltersEnableSaving by default
 * Bug fixes
 * - RCFilters: Set up custom color for yellow+blue combination
 * - RCFilters: Center the checkmark in the highlight menu
 * - RCFilters UI: Rename "Quick links" to "Saved filter settings"
 * - Change "...." (four dots) to "..." (three dots) in the only two messages that use it
 * - RCFilters UI: Use backwards-aligned anchorless popups now that they work
 * - RCFilters: Unify 'highlight' and 'selected' items
 * - RCFilters: Blur input on 'escape' key
 * - RCFilters: Add top spacing between RCFilters and top content
 * - RCFilters: Hide server-side 'empty results' message
 * - RCFilters UI: Make monobook override of the 'checkmark' more specific
 * - RCFilters UI: Compare states instead of params when switching URL
 * - RCFilters: Minimize url string
 * - (Echo) Fix user talk exception for blacklist
 * - (Echo) Fallback to dbname if source title doesn't exist
 * - (PageTriage) Switch from using $wgRCMaxAge to 90 days for defining "new"
 * No user impact
 * - RCFilters: Depend on the 'content' icon pack, for the 'history' icon
 * - RCFilters UI: Migrate FloatingMenuSelectWidget to MenuSelectWidget
 * - (Echo) Use the "movement" icon pack for the "expand" icon now that the core icon pack has been removed
 * - (Flow) Use "trash" icon instead of deprecated and removed "remove" icon

1.30.0-wmf.3 (May 30-June 1)

 * New features / bigger changes
 * - (Echo) Implement per-user notification blacklists
 * - (MW core) RCFilters: Style the Saved Links placeholder and add a title
 * - (MW core) RCFilters: Style saved links option menu
 * Bug fixes
 * - (PageTriage) Don't treat users who used to be blocked as blocked
 * - (MW core) RCFilters: Dismiss Apex' insistence to add checkmark to optionWidgets
 * No user impact
 * - (Flow) Replace $( document ).ready( ... ) by $( ... )
 * - (Flow) sizeof -> count, Interface -> interface
 * - (ORES) Forward request data to ORES API

1.30.0-wmf.2 (May 23-25)

 * New features / bigger changes
 * - (MW core) RCFilters UI: Add a placeholder to SavedLinksListWidget when it's empty
 * - (MW core) RCFilters UI: Add tooltip to saved links items
 * - (MW core) Gate option to save RC filters to default false
 * - (MW core) RCFilters UI: Add down indicator to SavedLinksListWidget button
 * - (PageTriage) Bringing back the top reviewers stats


 * Bug fixes
 * - (MW core) RCFilters UI: Actually backwards-compat instead of overriding false
 * - (MW core) RCFilters: Actually be consistent when storing 'highlight' state
 * - (MW core) RCFilters: Always put highlight values in the URL
 * - (MW core) RCFilters: Fix getFilterRepresentation to consider '0' as false
 * - (MW core) RCFilters: Rephrase 'unset' to 'remove' in default option menu
 * - (MW core) RCFilters: Treat saved query with multiple spaces as empty
 * - (MW core) RCFilters: Actually read/write highlight parameter
 * - (MW core) RCFilters UI: Don't remove removed saved links twice
 * - (Echo) Fix usage of $db->nextSequenceValue
 * - (PageTriage) Ensure the number of fitlered pages respects all filters
 * - (PageTriage) Fix checkbox checkedness setting
 * - (ORES) Do not error out when threshold can't be found


 * No user impact
 * - (MW core) Refactor filter-specific logic into group models
 * - (MW core) Factor out changetag name validation check
 * - (MW core) Add missing addQuotes to ChangesListSpecialPage
 * - (Echo) Trivial docfix in DiscussionParser
 * - (Flow) TalkpageManager: Add non-master mode to checkIfCreationIsPossible for API
 * - (PageTriage) Avoid PHP notices about unset indexes in ApiPageTriageList
 * - (PageTriage) Avoid DB_MASTER queries on HTTP GET in ArticleMetadata->getMetadata

1.30.0-wmf.1 (May 9-11)

 * New features / bigger changes
 * - (MW core) RC Filters: Last revision filter group
 * - (MW core) RC Filters: always join with 'page'
 * - (MW core) Follow-up bac92e67ca0: make order of filter groups less misleading
 * - (MW core) RC Filters: watchlist
 * - (MW core) RC Filters: group.allSelected consider subsets
 * - (MW core) RC Filters: watch filter highlight
 * - (MW core) RCFilters: Only register watchlist filter group when user is logged in
 * - (MW core) RCFilters UI: Add a 'saved queries' quick filters feature
 * - (MW core) Followup I5cede8: Fixup SavedQueries styling and event
 * - (MW core) Followup I5cede8: Make the SavedQueries popup larger
 * - (MW core) Follow-up I5cede8: fix JS error when user has no filters saved
 * - (WikimediaEvents) Track clicks on the "top links" on the RC page
 * - (MW core) SpecialRecentchanges: Add class="mw-recentchanges-toplinks" to the "top links"
 * - (ORES) Align damaging thresholds to filters thresholds
 * - (ORES) Follow-up c047cd54d69ed: rename oresDamagingPref values back
 * - (WikimediaMessages) Rc Filters beta feature invitation tour
 * - (MW core) Fix contradictory RC filters and add back-compat
 * - (MW core) RC Filters: Single boolean filters are not contradictory
 * Bug fixes
 * - (MW core) RC Filters: Make filters header sticky
 * - (MW core) RC Filters: don't bind onMenuToggle twice
 * - (MW core) RCFilters: Override highlighted background
 * - (MW core) RC Filters: Rephrase learner level message
 * - (ORES) Update ores-help-damaging-pref message
 * - (ORES) Fix highlighting on Special:Contributions
 * - (ORES) RC Filters: Fix subset registrations
 * - (ORES) Delete i18n/en-gb.json - the translations are wrong
 * - (ORES) Don't throw exception when "the" damaging threshold (for old code) can't be found
 * - (ORES) Don't break the entire preferences page if the ORES API is down
 * - (ORES) Gracefully handle fetch stats errors
 * - (Echo) Fix counting of bundled mention notifications
 * - (Echo) Follow-up 739847c20: don't adjust the popup anchor position
 * - (Echo) Don't truncate notification header messages in bundles
 * - (Echo) Fix missing number in message
 * - (Flow) Fix unwatch icon in monobook
 * - (Flow) Fix truncation of "Browse topics" button
 * - (Flow) Remove arbitrary limit of 20 mentions
 * - (Flow) Set max mention count to 50
 * - (Flow) Make onEnhancedChangesListModifyBlockLineData expect 3 args
 * - (Flow) Follow-up c1beac48: fix JS error when clicking reply link
 * - (WikimediaMessages) RC Filters: Do not show 'invite' to users who have seen 'welcome'
 * - (WikimediaMessages) Rc Filters highight tour: highlight button is always visible
 * No user impact
 * - (MW core) RC Filters: support multiple namespaces
 * - (MW core) RC Filters: Support multiple tag filters
 * - (MW core) Change delimiter for multiple namespaces and tags
 * - (MW core) RCFilters UI: Create base classes for shared objects
 * - (MW core) RCFilter UI: allow getParametersFromFilters to accept filter list
 * - (ORES) Replace jshint/jscs with eslint
 * - (ORES) Rewrite highlight JS to use mw.Uri and generally be cleaner
 * - (ORES) Deduplicate ores-help-damaging-pref
 * - (ORES) Add batch size option for PurgeScoreCache
 * - (ORES) Use $wgOresRevisionsPerBatch == 0 to disable on-demand score fetch
 * - (ORES) Do not store scores for revisions not in recentchanges
 * - (ORES) Revert "Remove all (except meta) API funcationality hooks"
 * - (ORES) Follow-up 2b68933208: use variables
 * - (Flow) Don't use deprecated class
 * - (Flow) build: add jakub-onderka/php-console-highlighter
 * - (Flow) build: Update eslint to 0.4.0 and make pass
 * - (Flow) Stop loading deprecated OOUI core icon pack
 * - (Flow) Add test case names for SpamFilter, to make which fails obvious
 * - (Flow) extension.json: Drop no-op dependency on deprecated es5-shim module
 * - (Flow) Remove unused imports
 * - (Flow) Fix a lot of non-standard @var and @param PHPDoc lines
 * - (Echo) EventMapper: Don't retry failed lookup queries on the master on GET
 * - (WikimediaMessages) Move setting wgRCFiltersORESAvailable to the tour that actually uses it