Differences between revisions 1 and 6 (spanning 5 versions)
Revision 1 as of 2011-04-01 23:05:48
Size: 2783
Editor: IdanKamara
Comment: not finished yet
Revision 6 as of 2011-04-04 10:19:15
Size: 3808
Editor: IdanKamara
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
= Project Proposal = = Command Server Project Proposal =
Line 7: Line 7:
 * '''Background''': I'm a Computer Science and Mathematics undergraduate in the Open University of Israel. <<BR>><<BR>>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. <<BR>>Since then I've been following Mercurial looking for opportunities to give back. GSoC looks like a great one. <<BR>><<BR>>Most of my programming experience is in C++. 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.<<BR>>  * '''Background''': I'm a Computer Science and Mathematics undergraduate in the Open University of Israel. <<BR>><<BR>>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. <<BR>>Since then I've been following Mercurial looking for opportunities to give back. GSoC looks like a great one. <<BR>><<BR>>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.<<BR>>
Line 11: Line 11:
  * As stated above, improving performance.   * As stated above, improving performance (saving process startup time, cache the repository object).
Line 17: Line 17:
  * A sample client that communicates with the server.   * A sample client.
Line 19: Line 19:
 * '''Project details''': soon to come.
 * '''Project schedule''': soon to come.
 * '''Project details''': todo.
 * '''Project schedule''':
 ||<style="vertical-align: top; text-align: left;">April 26th - May 22rd || Familiarize myself with Mercurials command-line interface. <<BR>>Discuss with my mentor and the community to set up some goals for how the finished project should look like. ||
 ||<style="vertical-align: top; text-align: left;">May 23rd - July 10th || Finish the design after community comments and write it in a wiki page.<<BR>>Code the command server.<<BR>>Do necessary Mercurial internal modifications to support performance improvements. ||
 ||<style="vertical-align: top; text-align: left;">July 11th - July 15th || Mid-term evaluations. Continue coding. ||
 ||<style="vertical-align: top; text-align: left;">July 16th - August 15th || Finish last tasks in the command server.<<BR>>Write test cases.<<BR>>Integrate the command server with the existing test suite. ||
 ||<style="vertical-align: top; text-align: left;">August 30th || Project ends. Submit code to Google. ||

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: todo.

  • 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)