GSoC2018

Google Summer of Code 2018


Google Summer of Code is a global program focused on introducing students to open source software development. Students work on a 3 month programming project with an open source organization during their break from university.

Since its inception in 2005, the program has brought together almost 13,000 student participants from over 108 countries worldwide. Google Summer of Code has produced over 33 million lines of code for 608 open source organizations.

Check Google Developers site for more information on how the program works.

OpenStack had the chance to join Google Summer of Code 2014 (more details here) and the outcome was very positive: we got 6 interns working on 5 different projects and now, some of those interns, continued contributing to our community. With this visibly great results, we decided to apply as a mentoring organization again this year for the Google Summer of Code 2018 internships.

Link to FAQs: here

Internship timeline
Check out GSoC 2018 internship website for more details on the program timeline.


 * 4 Jan: Organization applications open
 * 23 Jan: Organization Application Deadline
 * 12 Feb: Organizations Announced
 * 12-27 March: Student Application Period
 * 23 April: Accepted students announced
 * 23 April to 14 May: Students get to know mentors, read documentation, prepare for work on their projects
 * 14 May: Students begin coding for their Google Summer of Code projects
 * 11-15 June: Mentors and students submit Phase I evaluations
 * 9-13 July: Mentors and students submit Phase II evaluations
 * 6 August: "Pencils down" date
 * 6-14 August: Students submit code, project summaries and mentor evaluations
 * 14-21 August: Mentors final evaluations
 * 22 August: Final results of Google Summer of Code announced

What is OpenStack
OpenStack is an open-source IaaS cloud computing platform. Its mission is to provide a flexible solution for both public and private clouds of any size, and for this matter two basic requirements are considered: clouds must be simple to implement and massively scalable.

To meet these principles OpenStack is divided into different components that work together. It's computing, storage, networking, and all the other bits that help make this project, The Cloud.

OpenStack is continuously growing and new and exciting projects are being discussed everyday.

We encourage new contributors to participate and help us make OpenStack the most complete, reliable and flexible open-source cloud service!

Mentors
If you're interested in mentoring for this round, please add your name, email, IRC handle and the kind of projects you're interested in mentoring below. Please ensure that the projects are official projects in OpenStack and are registered in the governance projects.yaml.


 * Victoria Martinez de la Cruz - victoria AT redhat.com - vkmc - Manila (filesystems)
 * Supun Wanniarachchi - supunpramoda AT gmail.com - Supun - Glance (Images) and Swift (Object storage)
 * Jay Bryant - jungleboyj AT gmail.com - jungleboyj - Cinder (Block storage)
 * Ivan Kolodyazhny - e0ne AT e0ne.info - e0ne - Cinder (Block storage)
 * Hongbin Lu - hongbin034 AT gmail.com - hongbin - Zun (Containers management)
 * Raildo Mascena - raildom AT gmail.com - raildo - Oslo.config (Config library) and Castellan (generic Key Manager interface)
 * Davanum Srinivas - davanum AT gmail.com - dims - Zun (Containers management)
 * Brian Rosmaita - rosmaita.fossdev AT gmail.com - rosmaita - Glance (Images)
 * Erno Kuvaja - ekuvaja AT redhat.com - jokke - Glance (Images)
 * Balazs Gibizer - balazs.gibizer AT ericsson.com - Nova (Compute)
 * Harry Rybacki - hrybacki AT redhat.com - hrybacki - Keystone (Identity)
 * Lance Bragstad - lbragstad AT gmail.com - lbragstad - Keystone (Identity)
 * Colleen Murphy - colleen AT gazlene.net - cmurphy - Keystone (Identity)
 * Rodrigo Duarte - rodrigodsousa AT gmail.com - rodrigods - Keystone (Identity)

During the application period

 * Make sure you can take between 3 and 4 hours weekly to guide applicants.
 * Be available on IRC and be ready to answer questions about OpenStack, the contribution process and about the project you want to mentor on.
 * Be clear on the internship task. Add details on what the student is expected to do and which kind of technologies are them going to use. Add all this information in the Internship ideas wiki. We provide a template to make this task easier.
 * Help with reviewing student proposals. Provide all the information you know about the student: how much involved this person has been in the project during the application period, how much effort they put on getting to know the project and making their first contributions, how proactive and independent they were. We want to pick the best applicants and this kind of information is very valuable for the selection phase.

During the internship

 * Keep communication fluent with your student. Make sure they are not hitting any blockers and help them solve those if so. They should have their development environment up and running, be active in the main communication channels of the community and have an internship task guideline prepared.
 * Help your mentee to be successful. Share your knowledge with regards to technical expertise and process awareness. Sometimes there are things you learned the hard way that can be shared and save lots of time to your student.
 * Keep track of your mentee work. Make sure to schedule weekly one on ones and keep a record of what they are doing.
 * Make sure to introduce your mentee to the rest of the community. The more people they know, the easier they can solve any blocker they might hit.
 * Always reach out GSoC OpenStack coordinators if you need help or if you have any question or concern.
 * If the student is not active during the internship, make sure to let GSoC OpenStack coordinators in advance.

After the internship

 * Keep in touch with your student. They might be interested in continuing their contributions and/or maybe landing a full-time work on the project they contributed.
 * Make sure your student knows about the different community gatherings.
 * Give your students some tips on how to keep involved with the community.

Mentoring advice
Don't know what it takes to be a mentor? Check out the following resources to get more information on how is to be a mentor for this internship and get some useful tips/tricks on mentoring:


 * GSoC Mentoring Manual
 * Outreachy Information for Mentors

Students
Students application period opens March 12nd and ends on March 27th.

If you'd like to get started on your proposal early, go ahead and add your name, location, e-mail, IRC handle and the project you are interested in (if you already know about that!) here:


 * Sebastian Minutto - - elsauto - Zun
 * Edozie Izegbu - eai267@g.harvard.edu - edzye101 - Keystone (Flask Support)

During the application period

 * Get to know OpenStack and the project for which you want to apply. Make sure to understand what OpenStack software does, what is precisely the goal of the project you want to contribute to and how the community communicates. Check out the How_To_Contribute wiki and make sure you always have the community docs handy. Also, you may want to have your developer guide for the project you want to contribute bookmarked. Of course, we encourage you to ask questions in the main communication channels on IRC and on the mailing lists. Be clear and concise, provide supporting information (logs, configs, information about the environment) on paste files. You can use https://paste.openstack.org for this.
 * Get your development environment installed and running with the code for the project you want to contribute to. We use Devstack to set up our working environments. Check our your project wiki page for more detailed set up instructions of your project in particular. You would also want to ask your mentor and/or in your project IRC channel for instructions.
 * Review internship tasks and ask any question that you might have on those. Talk with your mentors and with the rest of the team for the project you want to apply to.
 * Pay attention to things happening on IRC, both in your project channel as in the GSoC channel. Plus, ask your mentor if there are weekly meetings for the team and, if so, when and where those happen.
 * Add your name to this wiki so we know you are interested in applying to this internship. Make sure to specify where you are based, your IRC handle, your email and which project you are interested in.
 * Start contributing with small tasks. Help with code reviews, submit bug fixes, correct any documentation you see it's not accurate or that could be enhanced.
 * Remember to be active. Work hard. Ask good questions. Respond to questions of other people if you know the answer. Remote internships work because students keep communication open and fluent with their mentors and the rest of the team.
 * Work on your application and submit it. We provide you a template in GSoC2018/StudentApplicationTemplate.

After you get selected

 * Get in touch with your mentor immediately. Work with them on defining how are you going to work together: where are you going to start working, when are you going to have meetings, how are you going to share your updates, how to reach them when you hit a blocker. You should be reachable on IRC and be active during discussions and meetings. Don't be afraid of speaking up in public channels: this is what we expect you do. Open source is made on the open and we expect you are comfortable to share what you are doing and if you have any question so not only your mentor but the rest of the community can share their thoughts.
 * Work on a timeline for how you are going to address the internship task. Separate the work in weeks, define some milestones and consider some extra time as margin.
 * Set up a blog for your work and start sharing your OpenStack GSoC experience. Blogging is great for you and for people that might be interested in contributing to open source.

During the internship

 * Help with everyday tasks such as reviewing peers code, fixing bugs, reporting bugs, triaging bugs (veryfing that reported bugs are actually reproducible and keeping the list of bugs organized), enhancing docs.
 * Submit progress reports weekly so your mentor is well informed of how are things on your side. Contact OpenStack GSoC coordinators if you have any doubt or concern on how you should interact with your mentor.
 * When in doubt, send your code for review. This is a good practice in open source.
 * You are part of the team as well, so don't be afraid on jumping on conversations and making your voice heard. The more you collaborate, the more productive your internship will be. All communications should happen on the open, this is, don't use private emails. Stick with IRC channels and mailing lists.

Communication
Questions? Comments? Concerns? Feel free to reach us, we are here to help!

Get in touch with coordinators, mentors and students through the openstack-dev mailing list and openstack-internships mailing list.

Also, you can find us at IRC in #openstack-gsoc at irc.freenode.org.

Internship proposal
Applicants have to submit an internship proposal in the Google Summer of Code 2018 administration site between March 12th and March 27th.

A good project submission should contain the following:


 * Project title
 * Name of the student
 * Student bacground (include social media as appropriate: Twitter, Blog, Github, etc)
 * Short abstract for the internship task
 * Internship task details and roadmap (separated in milestones)
 * Internship task schedule (a more granular description of how you are going to tackle your internship task)
 * Success criteria (how do you know when you are done?)
 * Why your contribution is important for OpenStack

To make things easier, we left a proposal template for you to check at GSoC2018/StudentApplicationTemplate.

And you can also check previous applications in:


 * OpenStack GSoC 2014 wiki
 * OpenStack GSoC 2015 wiki

Ready? Let's start to write your proposal!

Internship ideas
Suggestions for students to choose from for their applications are maintained on the Internship ideas wiki. This doesn't mean students have to stick strictly to this list; don't hesitate in propose projects by your own. Be proactive! All FOSS developers are used to go ahead and propose their own ideas for any new challenge they face, we would love to see the same in our interns!

When writing your proposal, try to estimate your timeline to fit the 4 month period of GSoC coding. Also, take into account that GSoC does not consider other projects than coding, so other ideas (like community tasks or i18n efforts) are not suitable for this internship.

A brief table of current internships ideas can be seen below. Go to Internship_ideas for more details.

More ideas
Still not something that fit your interests?

Check out for more project ideas in:


 * Cinder - Look through specs being proposed (https://review.openstack.org/#/q/project:openstack/cinder-specs,n,z)
 * Keystone - Look through specs being proposed (https://review.openstack.org/#/q/project:openstack/keystone-specs,n,z)
 * Neutron - Look through specs being proposed (https://review.openstack.org/#/q/project:openstack/neutron-specs,n,z)
 * Nova - Look through specs being proposed (https://review.openstack.org/#/q/project:openstack/nova-specs,n,z)
 * Oslo - Look through specs being proposed (https://review.openstack.org/#/q/project:openstack/oslo-specs,n,z) and those that are in progress (https://git.openstack.org/cgit/openstack/oslo-specs/tree/specs/kilo)
 * Rally - Look through specs being proposed (https://review.openstack.org/#/q/project:openstack/rally-specs,n,z)
 * Sahara - Look through specs being proposed (https://review.openstack.org/#/q/project:openstack/sahara-specs,n,z)
 * Swift - Look through specs being proposed (https://review.openstack.org/#/q/project:openstack/swift-specs,n,z)
 * Trove - Look through specs being proposed (https://review.openstack.org/#/q/project:openstack/trove-specs,n,z)
 * Zaqar - Look through specs being proposed (https://review.openstack.org/#/q/project:openstack/zaqar-specs,n,z)
 * Glance - Look through specs being proposed (https://review.openstack.org/#/q/project:openstack/glance-specs,n,z)
 * Searchlight - Look through specs being proposed (https://review.openstack.org/#/q/project:openstack/searchlight-specs,n,z)