Evaluating and Improving MediaWiki web API client libraries/Progress Reports

From mediawiki.org

Progress reports for Evaluating and Improving MediaWiki web API client libraries

Final report[edit]

I wrote a new standard for third-party MediaWiki web API client libraries, reviewed and evaluated the existing Perl, Python, Ruby, and Java client libraries, and filed bug reports and feature requests with the results. I also improved the documentation for the Java Wiki Bot Framework and am working on adding the ability to use the MediaWiki API's search module via JWBF. Additionally, I spoke at WikiConference USA 2014 on using the MediaWiki API and its client libraries, and gave an "APIs 101" talk at AdaCamp Portland that used MediaWiki's API as an example.

Output summary
Ongoing work
  • Finish writing search function for JWBF [1]
  • Revisit evaluations in Oct/Nov 2014

Week 12/August 4-8[edit]

  • Changes to README.md are merged
  • Started drafting supplemental documentation (developerDoc.md)
  • Figured out code organization, inheritance, utility classes, what extends what

Week 11/July 28-August 1[edit]

Week 10/July 21-25[edit]

Week 9/July 14-18[edit]

  • Finished evaluation/TODOs for MediaWiki::Bot
  • Submitted issues for MediaWiki::Bot to Github issue tracker
  • Emailed MW::Bot and MW::API maintainers
  • Started evaluating MediaWiki::Gateway
  • Paired with Nik to start evaluating JWBF's code (verdict: pretty solidly written Java)

Week 8/July 7-11[edit]

  • Finished evaluation/TODOs for MediaWiki::API
  • Started evaluating MediaWiki::Bot
  • Started learning Ruby/talking with Rubyists to evaluate MediaWiki::Gateway
  • Added TODOs for simplemediawiki, wikitools, and mwclient to the projects' issue trackers

Week 7/June 30-July 4[edit]

Week 6/June 23-27[edit]

  • Traveled to Portland to participate in and present at AdaCamp (Introduction to APIs, using the MediaWiki API as an example) and give the Thursday keynote address for Open Source Bridge.
  • Met with Sumana in person to discuss status and plans, arranged for daily check-ins and agreed to write more/smaller deliverables for the rest of the internship period

Week 5/June 16-20[edit]

Week 4/June 9-13[edit]

Week 3/June 2-6[edit]

Week 2/May 26-30[edit]

Week 1/May 19-23[edit]

Community bonding report[edit]

Minimum viable product and goals[edit]

  • Search for the existing API client libraries, add these to API:Client code.
  • Select the best library/libraries in Python, Perl, JavaScript, Ruby, and Java using preliminary criteria.
  • Research, select, and write up criteria to evaluate these libraries in more depth. Write a library "gold standard."
  • Post "gold standard" and useful resources found while writing it to Data & Developer Hub.
  • Evaluate the best libraries in three languages. To the library maintainers submit documentation of tests and results, praise for where they get things right, and bug reports for areas that can use improvement.

Communication plan[edit]

  • Check in daily with Sumana over IRC and/or vidchat
  • Communicate with other mentors over IRC and email with questions, to look over code, etc.

Lessons learned since 21 April[edit]