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. Add terse option to status

Based on previous work by smf, add the ability to abbreviate the output of status by only listing the parent directory for multiple files.

Future work would be to improve the performance of hg status with this option by preventing Mercurial from descending into those directories at all.

5.3.1. Project properties

5.4. Release notes extension

Its based on release notes extension hacked up Gregory Szorc. This is about tagging commits with a release note area which can be used to produce release notes and can be integrated with existing commands to improve UX. Existing RST parser in use is designed to just parse help files - could limit to the common subset of RST that maps to wiki markup, and script that output. The project will be about polishing this extension so that it can be shipped with core and can help other organisations in producing release notes. Also adding features like linking hgweb to release notes, showing notes for commits you have pulled using hg pull and more.

5.4.1. Project properties

6. Other ideas?

Come talk to us on IRC.


SummerOfCode/Ideas2017 (last edited 2017-03-19 04:29:23 by PulkitGoyal)