2008-11-12 20:48:58 (1 month, 3 weeks ago)
Well, the current tree in git is definitely starting to look like a major update. I don't know how it happened. I think it's just that a number of minor updates brought a number of major features within easy lunchtime striking distance.
What's already there
canto-fetchis now threaded, and much faster- Both
cantoandcanto-fetchare using better locks,canto-fetch's locks are much finer too. - canto's reader output has been overhauled from a simple set of regexes to an actual HTML parser (thanks to Python's wonderful sgmllib). Things like blockquotes and lists are beautiful and the formatting of feeds is much less... haphazard. (This was inspired by Aaron Swartz's html2text.py, but is more Canto specific)
- A new message / input bar is now a permanent feature of the interface, replacing the floating info bars. In addition, the input has typical Emacs-y bindings (like C-g to exit, movement, etc). This is thanks to the builting Python curses.textpad Textbox class.
Interestingly enough, all of this has been added and (as of this writing) the new version is about 50 lines shorter than 0.5.7.
What needs to be completed
- The input bar is going to be turned into a minimal command interface. I'm not sure yet whether this is going to be a user-friendly type deal or more of a debugging tool (depending on how invasive it is).
- There will be an option to have a specified, permanent reader window taking up
n-lines of the screen. - Some rendering bugs have been introduced and need to be fixed
In addition, the 0.6.0 release will be branched, one version for Python 2.5 and another for 2.6/3.0. There shouldn't be too many places where the two should be incompatible as is, but I'd like to use some of the nice 3.0 semantics for stuff like the aforementioned file locking. Anything that can be handling with imports from __future__ will be "backported" to the main branch.
EDIT: Yet another thing is that I'd like to port the website over to a flat markdown like system (like I keep my blog, so that the markdown content can be easily packaged with the source and tracked in Git so that every time I do a major release like this I don't have to spend two days updating the documentation after I make the release. It's retarded.