Monday, May 30, 2016

Week 6 & Week 7 (30th May - June 12th)

  • Wrote unit test for Wikipedia Article of the Day trigger and ran a client test against the trigger and it was working correctly returning the correct result set.
  • Wrote unit test for Wikipedia New Article trigger and ran a client test against the trigger and it was working correctly returning the correct result set.
  • Wrote unit test for Wikipedia Word of the Day trigger and ran a client test against the trigger and it was working correctly returning the correct result set.
  • Wrote unit test for Wikipedia Picture of the Day trigger and ran a client test against the trigger and it was working correctly returning the correct result set.
  • At this juncture, 4 tests are working correctly (passing) out of the 6 non-database driven tests I have to write. But 2 tests are still failing. Working on these two test and also fixing some few bugs and doing code clean up.
  • Wrote a Wikidata trigger with name "Item Revision" for which when a particular item in Wikidata is revised, for example(Q12345), the trigger fires and performs the respective actions.
  • Developed an RSS View for Item Revisions trigger and an XML template for it for rendering of the data using the browser. The commit can be seen here on my Github account: The commit can be seen here on my Github account: RSS View Commit.
  • Fixed bug that was causing the non-DB to fail and now all tests, including the test for my new Item Revision trigger is passing. Also, updated the read me file to contain news triggers that are being developed.
  • Synchronized my online and local development Github branches with the official GSoC development branch in the Wikimedia IFTTT repo and re-committed the whole work I have done, this is because of conflicts that originated when I made a PR to the official Wikimedia IFTTT code base which was different (setup) from that of Stephen that I was using before. The working PR without any conflicts can be seen here: Pull Request

Monday, May 23, 2016

Week 5 (23rd May - 30th May)

  • Integration of Travis-CI testing bot to my personal repository at the moment for development. This bot will be used for continuous testing and integration of the app. Once we (I and the mentors) decide on the general repository to use for development, I will just transfer the Travis settings to the repo.
  • Travis-CI is configured to do the following functions;
    • Post messages (build related messages) to the Wikidata feed channel on Freenode (#wikidata-feed) so as to notify others on how the development is going (just for monitoring purpose).
    • When the build fails or passes, an email is sent to me also for notification.
  • Here is a link to the Travis file on Github: Travis Settings on Github.
  • Created a GSoC development branch that will be used to push my codes to on the official Wikimedia IFTTT repo. This will enable mentors to review, comment and merge my codes when its ready to the master branch.

Sunday, May 15, 2016

Week 4 (16th May - 22nd May)



  • Finalizing the ranking process of the Wikidata triggers with the mentors.
  • Wrapping up with the study of the code base and citing some key important core parts of the code that will be related to my GSoC project.
  • Reading flask docs on client side testing since this will be highly necessary for my project. This will enable me to test the app just withing the application not involving the servers.
  • Preparing to select triggers that will be implemented based on the ranking done by I and the mentors, but at this point, some mentors have not ranked the triggers so once they are done, triggers will be selected.
  • More research on client/server side testing of python application. Used the Flask Docs here.
  • Published my Community bonding meeting (Hangout on Air call with my mentors) on social media and the links can be found below;
  • Google+ Link to Video. 
  • Twitter Link to Video. 
  • YouTube Link to video.
  • Wrapping up with Community bonding and finalizing all stuffs preparing to start coding tomorrow :)
  • Let the coding begin !!!!!
  • Friday, May 6, 2016

    Week 3 (8th May - 15th May)


    • Researched on how to set up Travis-CI bot with Github repositories and also specific to repositories with python projects (any version of python). Read on how to transfer Travis-CI bot setting from one repository to another.
    • Learned how to use Query module in the Wikidata API, using it in my local instance to run queries against the data (my_wiki). This enabled me to understand how the query module works. Under the query module, I learnt how to use;
      • list
      • meta
      • generator
      • prop
    • Researched on Unit testing and Integration testing in Python and most especially related to the IFTTT project. Unit testing will be based on the 8 triggers for Wikipedia IFTTT and the triggers I will develop for Wikidata. Also, in addition to the Unit tests, I shall also write integration tests for all the triggers in concern.
    • Practicing how to write unit tests in python using the "unittest" package and also reading how to run unit tests in python using "Nose". This will enable me to write unit tests for the IFTTT project.
    • Pushed a mini project on Github where I am using to practice my unit testing skills in python. The link to the repository can be found here: Math Functions & Unit Tests.
    • Had in total of 3 meetings with the mentor with each greater than 1 hours to discuss on how to go about writing the tests. Which properties of the triggers to be tested and other parameters to be tested in the triggers. At the end, we had put in place all the parameters to be tested in triggers.
    • Researched about how to dynamically generate test cases in python since this will be needed in the project to automatically generate test cases for all the triggers rather than writing a test for each trigger in concern.
    • Investing the Wikidata list of proposed triggers and ranking them in order for I and the mentors to select the highest priority triggers to implement during the coding period. There are 6 triggers so far and they are going through a ranking process.