Version 33 (modified by Pat Tressel, 10 years ago) ( diff )


Google Code In 2014 - 2015

Information for GCI Participants

Instructions and Guidelines

  • Please sign our Contributor License Agreement before claiming or completing any tasks (even non-coding tasks).
  • Please set your expectations from our mentors:
    • We may take up to 24 hours to respond to task claim requests.
    • We may take up to 36 hours to review submitted completed tasks.
  • Please use our public mailing list ( or IRC channel (#sahana-eden on or for all communications - no private messaging please - our mentors wil redirect you back to our public channels. This also lets you introduce yourself to the community. And if you post questions to the mailing list for the project you're working on, then many people will be available to answer, not just your mentor.
  • Speaking of the mailing list...please do join the mailing list, as we will use it to post useful information. Look for [GCI] in the subject line, for messages about GCI. When you post, please use [GCI] in the subject as well, so that folks who are not participating know which to read.
  • Note that Melange does notify mentors assigned to a task by e-mail whenever there is a status change or a comment made on a task. So you do not need to send an email to our lists when you claim or complete a task.
  • Please be patient....
    • The mentor for your project may be in a different timezone. They may be asleep, having dinner...
    • Our mentors have lives, spouses, children, jobs, hobbies, exams...
    • See the times above -- that gives the maximum response time, and a response might take that long.


How to do well in GCI

  • Focus on adding value & helping rather than just completing tasks.
  • If the mentors give you feedback (which we should be!) be sure that you action it!
  • Students who make the extra effort, e.g. improve the wiki, help other students, will be more highly regarded than students who just complete tasks.
  • GCI is for you to learn, and get a start in working on open source projects. It's a safe space for trying out things you don't yet know how to do.
  • Get enough sleep! Don't neglect your schoolwork! Have fun!


Committing Code

Please read this, about how to use git and GitHub.

We have some differences for GCI, which are summarized below.

Note we are revising the procedure a bit, so there will be changes gradually appearing here.

We will be using a GitHub repository just for GCI, rather than submitting code directly to the main repository. This will help us conserve the time of the (very busy) folks who have to approve submissions to the main repository.

You'll use the GCI repository to use for pull requests.

But you should still fork the main repository to create your own repository, and then clone your own repository.

On your local (cloned) repository, set up a "remote" that points to the GCI repository. Open the repository page:
On the right, there will be a box that says "SSH clone URL" or "HTTPS clone URL" -- that will be the URL to use for your new remote. If you are using git from the command line, cd to your local eden repository, and do this if you are using a password to connect to GitHub (this is the "HTTPS clone URL"):

git remote add edengci

Or do this if you are using SSH keys to connect to GitHub (this is the "SSH clone URL"):

git remote add edengci

We are going to collect up student work for several days, and then test it and submit it all together to the main repository. Because of that, we won't update from the main repository during that time. This will fix the problem students saw with having extra commits from the main repository that were not in the GCI repository appear in their pull requests.

We are going to use a branch called "staging" to hold students' work, so when you are ready to start working on code, you can pull a copy of this branch to your local repository. This is where you will send pull requests. To get a copy of this branch:

git pull edengci staging:your-branch-name

You can call your local branch whatever you want. One suggestion is to pull a fresh copy of the staging branch when you are about to start a new task. (You can keep any old branch you were working on for previous tasks, or delete it after your pull request for the previous task is accepted and merged into the staging branch. But it is better not to reuse that branch to avoid unexpected merge issues with new work. If you want to use the same branch name, then you can rename your old branch.)

Note, your commits will still have your name on them as author when they get into the main repository!

The steps to submit your work are similar to those in the git wiki page linked above -- differences are noted here.

  • "Squash" your commits into one.
  • This is different: Don't rebase from the main repository -- instead, rebase *from the staging branch* -- the same branch you will send the pull request to.
    git pull --rebase edengci staging
  • Push your commit to your Eden repository on GitHub.
  • Open the GitHub page for your Eden repository.
  • Click the "Compare and Create Pull Request" button shown on that commit.
  • This is different: The pull request page has a line that shows which repository and branch you are sending the pull request too. You will need to change both, to the GCI repository and the "staging" branch.
    • There will be a down-arrow next to the repository -- that will give you a list of repositories. Select the GCI repository.
    • Then use the down-arrow on the branch -- select "staging".
  • Create the pull request.
  • Continue with the code review as usual.

Admins and Mentors

Here is a list of admins and mentors with their IRC nicknames and timezones:

Admin IRC nickname Timezone
Ramindu Deshapriya ramindu UTC+0530
Arnav Kumar Agrawal knowing42 UTC+0530

Mentor IRC nickname Timezone
Somay Jain Somay UTC+0530
Hardik Juneja hardikj UTC +0530
Pat Tressel ptressel UTC -0800
Hitesh Sharma hitesh96db UTC +0530
Vishrut Mehta vishrut009 UTC +0530
Robby O'Connor robbyoconnor UTC-0500
Daniel Klischies Nostraa UTC+0100
Anirudh Tewari anirudh UTC +0530
Arnav Sharma iamas UTC +0530
Lolitha Ratnayake Lolitha UTC +0530

Information for Mentors

Mentor Sign Up & Roster

Mentors: Adding New GCI Tasks

A Google Code-In task should be a small unit of work in one of the categories listed below. They should be clearly and well documented so that they are easy for students to complete (and should link to all the information which the student should need to complete the task) and give a full criteria for completion so it is easy for mentors to evaluation.

Tasks must be added to Sunflower under the following projects:

When adding tasks, ensure that you have used the 'New' and 'GCI Task' tags upon creation.

Note: See TracWiki for help on using the wiki.