|Version 34 (modified by 8 years ago) ( diff ),|
Table of Contents
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 (http://groups.google.com/group/sahana-eden) or IRC channel (#sahana-eden on irc.freenode.net or http://webchat.freenode.net/?channels=sahana-eden&uio=d4) 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 sure that you act on 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!
Please read this, about how to use git and GitHub. http://eden.sahanafoundation.org/wiki/DeveloperGuidelines/Git
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 https://github.com/edengci/eden.git
Or do this if you are using SSH keys to connect to GitHub (this is the "SSH clone URL"):
git remote add edengci email@example.com:edengci/eden.git
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:
|Arnav Kumar Agrawal||knowing42||UTC+0530|
|Hardik Juneja||hardikj||UTC +0530|
|Pat Tressel||ptressel||UTC -0800|
|Hitesh Sharma||hitesh96db||UTC +0530|
|Vishrut Mehta||vishrut009||UTC +0530|
|Anirudh Tewari||anirudh||UTC +0530|
|Arnav Sharma||iamas||UTC +0530|
|Lolitha Ratnayake||Lolitha||UTC +0530|
Information for Mentors
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:
- Code : Sahana Eden Trunk Code
- Documentation : Sahana Eden Documentation
- Outreach-Research : Sahana Outreach
- UI : Sahana Eden User Interface
- Quality Assurance : Sahana Quality Assurance
When adding tasks, ensure that you have used the 'New' and 'GCI Task' tags upon creation.