XWiki @ Google Code-In 2017

Version 71.2 by Thomas Mortagne on 2017/11/17 14:43
Warning
For security reasons, the document is displayed in restricted mode as it is not the current version. There may be differences and errors due to this.

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:

Failed to execute the [velocity] macro. Cause: [The execution of the [velocity] script macro is not allowed in [dev:GoogleCodeIn.WebHome]. Check the rights of its last author or the parameters if it's rendered from another script.]. Click on this message for details.

Non-repeatable Tasks

List of non-repeatable example tasks from our issue tracker.

Repeatable Tasks

Setup

  • accept 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.
  • accept 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
  • accept Debug Java XWiki code
  • accept 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

  • acceptFix 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
  • acceptFind 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
  • accept 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 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
  • accept Test XWiki and report a valid bug/improvement on the latest version
  • accept 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

  • accept Convert 1 unit test written in JMock, into a Mockito test using XWiki's MockitoComponentMockingRule or MockitoComponentManagerRule. Success criteria:
  • accept 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).
  • accept 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
  • accept Remove 1 coding violation from https://sonarcloud.io/organizations/xwiki/issues?resolved=false (commons or rendering). Success criteria:
  • 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
  • accept In 1 UI test replace all setup code which use the UI by REST calls
    • The test is still passing
    • Pull Request
  • accept Design and publish a new color theme extension for XWiki
  • accept Map and publish a new icon theme extension for XWiki
  • New Confluence macro converter
  • New type converter
  • Fix any Jira issue listed on https://jira.xwiki.org
  • Fix README files
  • Implement a new APPWM property type

Outreach

  • Design a new logo for an extension found on Main. 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
  • accept 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:

Failed to execute the [velocity] macro. Cause: [The execution of the [velocity] script macro is not allowed in [dev:GoogleCodeIn.WebHome]. Check the rights of its last author or the parameters if it's rendered from another script.]. Click on this message for details.

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!

Get Connected