Differences between revisions 4 and 5
Revision 4 as of 2011-04-04 10:12:25
Size: 3788
Editor: IdanKamara
Comment:
Revision 5 as of 2011-04-04 10:16:50
Size: 3803
Editor: IdanKamara
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
= Project Proposal = = Command Server Project Proposal =

Command Server Project Proposal

  • Name: Idan Kamara

  • Contact: idankk86@gmail.com, idank on #mercurial

  • Background: I'm a Computer Science and Mathematics undergraduate in the Open University of Israel.

    My first meeting with Mercurial was in my previous work place. At the time I started working there, the development teams were using a (god forsaken) source control called StarTeam. I quickly grew tired of it and started looking for alternatives to take its place. Among the top DVCSs at the time, my absolute favorite was Mercurial due to its user-friendly approach, low learning curve, cross platform and a very open and helpful community.
    Since then I've been following Mercurial looking for opportunities to give back. GSoC looks like a great one.

    Most of my programming experience is in C++, Iv'e also done some Java and C# here and there. I've been using Python for a lot of small tasks the past couple of years but I've always wanted to see how a real application is written using it and in my opinion Mercurial is an excellent example of one.

  • Project title Command Server

  • Synopsis: Mercurial's primary stable API is its command line interface. Creating a tool and library to communicate with this API over a pipe or a socket will help improve performance for third-party tools that use Mercurial.

  • Benefits to Mercurial

    • As stated above, improving performance (saving process startup time, cache the repository object).
      • It can also benefit regular users by having a small, fast client talk to the server directly.
    • Easier integration with Mercurial for programming languages other than Python.
    • Allow a remote repository to be queried without needing a local clone.
  • Deliverables:

    • A functioning server.
    • A sample client.
    • Make the test suite pass while using the server rather than talking to hg directly.
  • Project details:

  • Project schedule:

    April 26th - May 22rd

    Familiarize myself with Mercurials command-line interface.
    Discuss with my mentor and the community to set up some goals for how the finished project should look like.

    May 23rd - July 10th

    Finish the design after community comments and write it in a wiki page.
    Code the command server.
    Do necessary Mercurial internal modifications to support performance improvements.

    July 11th - July 15th

    Mid-term evaluations. Continue coding.

    July 16th - August 15th

    Finish last tasks in the command server.
    Write test cases.
    Integrate the command server with the existing test suite.

    August 30th

    Project ends. Submit code to Google.

  • Exams and other commitments: Due to summer vacations not overlapping with the US, I will still be in the middle of a semester. I'm only taking one course so I don't think it'll hamper my ability to successfully finish the project.

  • Other summer plans: I also plan on taking a 10 day vacation in early May. Since coding begins May 23rd I plan on putting more time before I go on vacation so I don't fall behind.

  • Post GSoC plans: I will gladly continue my involvement in Mercurial after GSoC. I've been following several open source projects through the years but never really got involved in any. I think Mercurial is a great opportunity for me due to my growing interest in Python and in open source software in general.

SummerOfCode/2011/IdanKamara (last edited 2013-08-29 12:34:47 by AugieFackler)