Mercurial on Py3k (GSoC 2009)

Alejandro Santos alejolp at alejolp.com
Wed Apr 1 20:35:15 CDT 2009


On Wed, Apr 1, 2009 at 1:16 PM, Dirkjan Ochtman <dirkjan at ochtman.nl> wrote:
>
> Hi Alejandro,
>

Hello Dirkjan!

> Are you still interested in participating in the Summer of Code with
> Mercurial? Be sure to come up with a proper project proposal and put it in
> the socghop.appspot.com administrative application.

Sure i am interested! I have a draft of my proposal. However, i am
having some trouble defining some clear foreseen difficulties on the
task. I attached a copy of it in this message.

> I hope you'll be working with us this summer!
>
> Cheers,
>
> Dirkjan
>

Ale.

1. What project do you want to tackle?

Mercurial on Py3k

2. What design choices will have to be made?

Python 3.0 try to push Unicode usage as much as possible. It also
makes a clear distinction on Byte Strings, Wide Char Strings, and Char
Strings. Py 2.x's current approach is to use single byte strings and
from there do the appropiate conversions.

Some design choices come to my mind:

a) Create some compatibility layer to make Hg work on Py3k (or Py2.x)?
b) Keep two separate independent branches and do the changes manually
on both of them?
c) Follow Python's PEP 3000 recommenden model for simultaneous support
of Py2.x and Py3k?

3. What difficulties do you foresee? How do you plan to manage them?

The main problem would be to correctly handle the repository binary
data at a Byte level, keeping compatibility of the data files using
either Python >= 3.0 or Python 2.x.

4. What intermediate milestones can be defined?

1st, Choose between the design choices, and write the propper documentation.
2nd, Run the 2to3 tool on Hg source and check if the source is
correctly converted (on a source-code syntax level)
3rd, Make the existing Hg test cases pass and run on Py3k
4th, Create tests to verify the compatibility between running Hg on
Py2.x and Py3k

5. Who are you?

I am a Computer Science (“Licenciatura en Informática”) student at the
National University of La Plata. I've been a Linux and Open Source
enthusiast for over ten years now. I like to code stuff in my spare
time, having learned C, C++, PHP and Python by reading, coding and
self motivation.

My interest in Python began a few years ago. The most interesting
aspect of Python is it's simplicity and elegance to code things, one
of my favourite being the list comprehensions to create a list in one
line of code.

I've been using Mercurial for tracking my personal projects and most
of the stuff for College. Until now I did not have the chance to use
Hg in it's full potential for team work, since most of the team work
of UNLP's courses are done using SVN.

I hope that by joining Mercurial's team i'll be able to gain
experience not only about Hg and distributed versioning control, and
not only on Python 3 programming, but also on how to work on a open
source ecosystem.



More information about the Mercurial-devel mailing list