Page MenuHomePhabricator

GSoC 2018 proposal for Improvements for the Toolforge 'webservice' command
Closed, ResolvedPublic

Description

Profile Information

Name: Neha Jha
IRC nickname on Freenode: Neha16
Email: nj4710@gmail.com
Web Profile: https://github.com/nj4710
User Page: https://phabricator.wikimedia.org/p/Nehajha/
Location (country or state): India (New Delhi)
Typical working hours (include your timezone): 3 PM to 5 AM (UTC+ 5:30)

Synopsis

  • Short summary describing your project and how it will benefit Wikimedia projects

This project is about improving the webservice command used by toolforge to start and stop web services. It involves solving bugs and adding features to the webservice command such as - improving the status output, limit webservice manifest starts, adding memory limit configurations etc.

  • Possible Mentor(s)

@bd808 @Andrew @madhuvishy

  • Have you contacted your mentors already?

Yes. I have completed a microtask. Link to the microtask -
https://gerrit.wikimedia.org/r/#/c/420238/

Deliverables

PeriodTask
April 23Results Announced
April 24 - April 30Community bonding period, get familiar with the codebase of webservices, read the documentation, try to start coding by solving easy tasks
May 1 - May 13Understand the tasks that will be fixed during the internship, start fixing small bug/issues
May 14 - May 18Official coding period starts, Work on T158244, discuss the issue with the mentors and decide the approach
May 19 - May 25Make webservice command read default cli arguments from ~/.webservicerc T148872
May 26 - June 2webservice and webservice-runner have no man pages T95097
June 3 to June 10discuss more about this issue - Make webservice backend default to kubernetes T154504 and decide a solution for this problem
June 11Phase 1 evaluation starts
June 11 to June 21Make tools-webservice use the official kubernetes python client rather than pykube T159892
June 22 to June 23Testing, documentation and report any encountered issues
June 23 to July 1webservice restart does not always wait for service to stop before trying to start again T140415
July 2 to July 12k8s webservice restart failure with ValueError: get() more than one object; use filter T156626, discuss more about this issue, study the patches that have already done for this bug and then try to decide one approach
July 13Phase 2 evaluation starts
July 13 to July 20Make it less cumbersome to bootstrap and update python webservices T174769
July 21 to July 30Run non-interactive commands on labs kubernetes webservices T169695
July 31 to August 6Possible race condition in webservice HSET/HDEL T122515
August 6 to August 14Add memory limit configuration for Kubernetes pods T183436, documentation, rigorous testing, report any encountered issues

Participation

  • I will use phabricator to create or manage issues.
  • I will hang out more on #wikimedia-cloud.
  • I will communicate with mentors and ask my doubts on IRC, phabricator and emails.
  • I will upload my code on Gerrit on a regular basis.
  • Code review will be done as comments on Gerrit.

About Me

I pursuing Bachelor of Technology in Computer Science. I am familiar with Version Control System. I have worked with the following:

  • Languages - C++, PHP, Python and Javascript
  • Framework - Nodejs, Expressjs, Django
  • Databases - Mysql
  • Operating Systems - Linux and Windows

How did you hear about this program?

I heard about this program from a friend who was a GSoC intern in 2017.

Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?

I have proposed exams from May 26 to June 6, 2018. Apart from that, I am not pursuing anything else. I can commit more than 40 hours a week for the project.

We advise all candidates eligible for Google Summer of Code and Outreachy to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)?

I am applying only to Google Summer of Code because I have already interned in Outreachy 15 with Wikimedia.

What does making this project happen mean to you?

My motivation is to work on a tool that will be used by hundreds of people. I would love to see my patches going live. I also hope to improve my python and web service skills from this project.

Past Experience

I have interned with Wikimedia and worked on two applications -

This internship has taught me a lot of things such as working with virtual machines, the importance of clear communication in remote work and the privilege of having mentors. I have learned how Wikimedia functions as an organisation. I have explored a lot of different projects too and met some of the most amazing people here. Even as a volunteer developer, there is a lot to learn here.
Few features/bugs that I have worked on -

My Gerrit user page: https://gerrit.wikimedia.org/r/#/q/owner:+Nehajha
In my second year of engineering, I interned with a company in which I learned basic web application development using LAMP stack. I helped in developing an internal tool for the company that improves the process of employee management. It included features like project assignment of every employee, application of leaves, approval, and rejection of leave applications, circulating important notices, performance evaluation etc. During the course of my internship, I learned the following things -

  • LAMP stack
  • Working within a team
  • getting used to command line

In my third year, I interned with Tata Consultancy Services. During this internship, I and my teammate developed a web application that helps users to get RSS feeds, display the feed in a user-friendly manner and share it on social media. The backend was built on Nodejs and Expressjs. I have learned the following things -

  • Familiarity with Nodejs and Expressjs
  • Working with APIs and npm packages
  • importance of documentation and user experience

Event Timeline

Nehajha added subscribers: madhuvishy, Andrew, bd808.

@madhuvishy @Andrew @bd808
Hi, Could you please do a quick review of this proposal. Does the timeline look reasonable?

My non-mentor thoughts:

June 11 to June 21 Make tools-webservice use the official kubernetes python client rather than pykube T159892

A library switch might need a lot of testing. Not sure if it's feasible to get some automated tests written prior to this.

July 2 to July 12 k8s webservice restart failure with ValueError: get() more than one object; use filter T156626, discuss more about this issue, study the patches that have already done for this bug and then try to decide one approach

This one is very hard to track down. My attempts have not been successful. I personally suggest setting up a mechanism to catch such errors early to find what might be the cause, so you can easily reproduce it when you work on the fix.

July 13 to July 20 Make it less cumbersome to bootstrap and update python webservices T174769

This one can be a lot of work. You probably won't be modifying the current webservice script framework, but adding a new one. Think early on how it should be done.

Thank you so much for your input.

A library switch might need a lot of testing. Not sure if it's feasible to get some automated tests written prior to this.

Do you think allocating more time to this task would be a good idea? I think this type of issues will improve my understanding of the project.

This one is very hard to track down. My attempts have not been successful. I personally suggest setting up a mechanism to catch such >errors early to find what might be the cause, so you can easily reproduce it when you work on the fix.

Yes, I have seen the discussions. I will try to reproduce these kinds of errors during the community bonding period. I still need to set up a local testing environment for this project.

I still need to set up a local testing environment for this project.

Sounds as difficult as everything else combined ;)

@Nehajha Thanks, this looks good to me. Good luck!

@Nehajha, thanks for the application -- it looks complete. Can you please confirm that you're not attending classes in the days running up to your May 26 exams?

@Andrew Hi! I do not have any classes from May to August. Thanks :)