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!