Email: <renato AT SPAMFREE renatocunha DOT com>
IRC: trovao @ irc.freenode.net
Currently pursuing a master's degree in Computer Science. Have been working with python for about four years, mostly in hobby projects. Have become a mercurial user at the end of 2009.
I also have some experience with Open Source software development, gained by contributing code and documentation patches to some projects I use and by working on dropline GNOME.
Idea for GSoC 2010
My application's text is located at http://bitbucket.org/trovao/gsoc-2010/src/tip/application.rst.
As of 2010-06-08 I've ported the core C modules to python 3. The decisions taken when porting it were based on the idea that hg operates on bytes, and, thus, the new modules operate on and return bytes objects.
Journal (status updates - dates in ISO format)
(days in bold are meeting days)
- 2010-06-14: Using 2to3 and some hand-editing, I managed to get "hg version" running in py3k. Need to recheck the generated patch and find a strategy to solve those trouble spots.
- 2010-06-16: Worked on inotify extension py3k port. Figured out I may be developing RSI. :/
- 2010-06-17: Continued working on the inotify extension.
2010-06-18: Finished work on itotify's C extension and shelved it until 1.6 is released. Took a look at other projects' approaches in py3k porting (sqlalchemy & django)
2010-06-19: -- Weekend (even though I tried to work, it didn't quite work as expected) --
- 2010-06-20: -- Weekend (haven't even tried) --
- 2010-06-21: Wondered on how to help solving bugs for the upcoming 1.6 release. Been distracted all day trying to focus on writing a document to describe my approach to handle the "bytes vs. unicode" problem.
2010-06-22: Attended to GSoC meeting @ #mercurial;
2010-06-23: Implemented fixes to some py3k incompatibilities. Namely: tuple argument unpacking in churn.py and convert.py, removed the usage of the reduce function in the record extension, specifically defined an int division as such in revlog.py. More to come...
2010-06-24: Reviewed issue 2130 (I suppose it needs crew intervention) & helped some people at #mercurial. Got hg version to run without the need of HGPLAIN.
- 2010-06-25: Played with bytes strings conversion to get the revlog read. Figured out that bytes != str is a major source of headaches. Sent status update to the ML.
2010-06-28: Read the responses in the ML, discussed in IRC with some people on how to proceed. Started writing a 2to3 fixer to convert strings to bytes ("..." to b"..."). Removed some other DeprecationWarnings. To be honest, I believe the ones that are still left can't be helped (for the buffer warning I'm using the fake buffer defined in util.py).
2010-06-29: Got the first version of the fixer working. Wrote a custom hg2to3.py script to wrap lib2to3. Have to improve the script to not convert docstrings and other unrelated stuff. Also attended to the hg meeting.
- 2010-06-30: Implemented the first implementation with docstring co
2010-07-01: Can't really remember. Sorry. This definitely has to do with the warnings & the fixer, but I'm unable to specify it.
- 2010-07-02: Started working on issue 884.
- 2010-07-05: Detected the culprit of issue 884, and solved it. Submitted a patch to the ML, and have to fix it according to the comments by the reviewers.
2010-07-06: Attended to SoC meeting.
- 2010-07-07: Don't have the slightest idea of what I did. :/
- 2010-07-08: Ditto.
- 2010-07-09: Talked to the #python-dev guys about my fixers, got some ideas and discussed with mpm. Now trying to figure out how to handle b'foo %s' % b'bar'. Brodie suggested doing manual changes to get hg running and then try to convert the patch in a set of fixers.
- 2010-07-12: Terrible, terrible day. Done nothing worth mentioning. :/
2010-07-13: Attended to SoC meeting.
- 2010-07-14: Figured out on how to write a pattern matcher for transforming b'%s' % b'whatever' into formatter(b'%s', 'whatever')! \o/ (The rest of the fixer code is still needed.)
- 2010-07-15: Finished the fixer that converts from b'%s' % b'whatever' and also removed some bugs from the previous implementation.
- 2010-07-16: Implemented a formatter as a python function that converts the bytes to unicode, formats them and then reconverts to bytes upon return.
- 2010-07-19: Nothing.
2010-07-20: Attended to SoC meeting. Did some triage in the BTS (issue 885)
- 2010-07-21: Not much aside from IRC activity. Made a commitment to work on at least an issue per day (x)or participating in the ML.
- 2010-07-22: Tried to work on issue 2298. Worked on issue 2286.
- 2010-07-23: Worked on the compatibility layer of the port (named py3kcompat).
- 2010-07-26: Worked on issue 2062, suggested a documentation improvement. Talked to Brodie about documenting Unicode-only APIs to see if it is worth marking those as not convertible to bytes.