Weekly reports of progress made for the GSoC project T129611.
== Community Bonding (April 22 - May 22)
- Request a task to create project : T133761 ( #Pywikibot-catimages )
- Create Community bonding evaluation subtask: T133692
- Created Weekly Reports Subtask and Community report task
- Created github repo for `file-metadata` - http://github.com/AbdealiJK/file-metadata
- Have set up CI for the github repo
- Made dev pypi package for the github repo https://pypi.python.org/pypi/file-metadata
- I have read through [Life_of_a_successful_project](https://www.mediawiki.org/wiki/Outreach_programs/Life_of_a_successful_project) completely.
- Created a [ToolsLab account](https://wikitech.wikimedia.org/wiki/User_talk:AbdealiJK#Welcome_to_Tool_Labs)
- **Get involved in commons community**:
- Create User page in commons [User:AbdealiJK](https://commons.wikimedia.org/wiki/User:AbdealiJK) and meta.wikimedia [User:AbdealiJK](https://meta.wikimedia.org/wiki/User:AbdealiJK)
- Got some (500+) edits on commons [Special:Contributions/AbdealiJK](https://commons.wikimedia.org/wiki/Special:Contributions/AbdealiJK) (Reached 1000+)
- Sent email to commons, pywikibot, wikimedia lists - https://lists.wikimedia.org/pipermail/pywikibot/2016-May/009452.html
- **Get involved in pywikibot community**:
- Went through and gave input on bug reports related to [isort](https://phabricator.wikimedia.org/T132122), [testing](https://phabricator.wikimedia.org/T115313), [htm_comparator](https://phabricator.wikimedia.org/T134341), [ToolsLab](https://phabricator.wikimedia.org/T134232), [weblinkchecker](https://phabricator.wikimedia.org/T124287), and many more which can be seen in my profile [Phab: AbdealiJK](https://phabricator.wikimedia.org/p/AbdealiJK/). and also filed bugs based on my experience, like [-random](https://phabricator.wikimedia.org/T134720), [toolslab speed](https://phabricator.wikimedia.org/T134232), [proofreadpage test issue](https://phabricator.wikimedia.org/T129965), etc.
- [TODO] Make bot to verify wikimedia logos [T134644](https://phabricator.wikimedia.org/T134644)
- **Get involved with the communities of 3rd party dependencies of catimages**
- Hunt why [music21's travis](https://travis-ci.org/cuthbertLab/music21) fails - The master builds successfully, only dev branches fail, which is fine
- Hunt why [bob's travis](https://travis-ci.org/idiap/bob) fails - Created [idiap/bob#221](https://github.com/idiap/bob/issues/221), it is a non deterministic issue with travis and their deps. Not a code problem and pretty tough to solve myself.
- Check if python 3.3 is supported on cyvlfeat and add to their travis if it is - Created [menpo/cyvlfeat/12](https://github.com/menpo/cyvlfeat/issues/12), cyvlfeat does support 3.3 but their CI utils doesn't.
- Add python3 support to [yaafe and it's travis](https://travis-ci.org/mckelvin/Yaafe) - Created [Yaafe/Yaafe/21](https://github.com/Yaafe/Yaafe/pull/21)
- Add 3.3 support for [matlplotlib's travis](https://travis-ci.org/matplotlib/matplotlib) - This was removed because matplotlib decided to drop support for py3.3 and py2.6 in [254e16925](https://github.com/matplotlib/matplotlib/commit/254e16925644e114cb06ceaf9085196a6de0545d), no plans to add it back
- **Understand catimages better**
- Create list of things done by catimages - https://etherpad.wikimedia.org/p/Zl7V7KuK7J
- Get the catimages script working, atleastsome branches like JPEG, PNG, etc.
- Identify binary files, python packages and other dependencies of catimages. Also, identify whether they have a CI system and make pull requests for Travis if they do not have it. [List is here](https://phabricator.wikimedia.org/T129611)
- Compare ImageAnnotator gadget and rillke's JS template FileContentsByBot [page](https://commons.wikimedia.org/wiki/User:AbdealiJK/Comparison_AnnotationTool_FileContentsByBot)
- Decide on complete project plan with mentors (Decided in meeting 3)
- Create Subtasks for the Project based on above project plan (made in the file-metadata github repo)
- Published report (doing this every 2-3 days)
==== Meetings
(Minutes and Agenda are mentioned in the task related to the Meeting)
- Sun 1 May 2016 - 13:00 UTC : T133763, E172
- Sa 7 May 2016 - 12:30 UTC: T134121, E173
- Fri 13 May 2016 - 12:30 UTC: T134656, google calendar (E178)
- Fri 20 May 2016 - 11:30 UTC: T135230, google calendar
- Fri 27 May 2016 - 12:30 UTC: T135834, google calendar
== Week 1 (May 23 - May 29)
- **Dependencies on Travis**: I tested a lot of dependencies on travis and got them installed there. I found that dlib would be easier to install with conda because the `pkgconfig.h` wasn't found. Plus, conda has binaries for scipy making it much faster than installing with pip. (Even cyvlfeat is easier with conda...)
- **Framework**: I made a nice OOP framework like how catimages used to work. Classes for each file type. and a generic GenericFile class which everything inherits from. This is split into multiple files to make it easy to read and modular. [45eae3](https://github.com/AbdealiJK/file-metadata/commit/45eae382510b66fecab777e744e98b2c8dd528e1)
- **Exif data**: Read exif data using exiftool. Using json to parse data. [b51228](https://github.com/AbdealiJK/file-metadata/commit/b5122872db3acb4c406945fa3daf1595b4c7cd84)
- **Mimetype**: Use magic for mimetype analysis with backups [1102cf](https://github.com/AbdealiJK/file-metadata/commit/1102cfb8a749661ce8a2be9ebd551b64995114a2)
- **music21 and ffprobe**:
== Week 2 (May 30 - June 5)
== Week 3 (June 6 - June 12)
== Week 4 (June 13 - June 19)
== Week 5 - Midterm Evaluation (June 20 - June 26)
== Week 6 (June 27 - July 3)
== Week 7 (July 4 - July 10)
== Week 8 (July 11 - July 17)
== Week 9 (July 18 - July 24)
== Week 10 (July 25 - July 31)
== Week 11 (Aug 1 - Aug 7)
== Week 12 (Aug 8 - Aug 14)
== Week 13 (Aug 15 - Aug 23)