GSoC Student Guidance and Project Ideas for 2016

/!\ Please see also our SummerOfCode/2016 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/Ideas2016 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!

4. Things we look for in a candidate

5. GSoC ideas

Here are some ideas of possible 2016 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. Moving toward Python3

5.2.1. Project description

Mercurial currently only supports Python 2. We'd like to improve Python3 support, but that will require a lot of work. A large amount of the work is relatively simple. Some of the first tasks needed will be:

Further (also more difficult) tasks are listed on the Python3 page, but the above will most likely take up quite a bit of time already.

5.2.2. Project properties

5.3. Improve commit graph in hgweb

5.3.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.3.2. Project properties

5.4. Implement templating for more commands

5.4.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 supported only by the hg log command, but many others could benefit from using the template language as well. This could be very varied, for example adding template supports to hg bookmarks or hg blame.

This proposal consists of two major parts:

5.4.2. Project properties

5.5. Allow largefiles to be at a different location

6. Other ideas?

Come talk to us on IRC.


CategoryGsoc