User:Mariapacana/OPW Progress Report

Week 1: December 10 to December 16

 * 1) Familiarized myself with developer tools like Bugzilla, Mediawiki Gadgets, Gerrit, etc.
 * 2) Submitted patch to streamline the setting of debugging flags.
 * 3) Researched different ways of dynamically debugging Node applications (e.g., node-debugger, node-inspector).
 * 4) Began working on disabling generic tracing (e.g., --trace without any tracing flags).

Week 2: December 17 to December 23

 * 1) Continued to work on disabling generic tracing.
 * 2) Learned about how the parser pipeline works and how different transformations relate to one another.

Week 3: December 24 to December 30

 * 1) Cleaned up some indentation errors and typos (patch 1, patch 2).
 * 2) Disabled generic tracing (e.g., --trace without any tracing flags; patch).
 * 3) Began working to create a generic error logging function in Util.js. (in-progress patch)

Week 4: December 31 to January 6

 * 1) Transferred logger function from Util module to its own class, on mentor's suggestion (patchset 4).
 * 2) Added wrapper functions such as trace and debug
 * 3) Visited User:Ssastry in Minnesota! Learned how...
 * 4) * Synchronous & synchronous token transform managers transform Wikitext to HTML
 * 5) * Parsoid evolved and how it relates to the original PHP parser
 * 6) * Parsoid tests work; how/why some tests are blacklisted

Week 5: January 7 to January 13

 * 1) Moved logging function from own class into MWParserEnvironment object ("env"), after getting feedback from the team (patchset 9).
 * 2) * The many-logger approach was considered overly complex; abandoned in favor of a single log function that dispatches to different backends.
 * 3) * Consequently, we put the logger into the env object, which is widely available throughout Parsoid codebase and has access to tracing / debugging flags.
 * 4) Removed wrapper functions (e.g., trace, debug) from logging, consolidating everything into a single all-purpose function.

Week 6: January 14 to January 20

 * 1) Rewrote logger function (patchset 12)
 * 2) Began rewriting error and warning messages to use logging function (patchsets).
 * 3) Wrote blog post about meeting my mentor in person.

Week 7: January 21 to January 27

 * 1) Continued to replace error and warning messages throughout the codebase. (patch 1, patch 2)
 * 2) After User:cscott made enhancements to the logging function so that it could accept arbitrarily many parameters, checked all function calls to make sure they still worked.

Week 8: January 27 to January 31

 * 1) Updated patch for replacing error / warning messages. (patch 6,patch 7, patch 8)
 * 2) * Based on team feedback, rewrote logger function to accommodate logging to different backends (e.g., files, HTTP response objects).
 * 3) * Again moved the logger function into its own Logger class, although it will still continue to be accessed from the MWParserEnvironment object.
 * 4) Began replacing tracing and dumping calls with logger function. (patch 1)
 * 5) Wrote blog post about the Parsoid team's consensus-based code review process.