XWiki @ Google Code-In 2017
This page hosts information and project ideas for the open source project XWiki related to the Google Code-In 2017 program.
XWiki has also been participating to Google Summer of Code since 2005.
About Code-In
You can learn a lot about the program by reading the Code-In website. The timeline of this year's edition is given here.
XWiki Guidelines
Being part of the XWiki community means knowing our rules and practices. As a Code-In student you need to make sure you read and apply our guidelines (you'll also find onboarding guides there).
For Code-In mentors please follow the following guidelines for creating Code-In tasks.
Task List
The lists of Google Code-In side.
This will be available on the Code-In website, but for now here's a list of example tasks:
Non-repeatable Tasks
List of non-repeatable example tasks from our issue tracker.
Repeatable Tasks
Setup
Become a community member: create an account on xwiki.org, then log in with that account on the forum, create an account on Riot. Success criteria:
- Post a new topic on the forum to introduce yourself and mention your Riot chat id.
Setup a development environment (for Code tasks only). Install the XWiki client docker image or some virtual box VM.
- Screenshot of the shell with the name
Debug Java XWiki code
Modify XWiki Java code and see the change in a running instance
- Become a code contributor: create jira and github account, fork XWiki platform, create a branch and push a change
- Link to the new branch on user's github account
xwiki.org
Fix 10 links on xwiki.org that point to the platform or enterprise wikis with redirects and replace them with the redirect reference. Success criteria:
- Use minor edits
- Provide a link to revision diffs
Find and update 5 screenshots of XWiki features on xwiki.org that are not up to date with the latest version of XWiki. Success criteria:
- Use the same attachment name that exist
- Provide the URLs to the old + new images
- Use a similar size of image than what exists
Find an replace 10 images on xwiki.org that don't use the {{image}} macro yet and replace them with that macro. Success criteria:
- Provide a link to the version diff for each image replaced
- Find and fix 5 broken links on xwiki.org (Example of wording it). Success criteria:
- Link to the revision diff fixing each broken link
Tests
- Run and report result of 10 tests from http://test.xwiki.org/xwiki/bin/view/Main/WebHome. You should use a combination of XWiki versions, Browser type+version, Database type+version that doesn't already exist, and create a new result entry. Success criteria:
- New entries on test.xwiki.org
- Q: How to ensure that the students has really executed the test? Example
Test XWiki and report a valid bug/improvement on the latest version
Create a new test case on http://test.xwiki.org for an XWiki feature / extension of your choice. Run this test case on the latest XWiki version for multiple browsers, databases. Make sure the test case doesn't already exist.
Code
Convert 1 unit test written in JMock, into a Mockito test using XWiki's MockitoComponentMockingRule or MockitoComponentManagerRule. Success criteria:
- Pull Request
- Following testing best practices defined at http://dev.xwiki.org/xwiki/bin/view/Community/Testing
Increase test coverage (as measure by Jacoco) for a single module by 1%, by adding new tests to existing test suites. Success criteria:
- Pull Request
- pom.xml modified in the PR to match the new coverage threshold and build passing with quality profile (-Pquality).
Replace at least 1 call to deprecated using alternative valid APIs
- The module build is still passing
- Pull Request
- Move 1 unused deprecated method/class to Legacy module (using AspectJ for methods). Success criteria:
- Full build of commons, rendering, platform still passing without failure
- Pull Request
Remove 1 coding violation from http://sonar.xwiki.org/issues/search#resolved=false. (commons, rendering, or platform). Success criteria:
- Pull Request
- After PR is applied, http://sonar.xwiki.org/issues/search#resolved=false should not show the violation any more
- Find one place that doesn't allow the UI to be translated (missing translation keys). Success criteria:
- Point to the code containing the hardcoded string
- Implement a new ColorTheme. Success criteria:
- PR in the "Extra ColorTheme Pack" extension project in xwiki-contrib (we neeFind one place that doesn't allow the UI to be translated (missing translation keys). Success criteria: d to create it)
- Screenshot of the home page using the Color Theme
- Documentation of it on the extension page on e.x.o
In 1 UI test replace all setup code which use the UI by REST calls
- The test is still passing
- Pull Request
Design and publish a new color theme extension for XWiki
Map and publish a new icon theme extension for XWiki
- New type converter
Fix any Jira issue listed on https://jira.xwiki.org
Fix README files
Review default translation files for mistakes
Implement a new APPWM property type
Outreach
- Design a new logo for an extension found on e.x.o. Success criteria:
- Original logo (doesn't exist on the web already and cannot be considered as plagiarism)
- Screenshot of the logo in action
- Right sizes so that be can used on JIRA project, on e.x.o. TODO: decide what we do for the icon inside XWiki when the extension is installed
- XINFRA issue created to use the logo on JIRA, e.x.o, etc.
- Design a logo for XWiki participation in GCI and GSOC. Success criteria:
- Post the logo on a wiki page that will have been prepared for that
- Original logo (doesn't exist on the web already and cannot be considered as plagiarism)
- Interview an XWiki contributor or user. Don't forget to mention that you are doing this as part of GCI 2017 and also try to explain them about the program a bit. Write a blog post about your interview. Success criteria:
- Link to blog post
- Write 3-paragraph essay to explain what is XWiki to grandpa/grandma (Credit goes to Drupal). XWiki is quite a foreign concept to many people. e.g. people who are not in the tech world; Grandpa/Grandma old generation. We want to produce a short essay to allow us to explain what XWiki is to those people. Deliverables: Write a blog and link to it for mentor to review. A short essay about XWiki which can be understand by a Grandpa/Grandma, a high school student who plays a lot of basketball, or a waitress/waiter who works in a Mexican or Chinese restaurant. Success criteria:
- Link to blog post
- Original work and not plagiarism
Write a blog post about XWiki (Example of wording).
- Design a T-shirt for the XWiki community. We would give them to GSOC students and some Code-In students who did good work + more generally whenever we want to single out a member of the xwiki community who's doing a good job at participating. Success criteria:
- Original work
- Must look nice when printed
- Related to XWiki, should use the XWiki logo somewhere
Jira
- Cleanup jira issues
Misc
Contact us
You can ask for more information about the Code-In and interact with the community and mentors through the usual communication channels: mailing list or the chat channel.
Mentors
Current list of people who accepted to mentor GCI:
Vincent Massol
Thomas Mortagne
Pawan Pal
Marius Dumitru Florea
Clément Aubin
Shubham Jain
Eduard Moraru
Ecaterina Moraru (Valica)
Cristina Rosu
Alex Cotiugă
Guillaume Delhumeau
Denis Gervalle
Mentors Summit Participation
Year | Participants |
---|---|
2017 | Shubham Jain, |
Resources
Todos for Admins
- Create short videos of various features for which there is not yet others. Not repeatable task, we need to create one task for each feature ourself.
- Create an onboarding docker image with a full dev environment set up (maven, firefox, IDE, Git, settings.xml, etc)
- Idea: check this task from FOSSASIA as an example of a task with good level of information.
- Idea: check https://www.katacoda.com/learn for creating onboarding tutorials
Previous Google Code-In editions
This is our first participation!