Guidelines for creating tasks
Last modified by Eduard Moraru on 2017/11/21 13:48
Recommendations
- We create tasks in XWiki's JIRA and then run a script to sync with the Google Code-In website
- Valid task categories:
- Coding
- Documentation/Training
- Outreach/Research
- Quality Assurance
- User Interface
- When creating tasks, consider the following:
- Set the JIRA issue with a "Trivial" or "Easy" difficulty and a "Onboarding" tag.
- Make the tasks as small as possible. Students may have 0 knowledge of anything.
- Ensure there's the minimum amount of setup required to complete the task
- Include tasks to help the student being onboarded such setting up an environment, creating an account on xwiki.org, on jira, etc
- Write the success criteria in the task description and remove as much fuzziness as possible
- Make sure that any mentor can validate the task and decide if they've been completed satisfactorily or not
- Find as many repeatable tasks as possible (e.g. "find and fix 10 broken links in xwiki.org")
- Translations tasks are forbidden by Google
- In general any tasks for which the success criteria cannot prove that the student has done the work himself are prohibited
- Try to make tasks that can be completed in 2-3 hours for the simple ones and maximum a couple of days
Template
Tasks must follow the following template. See Example.
Jira:
If it's your first Google Code-In task it's highly recommended to start with [Become a community member|https://codein.withgoogle.com/dashboard/tasks/4798591157665792/].
h2. Prerequisites
* The student will need to have a Jira account, if it's not the case you can [signup here|https://jira.xwiki.org/secure/Signup!default.jspa]
* The student will also need a https://www.github.com account. You might also want to take a look at [Git|https://try.github.io] and [GitHub interface|https://services.github.com/on-demand/intro-to-github/] documentations.
<explain the tools/technologies a student should know to complete this task>
* Assign yourself to the Jira issue
h2. Issue
<indicate what need to be done (i.e. what is usually the content of the issue description outside of Google Code-In)>
h2. Expected Outcome
<describe very precisely the success criteria for the task so that the student knows what to achieve and so that any mentor can easily validate the task>
* The student must commit the changes and create a pull request on <indicate repository>
** The summary of the Pull Request must have a first line matching the JIRA issue following by a colon and then the title of this issue
** Add a comment in the jira issue mentioning your pull request and provide a link to it
h2. Links
<optional list of links related to this task>
h2. Getting help
If you have any question you should use the [Chat|http://dev.xwiki.org/xwiki/bin/view/Community/Chat] (faster answer, but when there is someone around) or the [Forum|http://dev.xwiki.org/xwiki/bin/view/Community/Discuss] (more people available, but slower answer).
h2. Prerequisites
* The student will need to have a Jira account, if it's not the case you can [signup here|https://jira.xwiki.org/secure/Signup!default.jspa]
* The student will also need a https://www.github.com account. You might also want to take a look at [Git|https://try.github.io] and [GitHub interface|https://services.github.com/on-demand/intro-to-github/] documentations.
<explain the tools/technologies a student should know to complete this task>
* Assign yourself to the Jira issue
h2. Issue
<indicate what need to be done (i.e. what is usually the content of the issue description outside of Google Code-In)>
h2. Expected Outcome
<describe very precisely the success criteria for the task so that the student knows what to achieve and so that any mentor can easily validate the task>
* The student must commit the changes and create a pull request on <indicate repository>
** The summary of the Pull Request must have a first line matching the JIRA issue following by a colon and then the title of this issue
** Add a comment in the jira issue mentioning your pull request and provide a link to it
h2. Links
<optional list of links related to this task>
h2. Getting help
If you have any question you should use the [Chat|http://dev.xwiki.org/xwiki/bin/view/Community/Chat] (faster answer, but when there is someone around) or the [Forum|http://dev.xwiki.org/xwiki/bin/view/Community/Discuss] (more people available, but slower answer).
Pure GCI:
If it's your first task it's highly recommended to start with [Become a community member](https://codein.withgoogle.com/dashboard/tasks/4798591157665792/).
## Prerequisites
<list other repeatable tasks which are recommended before this one>
<explain the tools/technologies a student should know to complete this task>
## Objective
<explain the objective of the task here>
## Requirements
<explain the requirements>
## Expected Outcome
<describe very precisely the success criteria for the task so that the student knows what to achieve and so that any mentor can easily validate the task>
## Links
<optional list of links related to this task>
## Getting help
If you have any question you should use the [Chat](http://dev.xwiki.org/xwiki/bin/view/Community/Chat) (faster answer, but when there is someone around) or the [Forum](http://dev.xwiki.org/xwiki/bin/view/Community/Discuss) (more people available, but slower answer).
## Prerequisites
<list other repeatable tasks which are recommended before this one>
<explain the tools/technologies a student should know to complete this task>
## Objective
<explain the objective of the task here>
## Requirements
<explain the requirements>
## Expected Outcome
<describe very precisely the success criteria for the task so that the student knows what to achieve and so that any mentor can easily validate the task>
## Links
<optional list of links related to this task>
## Getting help
If you have any question you should use the [Chat](http://dev.xwiki.org/xwiki/bin/view/Community/Chat) (faster answer, but when there is someone around) or the [Forum](http://dev.xwiki.org/xwiki/bin/view/Community/Discuss) (more people available, but slower answer).
Samples
Tasks requiring a pull request
Prerequisites
Pure GCI:
* The student will need to have an account on http://www.github.com. You might also want to take a look at [Git](https://try.github.io) and [GitHub interface](https://services.github.com/on-demand/intro-to-github/] documentations.
Expected Outcome
Pure GCI:
* The student must commit the changes with a comment explaining it, create a pull request and indicate the link to this pull request
Java related code tasks
Prerequisites
* For beginners a good way to quickly get a pre configured dev environment for XWiki is to do the following task: https://codein.withgoogle.com/dashboard/tasks/6322519776690176/preview/
Expected outcome
* The student must follow the best practices documented on http://dev.xwiki.org/xwiki/bin/view/Community/JavaCodeStyle as much as possible
CSS/HTML related code tasks
Prerequisites
* Before starting your task familiarize yourself a bit with XWiki interface. You should download the latest demo version (with pre installed Standard Flavor) on http://www.xwiki.org/xwiki/bin/view/Download/.
Expected outcome
* The student must follow the best practices documented on http://dev.xwiki.org/xwiki/bin/view/Community/XhtmlCssCodeStyle#HCSS as much as possible