I thought it was generally agreed upon that the path to fix the parser goes
something like this:
* Define a new wiki language that is compatible with bison/flex
* Write a converter between the old language and the new (when possible)
* Implement per-revision parsers
* Implement the new parser
* Begin the migration
On Mon, May 11, 2009 at 1:13 PM, Trevor Parscal <tparscal(a)wikimedia.org>wrote;wrote:
On 5/11/09 11:54 AM, Marco Schuster wrote:
On Mon, May 11, 2009 at 8:50 PM, Daniel
Schwen<lists(a)schwen.de> wrote:
> The simple (albeit ugly) solution would to add a parser version field to
> the
> revision table, drag the old parser along as 'legacy', make the new
parser
the
default (and only) option for all new edits, and spit out a warning
when
you are editing a legacy revision for the first time. The warning you be
made
dependent on the cases that break with the new parser.
Cases that break could be detected by comparing tidied HTML output from
both
parser versions.
Sounds cool, but it'd require a formalization of MW markup first
(something
that should have been done long ago).
What about correcting stuff from "old" behavior to new parser via
bots/update scripts, even for old revisions?
Marco
During the Berlin conference, a very popular and passionate topic of
conversation was the need for better testing of MediaWiki. However, if
we can't define what it's supposed to do, how can we test it. Last I
heard the parser has yet to pass all of the unit-tests written for it,
which aren't even very robust. so the concept of the parser's behavior
being it's own documentation is clearly conflicting with good software
development practices. This said, any changes to the parser cause a risk
of breaking old, or even current revisions of articles, which is I've
noticed to generally be seen as unacceptable. So - this topic is
probably a justifiably touchy one for those involved in working on this
software since there's no really elegant solution and lots of complaints.
Seems like there's been some general talk about this idea...
* Link a revision to a version of the parser
* Allow multiple parser versions to co-exist
* Provide an upgrade path for revisions to be brought into compatibility
with a more modern parser
Nothing about this sounds easy, but if we ever want to improve MW markup
or parser behavior we will need to do something. Is there any support /
criticism for this direction? I'm very curious what other potential
directions could be taken which could also result in:
* The parser's behavior being a reflection of a well-documented standard
* Ability to make changes to MW markup standards over time without
abandoning old revisions
- Trevor
_______________________________________________
Wikitech-l mailing list
Wikitech-l(a)lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l