Size: 2914
Comment: mention good examples of graph UI
|
Size: 5389
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
= GSoC Project Ideas for 2016 = | = GSoC Student Guidance and Project Ideas for 2016 = |
Line 5: | Line 5: |
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. /!\ All potential GSoC candidates should visit our [[SummerOfCode/2016]] page, which contains more information on everything GSoC for this year. |
/!\ Please see also our [[SummerOfCode/2016]] page, which contains additional information for GSoC for this year. |
Line 11: | Line 9: |
== Please add GSoC ideas here == | == About Mercurial == * '''What is Mercurial?''' Mercurial is a free, distributed source control management tool. It efficiently handles projects of any size and offers an easy and intuitive interface. * '''Why is it interesting?''' Besides the extremely good reasons just above, Mercurial is also interesting for many other reasons, including: a great extension system, excellent backwards compatibility, excellent documentation, ... Specifically for students, it's interesting because it offers a range of topics to work on from low-level speed optimizations all the way up to a web interface. * '''Who uses it?''' Mercurial is used by individuals, organizations and companies all over the world. The same goes for contributors: in the open source community, a well-known organization using Mercurial is the Mozilla project, but companies like Facebook, Google and many others also contribute to Mercurial. == Contacting the Mercurial developers == The following channels are used by default for communication. Please use them to introduce yourself! * IRC: many developers chat and discuss planned changes to Mercurial here. Keep in mind that most developers are in US timezones, so it might take quite a bit of time (hours) to get a response outside of those timezones! * The developer [[MailingLists#The_Mercurial-Devel_list|mailing list]]: this list is mostly used to submit patches and discuss them. == Getting started/Candidate checklist == All candidates should do the following ''before'' completing their application: 1. Check the [[SummerOfCode/Ideas2016]] page 1. [[http://mercurial.selenic.com/wiki/SummerOfCode/Ideas2016?action=subscribe|Subscribe to this page]] to get email when it changes 1. Introduce yourself on [[IRC]] 1. Introduce yourself on the [[MailingLists#The_Mercurial-Devel_list|mailing list]] 1. Read the ContributingChanges pages. 1. Look at the [[http://bz.selenic.com/buglist.cgi?quicksearch=keyword:easy|easy bugs list]] and contribute a patch. Feel free to ask questions on IRC or the mailing list while getting started! == Things we look for in a candidate == * Demonstrates understanding of our tools, procedures, and source code by successfully submitting patches (see last step above) * Participates in the community, especially via IRC * Makes a commitment to work on GSoC full-time * Gives an indication that she or he enjoys working with Mercurial enough to become a long-term contributor, after GSoC is over. == 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. |
GSoC Student Guidance and Project Ideas for 2016
Please see also our SummerOfCode/2016 page, which contains additional information for GSoC for this year.
Contents
1. About Mercurial
* What is Mercurial? Mercurial is a free, distributed source control management tool. It efficiently handles projects of any size and offers an easy and intuitive interface. * Why is it interesting? Besides the extremely good reasons just above, Mercurial is also interesting for many other reasons, including: a great extension system, excellent backwards compatibility, excellent documentation, ... Specifically for students, it's interesting because it offers a range of topics to work on from low-level speed optimizations all the way up to a web interface. * Who uses it? Mercurial is used by individuals, organizations and companies all over the world. The same goes for contributors: in the open source community, a well-known organization using Mercurial is the Mozilla project, but companies like Facebook, Google and many others also contribute to Mercurial.
2. Contacting the Mercurial developers
The following channels are used by default for communication. Please use them to introduce yourself!
* IRC: many developers chat and discuss planned changes to Mercurial here. Keep in mind that most developers are in US timezones, so it might take quite a bit of time (hours) to get a response outside of those timezones! * The developer mailing list: this list is mostly used to submit patches and discuss them.
3. Getting started/Candidate checklist
All candidates should do the following before completing their application:
Check the SummerOfCode/Ideas2016 page
Subscribe to this page to get email when it changes
Introduce yourself on IRC
Introduce yourself on the mailing list
Read the ContributingChanges pages.
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
- Demonstrates understanding of our tools, procedures, and source code by successfully submitting patches (see last step above)
- Participates in the community, especially via IRC
- Makes a commitment to work on GSoC full-time
- Gives an indication that she or he enjoys working with Mercurial enough to become a long-term contributor, after GSoC is over.
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 description: This is an example project. Please add a clear description with some details about the idea.
Skills: Specific programming languages, domain-specific knowledge... For example: Python, network programming
Difficulty level: Easy/Intermediate/Difficult
Related reading/Links: Useful links to wiki pages, specific relevant mailing list discussions or patches, ...
Further details: Additional detail about the idea
Potential mentors: mentors likely to be involved with this project
5.2. Improved handling of merge conflicts
Project description:
- Improve the user-friendliness of merge conflicts. Currently, a number of merge conflicts are not handled in a clean way. Rather than present the user with a number of ways to handle a conflict, Mercurial simply aborts. One example of this is directory/file conflicts. This is the case where on one side of the merge, a file is created. On the other side of the merge, a directory with the same name is created. During a merge, an obscure error pops up. This should be handled properly, by allowing the user to choose how to handle the conflict.
Skills: Python
Difficulty level: Difficult (?)
Related reading/Links: http://bz.mercurial-scm.org/show_bug.cgi?id=29
Further details: MergePlan contains more details about the exact problem and a possible path forward. Additionally, the filemerge code is most likely to be relevant.
Potential mentors: ?
5.3. Modernize hgweb's graph rendering
Project description: Modernize hgweb's graph rendering
Skills: Python, JavaScript
Difficulty level: Intermediate/Difficult
Related reading/Links: https://bz.mercurial-scm.org/show_bug.cgi?id=4020 https://bz.mercurial-scm.org/show_bug.cgi?id=2570 (not limited to these)
Further details: Current graph rendering code in hgweb is pretty clunky and not very extensible or efficient. We could update it to today's standards, include more things (e.g. phases, hidden changesets) and render graph more efficiently and in a nicer-looking way. We could borrow some ideas for graph from TortoiseHg, BitBucket and Kiln.
Potential mentors: ?
6. Other ideas?
Come talk to us on IRC.