GSoC Student Guidance and Project Ideas for 2017

/!\ Please see also our SummerOfCode/2017 page, which contains additional information for GSoC for this year.

1. About Mercurial

2. Contacting the Mercurial developers

The following channels are used by default for communication. Please use them to introduce yourself!

3. Getting started/Candidate checklist

All candidates should do the following before completing their application:

  1. Check the SummerOfCode/Ideas2017 page

  2. Subscribe to this page to get email when it changes

  3. Introduce yourself on IRC

  4. Introduce yourself on the mailing list

  5. Read the ContributingChanges pages.

  6. Look at the easy bugs list and contribute a patch. Feel free to ask questions on IRC or the mailing list while getting started!

  7. Follow the steps to apply: check the application checklis and submit your application.

4. Things we look for in a candidate

5. GSoC ideas

Here are some ideas of possible 2017 summer project ideas for Mercurial. Your own ideas are welcome. You may decide to work on these ideas or use them as a starting point for your own.

5.1. Example Project

5.2. Improve commit graph in hgweb

5.2.1. Project description

Current graph rendering code in hgweb is pretty clunky and not very extensible or efficient. We could update it to use hgweb's own JSON API, to be faster and smarter, to show more things and to look nicer. You can see an example of the current hgweb interface at the Mercurial's main repo. This task can vary a lot depending on your own preferences, as you can do quite a few different subtasks.

More ideas and visual decisions could be borrowed from TortoiseHg, Bitbucket and Kiln.

5.2.2. Project properties

5.3. Implement templating for more commands

5.3.1. Project description

The hg log subcommand has a flexible templating language. Its flexibility allows creating custom commands or providing guaranteed output for tools. One example is using hg log --template "{node}\n" to see the full SHA-1 hash of a changeset. Another example is using templates (in combination with other features like revsets) to create useful and completely customized output for all changesets currently being added by a developer/user.

Currently, the --template parameter is fully supported only by the log command, but many others could benefit from using the template language as well. This could be very varied, for example adding full template support to summary or identify. Commands like bookmarks and blame already have an experimental --template argument and can use the template language, but they have a very limited set of template keywords.

This proposal consists of two major parts:

5.3.2. Project properties

6. Other ideas?

Come talk to us on IRC.


CategoryGsoc