User:Hardik95/GSoC 2014 Progress Report

Progress Report edit

May 2014 edit

Community Bonding Period edit

  1. Learnt how parsiod actually work and what are the stages involved in the whole parsing pipeline.
  2. Studied logger code and familiarized myself with its structure.
  3. Experimented with the logger and how to emit events using logger.
  4. Tried to find some places where I can place log events.

Week 1: Official Coding Period starts edit

  1. College Exams

Week 2: 26th May to 2nd June

  1. Created a new logger backend
  2. Added log events for few broken wiki text to the code
  3. Submitted a patch for the same https://gerrit.wikimedia.org/r/#/c/135620/
  4. Tested the log output and code by parsing few pages

Week 3: 3rd June to 9th June edit

  1. Submitted a patch for buffering log event - https://gerrit.wikimedia.org/r/#/c/138104/
  2. Researched on which database to choose for the backend (Selected MongoDB)
  3. Created an JSON API to publish and fetch log events.
  4. linked the new API with the linter backend and made the the linter publish log events as JSON.
  5. Code both API and UI is hosted here - https://github.com/hardikj/lintbridge
  6. Created a UI to navigate the collected data - http://parsoid.wmflabs.org:3000/_html/issues
  7. Collected the data on 50 pages using a python script.

Week 4: 9th June to 16th June edit

  1. Implemented a new --lint option ( Patch)
  2. Moved registerLoggingBackends function from ParsoidConfig to mediawiki.Utils (Patch)
  3. Fixed some minor fixups in linter (Patch)
  4. Setup new instance on wikimedia labs and learn about services like systemd, upstart
  5. Gave a new home to lint bridge : http://lintbridge.wmflabs.org
  6. Added some new features to lintbridge
    1. Made UI responsive using bootstrap
    2. Added Handlebars as a template engine
    3. Applied styling on all /_html/ routes
    4. All commits can be found at github

Week 5: 17th June to 23th June edit

  1. fixed a bug in --lint flag for parse.js (Patch)
  2. fixed few bugs in lintbridge
  3. Tested lintbridge on 1000 pages using a python script
  4. Added more features to lintbridge
    1. Added direct link to wiki edit page
    2. Added pagination on each routes
    3. added pages for exception handling

Week 6: 23th June to 30th june edit

  1. Added new features to lintbridge :
    1. Added next and prev button
    2. Added a Stats page
    3. some more minor bug fixes

Week 7: 30th June to 6th july edit

  1. Worked on two patches
    1. https://gerrit.wikimedia.org/r/#/c/142744/
    2. https://gerrit.wikimedia.org/r/#/c/142723/
  2. Researched a bit for what test suite to use for linter tests
    1. Decided to go with Mocha and Chai
  3. Learned mocha and Javascript Promises
  4. Added a basic test suite with mocha
    1. https://gerrit.wikimedia.org/r/#/c/143483/

Week 8: 6th july to 13th july edit

  1. Two new Patches
    1. https://gerrit.wikimedia.org/r/#/c/143911/
    2. https://gerrit.wikimedia.org/r/#/c/144068/
  2. Discussed next steps for the projects
  3. Posted to checkwiki and village pump about lintbridge