Page MenuHomePhabricator

Outreachy/GSoc Proposal for List Of Contributors
Closed, ResolvedPublic

Description

Name and Contact Information

Name : Devi Krishnan
Email : devikrishnan67@gmail.com
IRC : devi
Blog : devikrishnan.wordpress.com
Github : github.com/devikrishnan
Time zone : UTC +5:30 (IST- India)
Location : Kerala, India
Mentors : @Addshore,@Samtar

Typical working hours : 5pm to 2am (weekdays), 9am to 9pm (weekends)
IRC Nick : devi on Freenode ( Channels: MediaWiki-Internationalization, #wikimedia-dev )
Related Phabricator task - T120738

Problem background

Listing of contributors to a project is an important feature that must be an integral part of an open source community. Listing of contributors comes as an essential feature as it provides basic information on the number of people who edited the content and also the number of edits each contributor has made. This gives the user, necessary details about the content they are going to work on , such as the people currently involved in the project and their participation. It is also a way to give credits to the contributors for their contributions for a project.

The project idea is to come up with an extension to come up with an extension to preserve contributors of a page while its contents is being transferred from one location to another. This can be:

  • One wiki to another wiki
  • One location to another within the wiki

Main deliverables

The tool should have two main features to make sure the contributors are listed and preserved:

  • Listing of contributors to a page including its subpages
  • An ability to export contributors of a page in some format ( say XML ) and then allow it to be imported to another page.

Details into deliverables

Listing of contributors : This is analogous to what Extension:Contriubtors already does, with added more features such as:

  • Fetch contributors to sub-pages as well as main page
  • Improved tabular display, which can be sorted in different ways. The proposed column headers will be username, number of edits to the page, date of last edit, date of first edit and number of bytes changed.
  • Improved filtering with filters like :
    1. The user has an account - Yes/No
    2. IP- Yes/No
    3. Including subpages- Yes/No
    4. Including pages by prefix ( when : is used instead of / in some wikis for subpages )

Exporting and importing of contributors : This is the main aim of the project, and should have the following features:

  1. Special page which lists down the contributors to a page as above, and a button that would allow a user to download the contributors list as - say an XML file.
  2. Special page which would allow a user to import the XML file to add to the existing list of contributors to a page. This added list should show up next time the page is exported/printed.

Sub deliverables

  1. It should be possible to embed the same feature to a wiki page.
  2. On the side left bar, a link saying ‘Contributors’ which would list down a table from the extension.

Microtasks

Project Timeline

Tasks to be completedTimeline
Community bonding period, get familiar with the community, contribute by submitting and fixing bugs.22 April to 23 May 2016
Setting up environment, prepare a basic skeleton of the extension24 May to 31 May 2016
Set up the database for the extension1 June to 8 June 2016
Frontend- Improved tabular display9 June to 16 June 2016
Adding import/export feature in special page17 June to 20 June 2016
Code review, Fixing bugs21 June 2016
Mid Term Evaluation22 June to 28 June 2016
Embedding the feature to other wikis29 June to 14 July 2016
Adding Contributors tab15 July to 25 July 2016
Writing unit tests,Testing the workflow25 July to 12 August 2016
Writing Documentation, Deployment12 August to 21 August 2016
Final Report Submission22 August 2016

About Me

I am a 19 year old second year Computer Science Engineering undergraduate student from Amrita University, Kerala. I am an active and enthusiastic member of the FOSS Club in my college. I have good knowledge about on PHP, HTML, CSS, JavaScript. I also know C, C++ .

I have been contributing to Mediawiki since a few months. My first contribution took me more than a week. However small the contribution was, the moment it got merged gave immense joy to me. Mediawiki is the first community that I am contributing to.The community is very welcoming for new contributors.We receive help in many ways one of which is the IRC channels.However trivial the question might be , we always get a reply. I’ve always felt that contributing to open source helps us in developing very valuable set of technical skills and also the discipline and way of working with many people.

I came to know about GSoC and the Mediawiki community from my mentor at the FOSS club in my college. I had applied for Outreachy’11, and you can find my proposal here https://phabricator.wikimedia.org/T116303

Experience with the Organisation

  • Have set-up the development and debug environment on the core.
  • Basic familiarity of code and code conventions.
  • Understood the process of submitting a patch and review ( phabricator, gerrit and git).
  • Had submitted number of patchsets in 6 months via Gerrit

Projects worked on:

  • I have fixed few bugs related to different extensions in Mediawiki and core. You can find my Gerrit profile here Devirk
  • I have designed a website for a company which runs a laundry service,this played a huge role in developing my knowledge on web development area. URL : www.iwash.co.in

Event Timeline

@Devirk: Thanks! Please edit the task summary and task projects by following https://www.mediawiki.org/wiki/Outreach_programs/Life_of_a_successful_project#Submitting_your_proposal ("Associate your proposal to the Phabricator project(s) for the outreach program...") and remove #Community-Wishlist-Survey and Possible-Tech-Projects here.

IMPORTANT: The deadline for submitting your proposal for Outreachy'12 falls in less than 24 hours at Mar 22 2016, 07:00 pm UTC. . Please make sure that you have a copy of your proposal in the application system at outreachy.gnome.org beforehand, and make sure it has answers to the specific questions in https://wiki.gnome.org/Outreachy#Application_Form. You are encouraged to apply for both GSoC and Outreachy, in case you are eligible.
Devirk renamed this task from GSoc Proposal - List Of Contributors(Draft) to Outreachy/GSoc Proposal for List Of Contributors.Mar 22 2016, 1:10 PM
Devirk updated the task description. (Show Details)
Devirk added a subscriber: TheresNoTime.
IMPORTANT: The deadline for submitting your proposal to Google Summer of Code 2016 application system at GSoC application system falls in roughly 24 hours at Mar 25 2016, 19:00 UTC. Please make sure that you have a pdf copy of your proposal in the application system beforehand, to avoid last minute confusions. Remember to relate your Phabricator task and associate 2 mentors in the proposal description, so that it gets easy for review. Past the deadline, you should only make changes limited to fixing typos, or incorporating feedback's. Good Luck, and check out the micro-tasks!

Since this proposal is valid for both GSoC and Outreachy, we are considering it for GSoC only, as per our rules at https://www.mediawiki.org/wiki/Google_Summer_of_Code/Admins#Proposal_submission_phase

Congratulations @Devirk for getting selected for this project in GSoC 2016! Wish you a good luck with it. You can start discussing ideas and get to speed with the project as the Community Bonding period has started.

Welcome to Google-Summer-of-Code (2016) and to the Community Bonding period! Happy to have you here, and this should be crucial time to create important decisions regarding how your project should take shape during this two month internship period. You can find information about Community bonding period, from our Life of successful doc here. To make sure everything go as per planned, please follow the instructions in T133647 and create the 'Community Bonding Evaluation for $project' task as a subtask of your proposal task. Please note that all further tasks you create for evaluation and GSoC organization purpose should be subtasks of your proposal, and not the parent task - lets reduce the notification count. In case you are stuck, feel free to comment below T133647 or open up a conpherence task with the mentors and org admins. You can find example tasks in the task description of T133647

Hi - I don't mean to be offensive, but it looks to me like some parts of this project were handled badly, and I'd like to make sure that something like this doesn't happen again in the future.

Here are the issues I see:

  • The name ("List of Contributors") and description on this Phabricator task are unhelpful. There's no way to know that this project involved modifying the MediaWiki extension called "Contributors" - I had to dig through to find that information. Once it was decided that this project would specifically involve modifying the Contributors extension, the name and description should have been changed to reflect that. (And the list of mentors should have been changed at some point as well - that also seems to be incorrect.)
  • Interestingly enough, the Contributors extension is one that I'm listed as the main maintainer of. Regardless of my actual involvement on this extension (minimal, I admit), I feel like I should have been consulted on these changes beforehand; or at the very least, notified about them.
  • If you look now at the page for the Contributors extension (https://www.mediawiki.org/wiki/Extension:Contributors), there's no indication of any of these changes - and there certainly hasn't been a new version released. Documentation is obviously very important, for the sake of both developers and users; and Google makes documentation a requirement for GSoC projects. Personally, I don't think I would have passed the student, given this shortfall. (Though I would have also made sure that the student did it.)
  • As for the coding itself: the changes look reasonable, as far as I can tell; if the extension runs faster now, that's a big improvement. Though there's apparently a pre-existing major bug with the Contributors extension's handling of pages with apostrophes in their names, for MediaWiki 1.27 and higher; which for some reason wasn't fixed in this project. (Or was it? No way to tell.) If it wasn't, that means that the value of the rest of these changes becomes more limited.

Overall, these problems to me look like the fault of the mentors, for (seemingly) treating this project as something like a coding challenge and not as something that affects current MediaWiki users. Perhaps the fault of the administrators as well, for not requesting more clarity in the project description. If this were a new extension being created, that would be one thing; but this is an existing extension, with existing users and developers, and proper communication is critical. @Addshore - you clearly took the development aspect of this project seriously: the extension does seem to have been improved, and it looks like you even made some of your own improvements to the code during the project. But the other aspects were neglected.

Again, I don't mean to be unduly negative, just to try to make sure that this sort of thing doesn't happen again. And of course, it's never too late to update the Contributors version number and document all the recent changes.

Thank you for all the efforts, see you as a mentor for Google Code in 2016 at g.co/gci.

Outcome of this 2016 round projects at https://www.mediawiki.org/wiki/Google_Summer_of_Code_past_projects#2016

feel free to close this one down, after all discussions