[[TOC]] = Google Code In 2014 - 2015 = == Information for GCI Participants == === Instructions and Guidelines === * Please sign our [http://bit.ly/SSF-eCLA 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. Thanks! === 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! === Admins and Mentors === * GCI admins: * Arnav Kumar Agrawal (IRC: knowing42) * Ramindu Deshapriya (IRC: ramindu) * GCI mentors: * Daniel Klischies (IRC: Nostraa) * Hitesh Sharma (IRC: hitesh96db) * Pat Tressel (IRC: ptressel) * Lolitha Ratnayake (IRC: Lolitha) * Arnav Kumar Agrawal (IRC: knowing42) * Somay Jain (IRC: Somay) * Vishrut Mehta (IRC: vishrut009) * Hardik Juneja (IRC: hardikj) * Anirudh Tewari (IRC: anirudh) * Robby O'Connor (IRC: robbyoconnor, shared with OpenMRS) == Tasks == * [http://sunflower.sahanafoundation.org/eden/project/task?task_tag.tag_id__belongs=14 Coding] * [http://sunflower.sahanafoundation.org/eden/project/task?task_tag.tag_id__belongs=13 Documentation/Training] * [http://sunflower.sahanafoundation.org/eden/project/task?task_tag.tag_id__belongs=16 Outreach/Research] * [http://sunflower.sahanafoundation.org/eden/project/task?task_tag.tag_id__belongs=12 Quality Assurance] * [http://sunflower.sahanafoundation.org/eden/project/task?task_tag.tag_id__belongs=9 User Interface] == Committing Code == 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.[[br]] https://github.com/edengci/eden But you should still fork the main repository to create your own repository, and then clone your own repository.[[br]] https://github.com/flavour/eden On your local (cloned) repository, set up a "remote" that points to the GCI repository. Open the repository page:[[br]] https://github.com/edengci/eden [[br]] 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 git@github.com:edengci/eden.git }}} We will give each student their own branch in that GCI repository to receive their pull requests, to make it simpler and faster to get them merged, as we can review and merge work from students in parallel. So, there will be some changes to the procedure for submitting code. Instead of updating your branch from the main repository, there will be a branch in the GCI repository that we will keep stable for several days, that students can pull from to set up their own branches for GCI work. This will fix the problem students saw with getting extra commits out of the main repository that were not in the GCI repository. (This is part of the new procedures we're just designing, so there will be more info about this soon. For now, if you're just setting up your branch for GCI work, ask the mentors which branch to pull from.) Every few days, we will collect up students' work, and submit a combined PR to the main repository. At this point, we'll update the branch to pull from, and students can pull a fresh copy of that branch for any new work. Work already in progress can continue on the old branch, and we'll wait for that to include in the PR to 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 -- you started with the right revision from the GCI branch, so don't need to update. (The mentors will rebase from the main repository while they are getting ready to send the combined PR.) * 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 your branch name in the GCI repository. * 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 your branch. * Create the pull request. * Continue with the code review as usual. After the mentor accepts your pull request, the GCI admins will collect your commits and those of other students into one pull request and submit that to the main repository. Your commits will have your name on them, and will show up in the main repository. == Mentors == Here is a list of mentors with their IRC nicknames and timezones: ||= Mentor =||= IRC nickname =||= Timezone =|| || Somay Jain || Somay || UTC+0530 || || Ramindu Deshapriya || ramindu || UTC+0530 || || 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 || || Robby OConnor || robbyoconnor || UTC-0500 || || Daniel Klischies || Nostraa || UTC+0100 || || Anirudh Tewari || anirudh || UTC +0530 || || Arnav Sharma || iamas || UTC +0530 || || Lolitha Ratnayake || Lolitha || UTC +0530 || [https://docs.google.com/spreadsheet/ccc?key=0Arty00iY8dujdE1NZWRfSFNaUzR1aENSZ2FJbU1lNmc&usp=sharing_eid#gid=0 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: * Code : [http://sunflower.sahanafoundation.org/eden/project/project/138/task Sahana Eden Trunk Code] * Documentation : [http://sunflower.sahanafoundation.org/eden/project/project/137/task Sahana Eden Documentation] * Outreach-Research : [http://sunflower.sahanafoundation.org/eden/project/project/139/task Sahana Outreach] * UI : [http://sunflower.sahanafoundation.org/eden/project/project/141/task Sahana Eden User Interface] * Quality Assurance : [http://sunflower.sahanafoundation.org/eden/project/project/140/task Sahana Quality Assurance] When adding tasks, ensure that you have used the 'New' and 'GCI Task' tags upon creation.