VisualEditor/status

The following is an archive of updates on the status of the new VisualEditor extension. Last update on: 2013-07-monthly

__NEWSECTIONLINK__

2011-05-16
Trevor Parscal and Neil Kandalgaonkar have done exploratory work on the visual editor project. Neil worked with developers of HackPad (a custom version of Etherpad, a real-time collaborative editing software) on a proof of concept of integration between Etherpad and MediaWiki (read more). They're now working on turning it into a MediaWiki extension. Work on the visual editor is also intersecting with the groundwork done on the new parser.

2011-06-02
Trevor Parscal and Neil Kandalgaonkar have done exploratory work on the visual editor project. Neil worked with developers of HackPad (a custom version of real-time collaborative editing software Etherpad) on a proof of concept to integrate Etherpad and MediaWiki (read more). They're now working on turning it into a MediaWiki extension. Trevor continues to work on WikiDom, a storage structure and functionality acting as an intermediate layer between the parser and a visual editor. This work also intersects with the groundwork done on the new parser.

2011-06-30
Trevor Parscal continued to work on the front-end of the visual editor, and specifications for accessing the editing surface via the API. A hybrid rendering approach appears to be the best strategy for the visual editor. Neil Kandalgaonkar continued to work on the middleware, DOM and transactions. Neil also continued to work on a demo to integrate MediaWiki and Etherpad. With Alolita Sharma, they planned their upcoming sprints. Neil and Trevor are posting about their work to the wikitext-l list.

2011-07-25
Trevor Parscal continued to work on the front-end of the visual editor and rich text rendering; he was joined by Inez Korczynski, a developer from Wikia, who are also interested in the visual editor. Neil Kandalgaonkar worked on real-time collaboration, concurrent editing and dived into the inner workings of Etherpad. (Read summary on wikitext-l.)

2011-08-31
Trevor Parscal and Inez Korczynski worked on a transaction-based model for the visual editor, where the document is built as a series of events (instead of saving it entirely at every change), which makes it easier to undo actions. Neil Kandalgaonkar continued to work on real-time collaboration and is close to presenting a demo of Etherpad working inside a MediaWiki edit window. Ian Baker investigated and started to work on a chat system to be integrated to the concurrent editing interface, for collaboration and live help. More details on the wikitext-l mailing list.

2011-09-30
Trevor Parscal expanded the software design documentation. He also refactored some of the data structures to follow a model/view controller pattern and support document-level transactions. He wrote tests for the new structure, and got it to render paragraphs and lists; he's now working on rendering tables.

2011-10-31
Trevor Parscal worked on a new model tree (and the conversion from the linear model) and updated the software design documentation. Inez Korczynski worked on front-end functionality: dialogs, selecting text, mouse actions, scrolling, keyboard shortcuts, etc. Roan Kattouw focused on algorithms that insert ranges of data into a document, and Neil Kandalgaonkar on the removal of data. On the parser side, a basic parser using PEG is in place, which produces an intermediate JSON object tree; Brion Vibber is still working on markup support (mixed HTML and Wikitext). Gabriel Wicke joined the team and started to work on the PEG parser (read more).

2011-11-30
Trevor Parscal fixed issues blocking the synchronization of structural edits to the user interface, refactored and cleaned up the code, and mapped out tasks and features to be supported. He also finished the document transaction functionality and made progress on an undo/redo system. Roan Kattouw added tests, rewrote some code to make the tests pass, and fixed a number of bugs and issues, notably in Internet Explorer. Inez Korczynski continued to work on content insertion, deletion and selection and fixed numerous bugs. Gabriel Wicke extended the PEG parser for robust larger-scale parsing. He converted the PEG parser into a combined wiki and HTML tokenizer that feeds to a HTML5 DOM tree builder. He implemented several wikitext features (lists, italics, bold) as token stream transformations. 139 of about 660 parser tests are now passing.

2011-12-13
<section begin=2011-12-13/>The first public developer prototype of the visual editor sandbox was deployed to MediaWiki.org for public feedback and testing. It can be accessed via the visual editor sandbox special page. Full announcement in the Wikimedia blog.<section end=2011-12-13/>

2011-12-31
<section begin=2011-12-31/>The team deployed a developer prototype of the visual editor sandbox to mediawiki.org for public feedback and testing. Trevor Parscal fixed bugs and refactored code. Inez Korczynski worked on the toolbar (text styles), the undo/redo stack, and lists (creating, deleting, and changing indentation). Gabriel Wicke worked on the parser test runner and the parser pipeline, including [//lists.wikimedia.org/pipermail/wikitext-l/2011-December/000494.html the tokenizer and its grammar] and template expansions. Neil Kandalgaonkar worked on the undo/redo feature and did a lot of refactoring.<section end=2011-12-31/>

2012-01-31
<section begin=2012-01-31/>January was a bit slower on the visual editor front, as parts of the team took some well-deserved vacation after the successful prototype launch in December. During the SF Hackathon, a lot of issues were fleshed out. Plans for the second phase of the editor project were formulated. Inez Korczynski investigated a possible use of  to help with input methods and text selections on mobile devices. Gabriel Wicke extended the parser with the ability to fetch and expand templates in a parallel and asynchronous fashion. The parser now supports most parts of the English Wikipedia Main Page.<section end=2012-01-31/>

2012-02-29
<section begin=2012-02-29/>Trevor Parscal did research on cursor interaction and selection rendering for RTL (right-to-left) and support for line breaks in PRE elements. Gabriel Wicke improved template expansion and parser function support, investigated Microdata and RDFa for WikiText-in-HTML-DOM embedding and added rough support for images and other files. Rob Moen committed a working Editable Surface IME prototype (bidirectional text not fully supported). Audrey Tang joined the team and worked on the sanitizer and the testing process.<section end=2012-02-29/>

2012-03-05
<section begin=2012-03-05/> Exploration of using ContentEditiable (CE) in place of EditSurface (ES) for the display layer was successful, and the team is integrating the new display layer system into the rest of the codebase. Inez and Christian are continuing their work on CE while Rob is focusing on getting the UserInterface (UI) module working with CE. Rob will be refactoring UI and adding an API layer for toolbar and inspector extensions. Trevor and Roan are focusing on DataModel (DM) changes that need to be done to improve tree sync and integration with the parser (Parsoid). Gabriel and Audrey are continuing their work on Parsoid.<section end=2012-03-05/>

2012-03-06
<section begin=2012-03-06/>Last week made big decisions. The big one was to move forward with contentEditable (CE) that Inez and Christian are doing in place of Editable Surface (ES). Looks like editing on mobile will be awesome! Trevor and Roan will be focusing on the data model (DM. DOM -> Linear Parser) as the basic objectives have been hashed out, the (parser -> DM is unaffected). Certain structure changes (i.e. turning paragraphs to lists) aren't currently possible so the DM will change to support that. Linking with the parser (DOM-> LM converter) will be deferred for a week.

In terms of the UI, Rob worked on some RTL in ES, but switched given the CE advances. This week will focus on getting the UI working in CE (assess what UI we have from ES and where it needs to be). Plan on getting to the point we can user test the JS API for the toolbar.

In terms of the parser, Gabriel has to decide on RDFa vs. microdata eventually (difference are minimal, most of the DOM stuff won't change and can be tested with vanilla HTML anyway). Created a dump grepper with syntax highlighting and used that to analyze existing wikilink/image syntax use. Refactored tokenization and expansion of wikilink/images so now image options can come from templates (257 tests passing now). Plan on tackling interacting with action=parse and wiki in general. Also some more parser function tweaking, etc. and the RDFa/microdata decision.<section end=2012-03-06/>

2012-03-20
<section begin=2012-03-20/>Team updated (sans key people who are out of commission): FY2012-2013 goals section. Further updates/corrections by Trevor and Gabriel expected when they return.<section end=2012-03-20/>

2012-03-31
<section begin=2012-03-31/>A big decision in March was to move forward with contentEditable (CE), implemented by Wikia developers Inez Korczynski and Christian Williams, instead of Editable Surface (ES). Trevor Parscal and Roan Kattouw focused on the data model. Rob Moen worked on the user interface, first on right-to-left support in ES, then on getting the UI working in CE. Gabriel Wicke and Audrey Tang continued their work on Parsoid and need to decide on RDFa vs. microdata. They created a dump grepper with syntax highlighting, and used it to analyze existing wikilink/image syntax use.<section end=2012-03-31/>

2012-04-monthly
<section begin=2012-04-monthly/>Roan Kattouw and Trevor Parscal are rewriting the underlying data model (ve.dm) to achieve feature compatibility with the parser and correct a variety of problems that have been previously deferred. Inez Korczynski and Christian Williams have been continuing their work to stabilize and integrate the content editable layer (ve.ce) and have been working with Rob Moen, who has focused on getting the user interface elements working with the content editable layer (ve.ui). Gabriel Wicke has been working on improving the parser's ability to parse pages more quickly as well as increasing compatibility with existing features such as thumbnails. A big template-heavy page like Barack Obama can now be expanded in similar time as the production parser (80 seconds on a puny laptop) and 340MB of memory. It previously ran out of memory after consuming 1.6G and running for ~30 minutes.<section end=2012-04-monthly/>

2012-05-07
<section begin=2012-05-07/>

Release Planning
BY JUNE! 5 weeks.

What we want:
 * parse page
 * load editor
 * save it back

Parser:
 * not hard to load simple pages
 * but not roundtripping it (because not all tags are supported)
 * Serializaiton: some normalization. focusing efforts on reconcilliation instead?
 * For Roundtripping: Need more support. Handle templates (started by one and ended by another), also template parameters. (linear model supports both: but data model only allows edit templates parameters on opening).
 * Just finished Refactoring so it can expand big articles. A few more days left of followup.

Serializer:
 * "Alien Nodes" (HTML we don't understand)
 * acknowledge that dirty diffs will happen.
 * Have a sandbox deploy, create a namespace for it.

June:
 * Roundtrip something!
 * Probably a namespace limit, sandbox
 * allow dirty diffs or disallow manual editing and start from scratch.
 * If source editing, then it will run it through the parser as a presave transformation. Warning banner with X? so may not have source mode editing only if developer mode.
 * Maybe Gabriel can refocus on serialization (worried abotu stuff that will be shifting).
 * get it ready incremental improvements on front-end, but on the serialization and back-end that will change.

James Forrester:
 * sooner is better. :-)
 * He will need to be on board for the release in (late) June

Things to be done for release:
 * 1) Gabriel needs to refocus on serialization (for roundtripping) after he gets the refactor settled (next couple days)
 * 2) Finish DM rewrite stuff. As soon as it is in master then we start doing integration.
 * 3) * This week: Get feature completeness with transactions]
 * 4) * On FE, rework observation stuff, toolbar into the DM stuff as it comes along.
 * 5) * Annotation should be working today.
 * 6)  Integration work?
 * 7) * MW integration [Roan]
 * 8) * FE integration- do a "ooh and ahh" it.
 * 9) * Node.js integration [Gabriel will get working, and Roan will puppetize and give to Ops]. Roan has Node.js installed on a VM project.

Release Notes: Dec to June (reason)
 * 1) Switch from ES to CE (due to CE, This warrants a blog post)
 * 2) Mobile editing support (due to CE, Patrick can hack up something)
 * 3) February stuff: Supports spellcheck, autocorrect, IME (due to CE)
 * 4) turn headline into paragraph
 * 5) feature parity w/ previous demo (internal check)
 * 6) Load and save (parser/serializer, backend integration)
 * 7) In-place editing (frontend integration)
 * 8) Graceful failure/fallback (AlienNode)
 * 9) [TBD] partial iage support (DM rewrite)

Trevor will make a task list in-wiki. If it doesn't work out, will consider to switching to Asana.<section end=2012-05-07/>

2012-05-20
<section begin=2012-05-20/>Tracking ongoing work: <section end=2012-05-20/>
 * Visual Editor ToDo List
 * Parser-specific todo list

2012-05-23
<section begin=2012-05-23/> Gabriel has set up a very basic parsoid service.


 * browse english wikipedia as parsoid sees it
 * POST wikitext -> HTML DOM
 * POST HTML DOM -> wikitext.

Note: round-tripping is limited. Does not support preservation of variable whitespace, templates and other complex constructs yet.

Currently 154 parser tests are passing in the new --roundtrip mode that Subbu added last week.

Also the team had a meeting with James.<section end=2012-05-23/>

2012-05-monthly
<section begin="2012-05-monthly"/>The team completed release planning for June and welcomed James Forrester as the Technical Product Analyst for the project. Ongoing work on the Visual Editor and Parsoid is tracked on-wiki. Gabriel Wicke set up a very basic parsoid service that lets users browse the English Wikipedia as Parsoid sees it, and convert Wikitext to HTML DOM and vice versa.<section end="2012-05-monthly"/>

2012-06-monthly
<section begin="2012-06-monthly"/>The team did the first deployment of VisualEditor and Parsoid, with an early version now live in a test namespace on mediawiki.org. This editor is broadly feature-compatible with the old, EditableSurface-style code which this replaces, while being the first release that can create and edit pages. The team is now planning to deploy new code as it develops every two weeks or so. The initial push will be to work on bug-fixes, and to finalise the code for a few features that were close to being ready before the first deployment.<section end="2012-06-monthly"/>

2012-07-monthly
<section begin="2012-07-monthly"/>The VisualEditor (VE) team presented their work at Wikimania and received a good deal of feedback from the community. The team created a rough plan for the next three months' work. The early version of VE on mediawiki.org was updated twice, fixing a number of bugs and noticeably including the addition of support for nested lists. Gabriel Wicke relocated to San Francisco, and Timo Tijhof visited the SF office for three weeks after Wikimania.<section end="2012-07-monthly"/>

2012-08-20 (MW 1.20wmf10)
<section begin="2012-08-20 (MW 1.20wmf10)"/>The VisualEditor was updated as part of the wider MediaWiki 1.20wmf10 branch deployment on Monday 20 August.

The most visible new item in the two weeks since 1.20wmf9 is the much-improved link inspector. This now guides users to create a link to a suggested existing article, a redlink or an external link, and replaces the previous basic functionality that did not suggest links or inform you if the target of your link existed. We have also improved the save dialogue, streamlining the interaction based on feedback from the design team.

There have also been a number of bug fixes, such as preserving spaces before and after the content in headings and other forms (so that " == Foo == " doesn't have spacing either side of it in the editor display, but doesn't strip them either &mdash; 37935), using browsers' native deletion mechanisms which helps with support for short-cuts and internationalisation (38461), and handling of "alien nodes" (pieces of content that the editor does not know how to edit yet) so that they do not break the rest of the editor when included. However, most of the changes have been improvements to the code architecture to allow it to be re-used and extended to support new 'node types' like categories or tables when we work on these later.

A complete list of individual code commits is available in the 1.20/wmf10 changelog, and all Bugzilla bugs closed in this period on Bugzilla's list.<section end="2012-08-20 (MW 1.20wmf10)"/>

2012-08-monthly
<section begin="2012-08-monthly"/>In August, the team focused on overhauling the code design of VisualEditor so that it is more modular and easier to extend. This involves creating and documenting a number of formal APIs at each point in the architecture, that means a developer does not have to understand the entire code base to be able to add new features. The early version of the VisualEditor on mediawiki.org was updated twice (wmf9 and wmf10), fixing a number of bugs, as well as adding a much-improved link inspector to help users build links, and a save dialog that better guides users on what to do.<section end="2012-08-monthly"/>

2012-09-03 (MW 1.20wmf11)
<section begin="2012-09-03 (MW 1.20wmf11)"/>The VisualEditor was updated as part of the wider MediaWiki 1.20wmf11 branch deployment on Monday 3 September.

The team have spent most of the two weeks since 1.20wmf10 working on how the code integrates together, providing clean interfaces between them so new developers can re-use and extend VisualEditor to support new 'node types' like categories or tables when we work on these later.

That said, there have been a number of bug fixes, including better support for RTL languages as part of our work with our Internationalisation colleagues, supporting the use of VisualEditor with the Monobook skin (38154) and making sure we don't appear to support browsers that won't work with VisualEditor (38857). We now support the editing of old revisions through the tool rather than just the latest one (37821), and have updated the code to work with a changed way in which the Parsoid service now operates as it is developed.

A complete list of individual code commits is available in the 1.20/wmf11 changelog, and all Bugzilla bugs closed in this period on Bugzilla's list.<section end="2012-09-03 (MW 1.20wmf11)"/>

2012-09-17 (MW 1.20wmf12)
<section begin="2012-09-17 (MW 1.20wmf12)"/>The VisualEditor was updated as part of the wider MediaWiki 1.20wmf12 branch deployment on Monday 17 September.

The last two weeks included the annual Wikimedia Engineering all-tech meeting and the Wikimedia Foundation all-staff meeting, so this iteration was in effect shorter than others. The team have continued to spend most of the coding time over the two weeks since 1.20wmf11 working on how the code integrates together. This work will provide cleaner interfaces between components of the VisualEditor, so new developers can re-use and extend VisualEditor to support new 'node types' like categories or tables when we work on these later.

Beyond the API work, there have been a few minor changes to the user interface made this iteration. Firstly, the link inspector now checks for invalid titles like "Foo{}bar" (33094), and long titles in the suggestions box are replaced with ellipses in the middle rather than the end so they can be distinguished (39591). The save dialog's length down-counter has been labelled to indicate it counts the number of bytes rather than characters, as that is what the database holds (40035); longer-term, we may wish to find a better way to show this to users. Finally, we fixed a bug where the table of contents was restored wrongly if a user edited and then cancelled without saving (39753).

A complete list of individual code commits is available in the 1.20/wmf12 changelog, and all Bugzilla bugs closed in this period on Bugzilla's list.<section end="2012-09-17 (MW 1.20wmf12)"/>

2012-09-monthly
<section begin="2012-09-monthly"/>In September, the team continued its focus on re-engineering the code design of VisualEditor so that it is more modular and easier to extend. This involves creating and documenting a number of formal APIs at each point in the architecture, that means a developer does not have to understand the entire code base to be able to add new features. The early version of the VisualEditor on mediawiki.org was updated twice (wmf11 and wmf12), fixing a number of bugs and building out better support for internationalisation and key concepts like categories, language links and other "magic words".<section end="2012-09-monthly"/>

2012-10-01 (MW 1.21wmf1)
<section begin="2012-10-01 (MW 1.21wmf1)"/>The VisualEditor was updated as part of the wider MediaWiki 1.21wmf1 branch deployment on Monday 1 October.

The team have spent most of the two weeks since 1.20wmf12 working on re-designing how the code integrates together, providing clean interfaces between them so new developers can re-use and extend VisualEditor to support new 'node types' like categories or tables when we work on these later.

Beyond this API work, we added a few updates. Firstly, you can now set the 'annotation' where the caret is, without a selection &mdash; i.e., you can click somewhere, type Ctrl+B (or press the 'Bold' icon) and start typing with the text appearing bold (33140). We also now switch around the order of the undo and redo buttons for right-to-left languages (38548). Finally, we fixed a bug where applying a link to some text would remove any other 'annotations' (such as bold or italics) already set on it (40337).

A complete list of individual code commits is available in the 1.21/wmf1 changelog, and all Bugzilla bugs closed in this period on Bugzilla's list.<section end="2012-10-01 (MW 1.21wmf1)"/>

2012-10-15 (MW 1.21wmf2)
<section begin="2012-10-15 (MW 1.21wmf2)"/>The VisualEditor was updated as part of the wider MediaWiki 1.21wmf2 branch deployment on Monday 15 October.

In the two weeks since 1.21wmf1, the team have again spent most of their time working on re-designing how the code integrates together, providing clean interfaces between them so new developers can re-use and extend VisualEditor to support new 'node types' like categories or tables when we work on these later.

Beyond the API work, we have entirely re-written the selection system (33058, 34095, 37814, 37833, 37834, 38000, 39465, and 39965), part of which included us adding IME support back in to the VisualEditor (33076). We also fixed some bugs including selections not being restored correctly on undo/redo (40538), backspace not always deleting the right character (40416), pre-annotations (40677), and fixing a JavaScript error when using Internet Explorer 10 (37851).

A complete list of individual code commits is available in the 1.21/wmf2 changelog, and all Bugzilla bugs closed in this period on Bugzilla's list.<section end="2012-10-15 (MW 1.21wmf2)"/>

2012-10-monthly
<section begin="2012-10-monthly"/>In October, the team worked to finish most of the re-engineering the code design of VisualEditor so that it is more modular and easier to extend. This has involved creating and documenting a number of formal APIs at each point in the architecture, so a developer does not have to understand the entire code base to be able to add new features. The early version of the VisualEditor on mediawiki.org was updated three times (wmf1, wmf2 and wmf3), fixing a number of bugs and replacing the entire browser selection and typing models, and much of how the user interface connects with the rest of the code.<section end="2012-10-monthly"/>

2012-10-29 (MW 1.21wmf3)
<section begin="2012-10-29 (MW 1.21wmf3)"/>The VisualEditor was updated as part of the wider MediaWiki 1.21wmf3 branch deployment on Monday 29 October.

In the two weeks since 1.21wmf2, the team have continued to devote most of their time working on re-designing how the code integrates together and providing clean interfaces between them so new developers can re-use and extend VisualEditor in the future.

Beyond the API work, we have worked to fix a number of serious bugs in the new code from the last release such as not being able to enter text in blank paragraphs in Firefox 41120, as well as copy-and-paste (41055) and cutting (41092) both breaking, a JavaScript error being caused when editing a blank page (37843), and not being able to change the formatting on two lists at once (41434).

A complete list of individual code commits is available in the 1.21/wmf3 changelog, and all Bugzilla bugs closed in this period on Bugzilla's list.<section end="2012-10-29 (MW 1.21wmf3)"/>

2012-11-12 (MW 1.21wmf4)
<section begin="2012-11-12 (MW 1.21wmf4)"/>The VisualEditor was updated as part of the wider MediaWiki 1.21wmf4 branch deployment on Monday 12 November.

In two weeks since 1.21wmf3, the team have spent their time mostly working on finalising the code in preparation for its deployment in December as a test for users. One of the major changes to the integration code is how the VisualEditor can be used; it now can work on other pages than just those in the VisualEditor: namespace. (This is configurable on a per-wiki basis, rather than defined in the code itself.) Amongst other things, this now means that editing the wikitext of VisualEditor: namespace pages can be done by anyone, and is no longer restricted to just sysops (as will be needed for the December deployment). The related bugs surrounding permission checks, filter checks, conflicts, etc. remain, and will be fixed in the next release.

Part of the preparations involved entirely re-writing the user interface code including the way in which commands operate (40896). Another aspect was the addition of "Change Markers" to the data sent to the Parsoid system to reduce any accidental changes that should not happen when users save. Finally, a bug with how the "save page" button worked on old revisions was fixed (41865).

A complete list of individual code commits is available in the 1.21/wmf4 changelog, and all Bugzilla bugs closed in this period on Bugzilla's list.<section end="2012-11-12 (MW 1.21wmf4)"/>

2012-11-26 (MW 1.21wmf5)
<section begin="2012-11-26 (MW 1.21wmf5)"/>The VisualEditor was updated as part of the wider MediaWiki 1.21wmf5 branch deployment on Monday 26 November.

In two weeks since 1.21wmf4, the team have spent their time mostly working on finalising the code and preparing for its deployment in December as a test for users.

A lot of work went into the 'Data Model' component that converts between the information that Parsoid gives us and a structure that the code can edit. This now supports HTML entities (so "&amp;ocirc;", "&amp;#xf4;", and "ô" do not get switched when users don't expect it - 42118), HTML comments (so they don't get accidentally removed - 42124; viewing and editing them is not yet supported), better handling for content that we don't yet recognise (42119), fixing a bug with our integration with Parsoid (42121), and supporting in production the "Change Markers" code that was worked on last iteration (41947).

In the integration work, we removed the "Feedback" link as this would not work well with the code being deployed to multiple wikis (41722) and unfortunately had to add Internet Explorer temporarily to the "blacklist" of browsers that the VisualEditor will not support for December, due to a number of critical issues that the team does not have time to fix (42335) - post-December, the team will work to find a way around the various bugs and inconsistencies in Internet Explorer.

We fixed bugs on handling "alien nodes" (items of content that we don't have a specific handler for yet, like templates), such as the floated alien-covering "phantoms" for selection purposes appearing wrongly in Firefox (42177) and them not appearing at all for items that floated due to a class in Chrome 42134). There was also some nasty bugs that we fixed, including when editing around inline (mid-paragraph) alien nodes (42212) and the data model and the display getting out of sync sometimes when cutting-and-pasting (42219).

Finally, a great deal of work was done to overhaul the link inspector's code and quash a large number of minor bugs with it, such as wrongly replacing links's spaces with underscores (42140).

A complete list of individual code commits is available in the 1.21/wmf5 changelog, and all Bugzilla bugs closed in this period on Bugzilla's list.<section end="2012-11-26 (MW 1.21wmf5)"/>

2012-11-monthly
<section begin="2012-11-monthly"/>In November, the team worked primarily on finalizing the code re-engineering of VisualEditor so that it is more modular and easier to extend, and on the integration ahead of deploying it for wider testing in December. The early version of the VisualEditor on mediawiki.org was updated twice (1.21-wmf4 and -wmf5), fixing a number of bugs and missing wikitext compatibility, and wide-spread improvements to much of the user interface code so that it will be easier to change in future.<section end="2012-11-monthly"/>

2012-12-10 (MW 1.21wmf6)
<section begin="2012-12-10 (MW 1.21wmf6)"/>The VisualEditor was updated as part of the wider MediaWiki 1.21wmf6 branch deployment on Monday 10 December.

In the two weeks since 1.21wmf5, the team have spent their time finalising the code and preparing for its test deployment tomorrow for editors to use and give us feedback.

A lot of changes were made to how the VisualEditor integrates with MediaWiki. These included having a separate VisualEditor tab rather than replacing the existing edit tab (42221 and 41159), integrating into the existing edit controls so that protection, global blocks, AbuseFilter etc. work (37844, 38268 and 42142) and the user is sent somewhere when there's an edit conflict (37828), adding a 'cancel' button from editing mode back into read mode (37845), fixing watch and minor edit functions in the save dialog so they work as expected (38034, 40774, 42136, 42137, and 42764), custom save buttons for old revisions and new pages (41865 and 42750), adding page notices into the workflow so it's clear when you're editing a page with some form of protection, or which has special issues (42220), and tagging all edits made with the VisualEditor so that they can be identified (42172).

The user interface inside the editor, and in particular the link inspector, had a number of changes, including preventing undetectable links over whitespace (42839), avoiding two highlights for the same suggestion (42665), highlighting suggestions on mouse hover (39977), instant response from the link suggestions box (42341), allowing link "pre-annotations" when nothing is selected (33141), buttons not responding to clicks when disabled (40976), and a bug when switching between links (42552).

We fixed a number of bugs and minor annoyances with the core editing surface module, including deleting failing on blank lines (42657 and 42655), on documents that had been blanked (41071), around 'alienated' content (42350), in Firefox with empty paragraphs (41223) and select-all replacements (42404), selection getting removed every few moments (42801) and breaking going backwards (42401), with errors being wrongly-thrown (39255, 41501, and 41504).

Finally, a series of changes were made to the 'Data Model' component that converts between the information that Parsoid gives us and a structure that the code can edit. These include allowing paragraphs inside spans (and other invalid HTML sequences - 42487), fixing the way that unlisting buttons work (41929), correcting the data model when "unbalanced" content is copied (42806) or when you delete alienated content (42707), the leading newline of  elements (42469), and annotating inline aliens (like HTML entities - 42340).

A complete list of individual code commits is available in the 1.21/wmf6 changelog, and all Bugzilla bugs closed in this period on Bugzilla's list.<section end="2012-12-10 (MW 1.21wmf6)"/>

2012-12-monthly
<section begin="2012-12-monthly"/>In December, the team deployed to the English Wikipedia an alpha version of the VisualEditor for editors to use and give feedback on issues and priorities. The team's work focussed on ensuring that the integration was reliable, and providing a dedicated tool for editors to report problems with editing, and, after deployment, addressing the reports and ideas from editors. The early version of the VisualEditor on mediawiki.org was also updated to use the new developments (as part of 1.21-wmf6).<section end="2012-12-monthly"/>

2013-01-02 (MW 1.21wmf7)
<section begin="2013-01-02 (MW 1.21wmf7)"/>The VisualEditor was updated as part of the wider MediaWiki 1.21wmf7 branch deployment on Wednesday 2 January.

In the three-and-a-half weeks since 1.21wmf7, the team have mostly been on leave, and otherwise making some progress on cleaning up the codebase and fixing a number of bugs and issues highlighted by the community since the code was deployed more widely in December.

These bugs included no longer marking all edits as minor and adding the page to the user's watchlist regardless of setting (43040); ensuring that "phantoms" appearing correctly over the top of complicated template contents (43098); not showing that there is an edit notice when it is present but displays nothing to the user, as used on the English Wikipedia (43013); making sure that media items are loaded in a protocol-insensitive manner (43015); fixing the wikitext-corruption system to work for pages with '/'s in them (42988); and avoiding the undo/redo functions causing an error if used first before anything else is done (43033).

A complete list of individual code commits is available in the 1.21/wmf7 changelog, and all Bugzilla bugs closed in this period on Bugzilla's list.<section end="2013-01-02 (MW 1.21wmf7)"/>

2013-01-16 (MW 1.21wmf8)
<section begin="2013-01-16 (MW 1.21wmf8)"/>The VisualEditor was updated as part of the wider MediaWiki 1.21wmf8 branch deployment on Wednesday 16 January.

In the two weeks since 1.21wmf7, the team have started the planning for the next segment of work in line with the strategic goals for the VisualEditor set out in the 2012/13 plan. A small number of changes have made it into the codebase for this release, mostly focussed on fixing bugs reported by the community and preparing for future developments.

Firstly, there was a large refactoring of the link inspector code so that it is now easier to extend, which amongst other things means that it will now not over-write other formatting on text like bold or italics (43841) and links now have a target exposed, so editors can where the link goes in their browser without needing to edit the link (37904). The way that the code is integrated now does not take over edit section links, which had been mistakenly left switched on (43036). There were some changes to how "alien" nodes were assigned, fixing a few irregularities in how they worked (42398, 43056, and 43076).

A complete list of individual code commits is available in the 1.21/wmf8 changelog, and all Bugzilla bugs closed in this period on Bugzilla's list.<section end="2013-01-16 (MW 1.21wmf8)"/>

2013-01-monthly
<section begin="2013-01-monthly"/>In January, the team worked primarily on reviewing and cleaning-up the code deployed in December. They spent time with their colleagues in the Parsoid team planning the next phase of development, which is aimed at making the VisualEditor the default editor for all Wikipedias from July 2013. The alpha version of the VisualEditor on mediawiki.org and the English Wikipedia was updated twice (1.21-wmf7 and -wmf8), fixing a number of bugs reported by the community and making some adjustments to the link inspector's functionality based on feedback.<section end="2013-01-monthly"/>

2013-02-04 (MW 1.21wmf9)
<section begin="2013-02-04 (MW 1.21wmf9)"/>The VisualEditor was updated as part of the wider MediaWiki 1.21wmf9 branch deployment on Monday 4 February.

In the two-and-a-half weeks since 1.21wmf8, the team have continued planning for the next tranche of work, and working on the core changes that will be needed in preparation for this. For the end of 2012/13, in line with the strategic goals for the VisualEditor set out in the 2012/13 plan, we are looking to provide VE as the 'default' editor for all users, capable of letting them edit the majority of content without needing to use the wikitext editor. This means adding support for at least basic templates, references, categories and images, each of which is a very large piece of work.

The initial focus has included a major expansion in the capabilities of the 'document model' module that converts between the HTML+RDFa rendered by Parsoid and an editable document. Other areas of work have covered editability of images in the "ContentEditable" editing surface, refactoring the keyboard short-cut command triggering system, and improving the documentation system used so that the code is easier to extend.

A small number of changes have made it into the codebase for this release, most notably adding support for Microsoft Internet Explorer v. 9 and above (42847), adding hints of what keyboard short-cuts are available to each button (42919), which can now vary more easily by platform (44012), and internationalisation support for toolbar icons (38551).

A complete list of individual code commits is available in the 1.21/wmf9 changelog, and all Bugzilla bugs closed in this period on Bugzilla's list.<section end="2013-02-04 (MW 1.21wmf9)"/>

2013-02-18 (MW 1.21wmf10)
<section begin="2013-02-18 (MW 1.21wmf10)"/>The VisualEditor was updated as part of the wider MediaWiki 1.21wmf10 branch deployment on Monday 18 February. During this time, the team has expanded with the recruitment of [//lists.wikimedia.org/pipermail/wikitech-l/2013-February/066421.html Ed Sanders] who will focus on the data infrastructure of the VisualEditor platform.

In the two weeks since 1.21wmf9, the team have worked on the infrastructure needed to support the new features being added for wider launch of the VisualEditor as the default way users will edit wikis. This infrastructure work has included further expansion in the capabilities of the 'document model' module that converts between the HTML+RDFa rendered by Parsoid and an editable document, such as adding the ability in the system to edit "meta-data" like categories (45029); note that the user-facing editing component for this is yet to come. Other work has included supporting Microsoft Internet Explorer, adding new user interface widgets for a consistent UI, and reviewing and expanding the design of the user experience for inspectors and editors to cover template and reference editing.

Alongside this work, the team have fixed a number of bugs. These include integration improvements so that the toolbar doesn't appear multiple times if a user clicks back and forth (44838), errors thrown when users click at the end of a document (41199) or when using the link inspector in the stand-alone VE environment (44686), and making sure that inserted links get the link applied correctly (44086).

A complete list of individual code commits is available in the 1.21/wmf10 changelog, and all Bugzilla bugs closed in this period on Bugzilla's list.<section end="2013-02-18 (MW 1.21wmf10)"/>

2013-02-monthly
<section begin="2013-02-monthly"/>In February, the team worked on improving the design, user interface components and API infrastructure of VisualEditor, preparing for the new features that will be added in the coming months. The objective is for VisualEditor to be the default editor for all users, capable of letting them edit the majority of content without needing to use the wikitext editor, in July 2013. This will mean adding support for references, (at least) basic templates, categories and images, each of which is a very large piece of work. During this time, the team has expanded with the recruitment of [//lists.wikimedia.org/pipermail/wikitech-l/2013-February/066421.html Ed Sanders], who will focus on the data infrastructure of VisualEditor's platform. The alpha version of VisualEditor on mediawiki.org and the English Wikipedia was updated twice (1.21-wmf9 and -wmf10), adding support for Microsoft Internet Explorer (version 9 and above), fixing a number of bugs reported by the community, improving internationalisation, and restructuring the data model layer so that the code interfaces are ready for the new features.<section end="2013-02-monthly"/>

2013-03-04 (MW 1.21wmf11)
<section begin="2013-03-04 (MW 1.21wmf11)" />VisualEditor was updated as part of the wider MediaWiki 1.21wmf11 branch deployment on Monday 4 March.

In the two weeks since 1.21wmf10, the team have worked on the new features being added for wider launch of VisualEditor as the default way users will edit wikis. Part of this work has been some of the last infrastructure changes expanding the capabilities of the 'document model' module, including landing the last of the major re-write there (45062). This has also covered letting the converter work with full HTML documents rather than just fragments and be more robust, significant fixes to bugs around list items being merged and un-merged wrongly, better support for 'meta' nodes, fixed handling of text that in normal MediaWiki would be auto-linked (37940), and better documentation (45264 amongst others). The user interface through a major refactor and refresh now has access to a much more consistent set of 'widgets' for the main interface and for items like the link inspector as well as the to-come category, template and references dialogs which are being designed.

The 'content editable' module has improved keyboard support, fixed the ability to add new items in a list (due to an unfortunate typo) and add new lines in pre-formatted blocks using Shift-Enter (45344), added some changes to improve issues with selection of content in the browser (especially "backwards" selection), will now hide the 'phantom' overlays for non-editable content blocks if the mouse leaves the page (43461). Additionally, the dependency on a key library called 'rangy' was refactored, and the broken copy-and-paste support between VisualEditor instances was removed, in anticipation of better copy-and-paste to work with non-VisualEditor surfaces as well.

A complete list of individual code commits is available in the 1.21/wmf11 changelog, and all Bugzilla bugs closed in this period on Bugzilla's list.<section end="2013-03-04 (MW 1.21wmf11)"/>

2013-03-18 (MW 1.21wmf12)
<section begin="2013-03-18 (MW 1.21wmf12)" />VisualEditor was updated as part of the wider MediaWiki 1.21wmf12 branch deployment on Monday 18 March. In the two weeks since 1.21wmf11, the team have worked on building infrastructure for the new features that we are adding for VisualEditor's wider launch as the default way users will edit wikis.

In the way that the code integrates with MediaWiki, the save button now will be disabled if a user makes changes and then undoes all of them (42939). When an error happens with the Parsoid server, those errors are split out so that the user can report what broke in a way that we can trouble-shoot their issue (44354). When the Parsoid server is not responding, the code supplies a better error message for users (45916).

When selections are auto-expanded to the current context (when a user double-clicks on a word), we now better cover the concept of a 'word boundary', working towards Unicode's definition (44085). Lists now don't get corrupted for Parsoid when "unlist"ing their contents, removing their 'generated' property (45590).

Leaving the link inspector no longer clears a link accidentally (46025). The document model layer now presents categories (and other kinds of meta-content, like language links) for editing to other parts of the code base ahead of supporting user editing of categories in VisualEditor (39597), which is one of the four major features planned before wider launch.

A complete list of individual code commits is available in the 1.21/wmf12 changelog, and all Bugzilla bugs closed in this period on Bugzilla's list.<section end="2013-03-18 (MW 1.21wmf12)"/>

2013-03-monthly
<section begin="2013-03-monthly"/>In March, the team worked on the major new features that will be added in the coming months. The objective is for VisualEditor to be the default editor for all users, capable of letting them edit the majority of content without needing to use the wikitext editor, in July 2013. This will mean adding support for references, (at least) basic templates, categories and images, each of which is a very large piece of work. This month the primary focus was editing of categories and templates, with draft designs created and initial code developed. The team undertook its first ever "Quarterly Review", whose slides detail these designs, the work done to date and expectations for the near future. The alpha version of VisualEditor on mediawiki.org and the English Wikipedia was updated twice (1.21-wmf11 and -wmf12), adding better input and selection support, fixing a number of bugs, and restructuring the back-end so that the new features will be simpler to create.<section end="2013-03-monthly"/>

2013-04-01 (MW 1.22wmf1)
<section begin="2013-04-01 (MW 1.22wmf1)"/>VisualEditor was updated as part of the wider MediaWiki 1.22wmf1 branch deployment on Monday 1 April. In the two weeks since 1.21wmf12, the team have worked on building infrastructure for the new features that we are adding for VisualEditor's wider launch as the default way users will edit wikis. This has been primarily in three areas - the data model, the user interface widgets, and the user interaction content-editable "surface". Work on the dialogs to edit categories, templates and media items continues.

The team also undertook its first ever "Quarterly Review", whose slides and minutes detail these designs, the work done to date and expectations for the near future.

A complete list of individual code commits is available in the 1.22/wmf1 changelog, and all Bugzilla bugs closed in this period on Bugzilla's list.<section end="2013-04-01 (MW 1.22wmf1)"/>

2013-04-15 (MW 1.22wmf2)
<section begin="2013-04-15 (MW 1.22wmf2)"/>VisualEditor was updated as part of the wider MediaWiki 1.22wmf2 branch deployment on Monday 15 April. In the two weeks since 1.22wmf1, the team have worked on the new features for VisualEditor's wider launch as the default way users will edit our wikis - more details in.

The most significant chunks of work in this period were: "the great annotation refactor of 2013" to more reliably let us extend our data model (46464 and others), back-end work for letting users alter a template's parameters and see the page update before it is saved, and adding initial support for the media item (37870) and category editing dialogs. We made a number of fixes for Internet Explorer to do with selection of and around media items ahead of wider work in this area, better support for complex Unicode when moving or selecting through the document with the keyboard (46794), and changing the integration to avoid over-riding the edit tab's label for wikis that have changed it (42117).

A complete list of individual code commits is available in the 1.22/wmf2 changelog, and all Bugzilla bugs closed in this period on [//bugzilla.wikimedia.org/buglist.cgi?query_format=advanced&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&target_milestone=VE-deploy-2013-04-15&product=VisualEditor&list_id=194766 Bugzilla's list].<section end="2013-04-15 (MW 1.22wmf2)"/>

2013-04-29 (MW 1.22wmf3)
<section begin="2013-04-29 (MW 1.22wmf3)" />VisualEditor was updated as part of the wider MediaWiki 1.22wmf3 branch deployment on Monday 29 April. In the two weeks since 1.22wmf2, the team have worked on deploying the VisualEditor opt-in alpha to more wikis, and on the new features for VisualEditor's wider launch as the default way users will edit our wikis: Categories, Templates, References and Images.

Fixed a number of bugs and regressions, including the 'bold' button not allowing you to un-bold some text (47680), fixing the link inspector throwing out "undefined" in some cases and other issues (47413), cleaning up the deployment including making the feedback link language-variable and having VE allow users preferences on non-deployed wikis (42936), avoiding a Firefox bug where shift-right caused characters to be deleted (47711), fixing a failure to let users convert between paragraphs and headings when next to an inline node (41203), and changing the integration so that the VisualEditor is now the editor behind the "Edit" tab (47396).

Additionally, we adjusted our code that faces Parsoid to adapt to changes there and not fail when editing non-current pages (47434), fixed a problem of blank paragraphs getting inserted in some cases (46800), worked around a bug in jQuery that meant that references and other tags were getting corrupted (47417 and later 47737), avoided leaving trailing paragraphs when inserting content at the start or end of a paragraph (46799), made some speed improvements in the editing surface and the back-end (47343), and informed the user when a failure happens on serialisation (47581).

In experimental code that is not live on the Wikimedia servers yet, on images (37870) we added initial support for displaying and editing inline and thumbnail images, resizing of images, selection of images and other generated content with cursor keys (38129), and drag-and-drop relocation of images and other nodes. For references (39599) we added some infrastructure support for references. For templates (39598) we ensured that templates re-serialise to their original HTML if unchanged (47394).

A complete list of individual code commits is available in the 1.22/wmf3 changelog, and all Bugzilla bugs closed in this period on [//bugzilla.wikimedia.org/buglist.cgi?query_format=advanced&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&target_milestone=VE-deploy-2013-04-29&product=VisualEditor&list_id=194766 Bugzilla's list].<section end="2013-04-29 (MW 1.22wmf3)"/>

2013-04-monthly
<section begin="2013-04-monthly"/>In April, the team continued their work on the major new features that will be added in the coming months. Our objective is for VisualEditor to be the default editor for all Wikipedia users, capable of letting them edit the majority of content without needing to use the wikitext editor, in July 2013. This means we have been focussed on four substantial areas of work: adding support for references, templates, categories and media items. During this time the main area of our work was editing around images, which is now designed and partially implemented in our experimental code, and around categories, which is almost complete and nearly ready for deployment. The deployed alpha version of VisualEditor was updated thrice (1.22-wmf1, 1.22-wmf2 and 1.22-wmf3), adding speed improvements, user interface improvements and work on the back-end to better support the new features, and fixing a number of bugs. We also were able to [//blog.wikimedia.org/2013/04/25/visualeditor-alpha-in-15-languages/ deploy the VisualEditor to fourteen more Wikipedias as an opt-in alpha] (and, later, Vietnamese Wikipedia too), which has let the community give us feedback on what works and is broken, and identifying language- and locale-specific issues we are now fixing.<section end="2013-04-monthly"/>

2013-05-13 (MW 1.22wmf4)
<section begin="2013-05-13 (MW 1.22wmf5)" />VisualEditor was updated as part of the wider MediaWiki 1.22wmf4 branch deployment on Monday 13 May. In the two weeks since 1.22wmf3, the team have worked on the new features for VisualEditor's beta launch as the default way users will edit our wikis: Categories, Templates, References and Images.

The VisualEditor now lets users edit the contents of  blocks (47907) as if they were normal mark-up - though not the blocks themselves, such as setting arbitrary CSS, which will come later. Work on enabling the editing of categories is almost finished with the addition of a way of setting in the interface (46465), and support for moving, altering and inserting new images and references is also improving rapidly. Progress on template editing is at an earlier stage, with core back-end support mostly finished at this point.

We made quite a few changes to the MediaWiki integration layer. Most obviously, we now use SVGs rather than PNGs for the graphical elements of the interface, so it scales nicely for users who zoom in (48148). The "Edit source" tab now appropriate becomes active when it is being used (47452), appears on all pages, not just view (47776), and the "Edit" (VE) tab now points to the newly-updated page once you've made an edit (47420). The Vector drop-down menu's change behaviour no longer hides it behind the VisualEditor toolbar (48078)

We improved some issues with the Opera browser (47772) and now warn logged-out users appropriately about the consequences of their editing (47842). Pre-save diffs now give a more reasonable message when there are no changes to be made (43754), and now work when the diff is aborted and restarted (44446). Pages that are not wikitext content (such as user CSS or JS items) will now not trigger VisualEditor (47456). We added a new access key for accessing VisualEditor - Ctrl/Ctrl - restoring the regular edit access key to the wikitext editor (48107).

We also made a number of fixes for RTL environments. First, the link inspector now works for RTL environments, but allows LTR content for Web links (47717). For multi-script variant wikis, content displayed with one variant whilst the user's interface is in a second now works correctly (33175). Un-editable blocks ("aliens") now appear in RTL environments correctly (47746). Finally, the "Edit" (VE) tab now appears down-tab rather than up-tab of the "Edit Source" tab (48017).

On the integration with Parsoid, we cleaned up a number of items of code including removing change markers (45061), and fixed some problems with trailing whitespace on paragraphs and table cells being dropped (47712). Content with different names for the same annotation now serialises to the same wikitext (48110), and serialisation of data with DOM elements is now fixed (47948).

Finally, we fixed a number of other bugs, including ugly issues with pawn characters being created in list and paragraph editing (48287, 48286, 47817, and 48346), with indenting and outdenting of multiple list items (48390), and with splitting list items (48386). Categories that appear in sub-sub-pages don't get corrupted when the page is being edited (48408), and in Firefox, we fixed editing a page causing the entire editor to go blank (47834) and non-character keys being interpreted as real ones (48022). Trying to set a link covering the first character of the document no longer causes VisualEditor to crash (47623), and links now don't wrongly appear to extend when you type after them (48171 and 48114).

A complete list of individual code commits is available in the 1.22/wmf4 changelog, and all Bugzilla bugs closed in this period on [//bugzilla.wikimedia.org/buglist.cgi?query_format=advanced&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&target_milestone=VE-deploy-2013-05-13&product=VisualEditor&list_id=201511 Bugzilla's list].<section end="2013-05-13 (MW 1.22wmf4)" />

2013-05-27 (MW 1.22wmf5)
<section begin="2013-05-27 (MW 1.22wmf5)" />VisualEditor was updated as part of the wider MediaWiki 1.22wmf5 branch deployment on Monday 27 May. In the two weeks since 1.22wmf4, the team attended the Wikimania Hackathon in Amsterdam, working with the community to improve VisualEditor and help them, and, ahead of VisualEditor's launch as the default way users will edit our wikis in beta, worked on the new features: Categories, Templates, References and Images.

In terms of improvements to the integration with MediaWiki, we have a number of changes. When the diff result is null because we think you've made no changes, we say so rather than give a confusing blank diff table (43754); wikitext edit conflict handling is now integrated into the save dialog rather than punting you out of VisualEditor (42522); minor edit checkboxes get pre-set (48347), and you get a warning about not having set an edit summary (47752), based on your preferences; when editing old revisions, you are now warned about this (47683); we now show "Editing …" in the browser title when in VisualEditor, like for the wikitext editor, so that it's clear which of your tabs is editing (48272).

We give a better error message if Parsoid is unavailable during diffs (47581). If the edit token we're using is detected as invalid, we ask for a new one (42984). The edit summary field correctly counts the number of characters entered when using non-ASCII characters (47718). The <visualeditor-feedback-link> message is now shown in the content language, rather than the user language (47730). We now won't load for pages which are redirects as they can't yet be edited (47329). We show "create source" rather than "edit source" for the wikitext editor tab for non-existent pages (47421). We don't disable the save dialog when editing a prior revision (48584). Pre-formatted text blocks now word-wrap rather than character-wrap (38043).

Auto-selection expansion now behaves at the ends of paragraphs as elsewhere (48487), and the link inspector now understands that the first characters of links being auto-capitalised based on wiki context doesn't make them different links (48476). The toolbar clears floated items to avoid mis-alignment (48734). VisualEditor should now work with non-BMP Unicode characters (48630). Finally, we fixed a couple of breaks in the link inspector button (48509 and 48549), in pasting text (48602 and 48603), and some problems when moving back to read mode whilst VisualEditor was loading (48520 and 47813).

A complete list of individual code commits is available in the 1.22/wmf5 changelog, and all Bugzilla bugs closed in this period on [//bugzilla.wikimedia.org/buglist.cgi?query_format=advanced&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&target_milestone=VE-deploy-2013-05-27&product=VisualEditor&list_id=204657 Bugzilla's list].<section end="2013-05-27 (MW 1.22wmf5)" />

2013-05-monthly
<section begin="2013-05-monthly" />In May, the VisualEditor team worked to complete the major new features we have prioritised over the past few months. Our objective is for VisualEditor to be the default editor for all Wikipedia users, capable of letting them edit the majority of content without needing to use the wikitext editor, in July 2013. We have focussed on four areas of new functionality: adding and editing inclusions of references, templates, categories and media items. Our main area of work over the past month has been on references and templates, and we now have implemented editing them in our experimental code; category editing is nearly complete and should be made available very soon. The deployed alpha version of VisualEditor was updated twice (1.22-wmf4 and 1.22-wmf5), adding a number of user interface improvements, including further work on the back-end to better support the new features, and fixing a number of bugs.<section end="2013-05-monthly" />

2013-06-06 (MW 1.22wmf6)
<section begin="2013-06-06 (MW 1.22wmf6)" />VisualEditor was updated as part of the wider MediaWiki 1.22wmf6 branch deployment on Thursday 6 June. In the ten days weeks since 1.22wmf5, the team worked on new features ahead of VisualEditor's launch as the default way users will edit our wikis in beta.

The most noticeable change for users is that it is now possible to set, edit and remove the categories that a page belongs to and its "default sort" key, as part of the new "page settings" dialog that can be opened from the button on the toolbar. For now, this dialog covers categories and a simple listing of language links, but will be expanded to cover other "meta-data" like a page having the table of contents disabled, and integration with Wikidata's language links system. Work also continued on the other three critical areas ahead of the release - Templates, References and Images - and we hope to release these in the next week or two.

The way that known browsers are supported changed slightly; browsers are now only blacklisted if we know that they cause significant problems, like Internet Explorer version 8 and below. If your browser is not known, you will get a notice alerting you to this issue (38128). We have added further support in our back-end for multi-character "grapheme clusters", which means that wikis that use extended ("non-BMP") Unicode characters can now work (48975). The left and right arrow keys now move in the correct direction in RTL environments (38546).

A complete list of individual code commits is available in the 1.22/wmf6 changelog, and all Bugzilla bugs closed in this period on [//bugzilla.wikimedia.org/buglist.cgi?query_format=advanced&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&target_milestone=VE-deploy-2013-06-06&product=VisualEditor&list_id=204657 Bugzilla's list].<section end="2013-06-06 (MW 1.22wmf6)" />

2013-06-13 (MW 1.22wmf7)
<section begin="2013-06-13 (MW 1.22wmf7)" /> VisualEditor was updated as part of the wider MediaWiki 1.22wmf7 branch deployment on Thursday 13 June. In the week since 1.22wmf6, the team worked on finishing the new features ahead of VisualEditor's launch as the default way users will edit our wikis in beta.

The most noticeable change for users is that you can now insert images and other media items from the local wiki and Commons - they default to right-floated thumbnailed images with no caption set. Images will also now appear "correctly", positioned in the normal places when editing. We will make it possible to set the caption, as well as convert images from thumbnails to inline or floating on the other side, in the coming week. We also changed the "Save page" workflow to no longer require users to view a wikitext diff before saving (bug 49258), and removed the 'alpha' notice, replacing it with a more subtle beta label (bug 48428). Work continued on ​inserting and editing Templates and References​, ​the other two critical areas ahead of the release ​, which we hope to​ ​​make available  in the next week or so.

We fixed some bugs relating to support for multi-byte Unicode characters used by some languages (bug 49246 and 48630) and some tweaks to the category setting interface released last week (bug 48555, bug 48555 and bug 48565). HTML comments and elements that have no contents like some s will now not be silently dropped when editing (bug 48605). You can now use the forwards and back buttons on your browser with VisualEditor as you would expect (bug 43844).

A complete list of individual code commits is available in the 1.22/wmf7 changelog, and all Bugzilla bugs closed in this period on [//bugzilla.wikimedia.org/buglist.cgi?query_format=advanced&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&target_milestone=VE-deploy-2013-06-13&product=VisualEditor&list_id=208323 Bugzilla's list].<section end="2013-06-13 (MW 1.22wmf7)" />

2013-06-20 (MW 1.22wmf8)
<section begin="2013-06-20 (MW 1.22wmf8)" />VisualEditor was updated as part of the wider MediaWiki 1.22wmf8 branch deployment on Thursday 20 June (though some code was available ahead of this). In the week since 1.22wmf7, the team worked on the last of the new features ahead of VisualEditor's launch as the default way users will edit our wikis in beta.

The most noticeable change for editors is that you can now add, edit and remove templates. Parameters are edited only as wikitext for now, but we hope to improve upon this in the next few weeks. The editor interface depends on the new TemplateData extension to give editors hints as to what fields are available. Lots more of the interface is coming, including adding parameters more easily, but it's now possible to add templates (and other kinds of transclusions, like parser functions) to an article, so we made it available. The team spent a good deal of time working on performance of the system, both on the local client and in its interactions with the server. It's now possible to edit block images' captions (thumbs and framed). We also added the ability to run an A/B test for new users, which should be coming soon for a random sampling of new accounts on the English Wikipedia. Section edit links now go to VisualEditor by default, with a user preference to always go to wikitext editor instead.

In terms of bugs and minor fixes, the team focussed on some issues that were highlighted to use by editors; we are very grateful to the reports we have recieved from users which have helped us pin-point the issues and their causes.

We removed attribute order preservation that is now unneeded and slows things down (bug 48980). We now use a more generic approach to filter out non-character key presses, which should be more stable (bug 48335). We fixed a race condition when pressing enter several times quickly (bug 43082). We cleaned up the category editing dialog and made the down-arrows render better (bug 49420). Newly-created images get a resource attribute added, so don't appear as "undefined" in the wikitext on saving (49596. Pasting doesn't disrupt the selection now (bug 49551). Closing a dialog with no changes now doesn't undo the last thing you did before opening it (bug 49630). We now ignore shortcut keys when inserting text, so they don't appear as pawns why typing (bugs 49732, 49760 and 49816). The toolbar now floats down to the end of the page, beyond the start of the last content block (bug 48662).

A complete list of individual code commits is available in the 1.22/wmf8 changelog, and all Bugzilla bugs closed in this period on [//bugzilla.wikimedia.org/buglist.cgi?query_format=advanced&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&target_milestone=VE-deploy-2013-06-20&product=VisualEditor&list_id=211865 Bugzilla's list].<section end="2013-06-13 (MW 1.22wmf8)" />

2013-06-27 (MW 1.22wmf9)
<section begin="2013-06-27 (MW 1.22wmf9)" />VisualEditor was updated as part of the wider MediaWiki 1.22wmf8 branch deployment on Thursday 27 June (though some code was available ahead of this). In the week since 1.22wmf8, the team worked on finishing the last touches to new features ahead of VisualEditor's launch as the default way users will edit our wikis in beta.

The most noticeable change for editors is that you can now add, edit and remove references and reference lists. This includes editing templates inside references, as commonly used (such as in the English Wikipedia's citation templates system). Some additional features to make this smoother and easier are forthcoming. Section edit links are now provided for both VisualEditor and wikitext section editing for all users. Unfortunately we discovered some major flaws in our support for Internet Explorer, and so have had to re-blacklist them as not working with VisualEditor. Heading levels are now re-labelled to discourage their misuse. We hope to fix these issues and let users of Internet Explorer 9 and 10 use VisualEditor in the coming weeks. We also made some changes to how images would display to make them look closer to their appearance in read mode, and you can now drag-and-drop them to move them around the page.

The team spent a lot of time fixing bugs that caused corruption or confusion when users edited with VisualEditor; thank you again to all those who used VisualEditor and gave us the reports we needed to locate and fix issues.

In the data model, the language support for extended Unicode was fixed to not let partial accents corrupt characters later in the document (bug 49233). If two bold tags appear next to each other, we will combine them rather than leave them hanging (bug 48194). Editing after reference lists is no longer locked for the first line (bug 50132). Captions for images that shouldn't display them now do not (bug 50113). Using the link inspector on its own, rather than on a selection, no longer inserts the link twice (bug 50140). Links can't now appear "inside" each other (bug 50208). References will not get marked as having been updated when they haven't, so they shouldn't get "fixed up" (bugs 50066 and 50059). Similarly, neither should templates (bug 50079). Comments inside other generated items (like references) no longer get mysteriously swallowed up (bug 48605), or when they're inside links or spans (bugs 50060 and 50071).

In the editor and its dialogs, if you've blanked the DEFAULTSORT, we now won't set one to be blank, but delete the request (bug 49724). We no longer block the function of "triple-clicking" to select a paragraph (bug 38011). The link editor (and other items) now work again in references when using Firefox (bug 50115). Template dialogs won't appear blank just because their invocation uses the wrong capitalisation (bug 49493), and if there are multiple names for a parameter we'll show you the main one, rather than its position (bug 49838). You can now select a floated thumbnail image or a template which is the first item on the page (bug 49421). When users add a transclusion block with no templates in it, or remove all the templates in one, we no longer leave a remant behind (bug 49831). Inspector menu buttons won't sometimes display as blank when inside a dialog when using Firefox (50073).

In the user interface and MediaWiki integration, the edit, edit source and section edit links no longer don't work with middle-click, ctrl-click or other modifiers (bug 49993). There were some minor tweaks to how the VisualEditor section editing works (bugs 49563 and 49620). The save dialog no longer has an inexplicable "back" button when you've loaded it once but then have gone back to the document before returning (bug 49481). Disabled toolbar buttons are back to being disabled for animations too (bug 33113). A lot of the floating items of the interface no longer interfere with the toolbar (bug 50096), and they slide down the page when it's loaded rather than stay in place (bug 49853). Once you've made changes in a dialog, leaving it no longer scrolls you to the top of the document (bug 49977). It is no longer possible to obscure the save dialog with the "phantom" selection when you hover over an image (bugs 49275 and 49361).

A complete list of individual code commits is available in the 1.22/wmf9 changelog, and all Bugzilla bugs closed in this period on [//bugzilla.wikimedia.org/buglist.cgi?query_format=advanced&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&target_milestone=VE-deploy-2013-06-27&product=VisualEditor&list_id=211868 Bugzilla's list].<section end="2013-06-27 (MW 1.22wmf9)" />

2013-06-monthly
<section begin="2013-06-monthly" />In June, the VisualEditor team completed the major new features that we prioritised over the past few months, in preparation for making VisualEditor available to most Wikipedia users in July. We have built an editor that is capable of letting users edit the majority of content without needing to use wikitext — text support, as well as adding and editing inclusions of references, templates, categories and media items. The deployed alpha of VisualEditor was updated four times as part of the transition to weekly deployments (1.22-wmf6, 1.22-wmf7, 1.22-wmf8 and 1.22-wmf9), with several mid-deployment releases as the code was developed to patch urgent issues. Part of this involved running an A/B test for new user accounts on the English Wikipedia, with half of the users getting opt-in to VisualEditor ahead of the wider release. Generally, there were a number of user interface improvements, and fixing a number of bugs uncovered by the community.<section end="2013-06-monthly" />

2013-07-11 (MW 1.22wmf10)
<section begin="2013-07-11 (MW 1.22wmf10)" />VisualEditor was updated as part of the wider MediaWiki 1.22wmf10 branch deployment on Thursday 11 July (though most of the code was made available ahead of this). In the two weeks since 1.22wmf9, the team deployed VisualEditor to the English Wikipedia, and prepared for wider deployments for other Wikipedias, primarily by fixing bugs brought to our attention, as well as performance improvements.

We made a number of changes related to how VisualEditor integrates with MediaWiki. Most notably, we reduced by 97% the amount of code that is loaded when a user visits a page before they entered VisualEditor (bug 50612, later moving the browser compatibility check there too in bugs 50608 and 50677). We had to blacklist Firefox versions under 15 due to a number of issues with those browsers (bugs 50534, 50720, and 50780). We now run an internal "sanity-check" to see if it's likely that editing a page with VisualEditor will break things, and if, so warns the user on saving and adds a tag for follow-up (bugs 47521 and 50067). We fixed a regression where the edit tab pointed to the old, not current version of the page after saving (bug 50441), and changed behaviour so it always gets the current page, not the version you loaded, to copy MediaWiki (49943). We now display both a VisualEditor and (on hover) a wikitext section edit link for each heading (bug 49666, which was briefly broken, fixed in bug 50731, fixed for RTL wikis in bug 50543, and pointed to the right version in diff views 50925).

A number of things which used to wrongly overlap each other now don't (bugs 49059, 50159, 50241, 50247, 50324, 50545, and 50652). We improved a little the message shown when an edit is blocked by an API hook like AbuseFilter or spam blacklist (bug 50350 - more on this to come), and if your edit needs a CAPTCHA to complete, like when adding an external link as an anonymous or new user, this is now displayed and can be used (bug 50356). We worked with sysops on the English Wikipedia to supress the edit notice warning when that wiki's local templated edit notice system showed up as a red link (bug 50077), and protected and semi-protected pages's protection notices now are added as edit notices to the page for users to spot (bug 50415). We corrected a regression that caused the accesskey to disappear from the edit source tab (bug 50725). We added a link to the user guide in the toolbar, alongside the feedback button (bug 50476). Dialogs no longer zoom off the page when you type into them (bug 50538). Tags now show in diffs as well as page histories, including the VisualEditor ones (bug 49602).

In the editing tools, most of the work focussed on the transclusion dialog. This now fetches TemplateData for newly-added templates (bug 49778), and doesn't show parameters as being available to add if they are already set, even if they have a space in their name (bug 50715) or are an alias for the extant parameter (50717). Template parameters with long descriptions don't cause the screen to extend, but are cropped (bug 50800). Changing a template makes it re-render even if it turns into a block (bug 49854), and if it has pipes in its wikilinks it no longer re-renders the template with broken links due to over-keen escaping (bug 50801). A number of tools were corrected to work better in RTL, including the link inspector (bug 49416) and tabbed dialogs link the transclusions dialog (bug 49613).

The link inspector now doesn't leave zombie windows around when you close it (bug 49941). Pressing return just before the link inspector opens now doesn't replace the content you selected with the return (bug 51075). Categories with a '.' in their name now can be added again (bug 50702), and ones with a ' ' after their name aren't thought to magically be a new one (bug 50697). Using the formatting drop-down no longer scrolls you to the top of the page (bug 50792), and doesn't hide your cursor either (bug 50338). Toolbar buttons are now enabled at the open of the page only if that makes sense (bug 50141). It is now possible to add new invocations of existing references (bug 49733). Pressing escape now closes the currently-open dialog (bug 49809). If you use the up-arrow to move the cursor under the toolbar, the window now scrolls so you can see it (bug 48787).

Using a list in a 'slug' – a blank line that isn't really there, but provided for your cursor to have somewhere to click between blocks – now works (bug 47947); making a heading in one no longer applies it to the wrong line in Firefox (bug 48464). Pressing return in the place before a heading doesn't move your cursor one character into the heading any more (bugs 48735 and 48847). Blue rectangles that used to sometimes appear oddly at the top-left of the screen now shouldn't (bug 49818). Floated templates now don't render oddly inside the editor (bug 49925). Undoing image resizing now does indeed undo the action (bug 50682). Keyboard-based selection is now more reliable in Firefox (bug 48289). Merging paragraphs now works even if there's something unrecognised at the end of the line (bug 48366).

We fixed a number of bugs that could occasionally corrupt pages, including one that moved categories around when the PERSONDATA template was re-parsed wrongly (bug 50120), fixing an issue that made transclusions get re-parsed each time (bugs 50129 and 50253), an issue where categories in templates would sometimes move outside of them when changed (bug 50332) stopping occasional  tags being added when the page contained malformed wikitext (49892). If a page has two or more references with the same name, VisualEditor will no longer clean this up by removing the unused content (50444). Adjacent HTML elements from VisualEditor now merge with ones from Parsoid (bug 49985), and HTML code like now doesn't get silently reduced to a single application of the element (bug 49755).

Finally, we split out the MediaWiki-specific items in our code so that we can manage the code more easily in the future, and third parties can more readily write plug-ins for VisualEditor (bug 45295). The Google Summer of Code work progressed well; the Math extension editor is now nearly available for initial deployment, and the ones for the SyntaxHighlight extension and for setting text language details both made strong progress.

A complete list of individual code commits is available in the 1.22/wmf10 changelog, and all Bugzilla bugs closed in this period on [//bugzilla.wikimedia.org/buglist.cgi?list_id=216315&query_format=advanced&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&target_milestone=VE-deploy-2013-07-04&target_milestone=VE-deploy-2013-07-11&product=VisualEditor Bugzilla's list].<section end="2013-07-11 (MW 1.22wmf10)">

2013-07-monthly
<section begin="2013-07-monthly" />In July, the VisualEditor team began switching the deployment from opt-in alpha to opt-out beta, so becoming the default editor for users of the various Wikipedias. The deployed version of the code was updated three times (1.22-wmf10, 1.22-wmf11 and 1.22-wmf12), with several mid-deployment releases as the code was developed to patch urgent issues. There were a number of user interface improvements, most notably to the references insertion dialog, alongside fixes to a number of bugs uncovered by the community.<section end="2013-07-monthly" />