Welcome to the newest version of Canto, 0.8.0. It’s the culmination of the rewrite kicked off almost two years ago and while it doesn’t have the depth of testing that 0.7.x and prior versions have the codebase is more sound and featureful for both users and myself (sole developer).
So what’s different?
Let me count the ways from major to minor
- Server client separation in line with the Unix Philosophy
- Managed configuration done through the client, no config file editing
- Built-in command line in canto-curses
- Everything is entirely pluggable
- Python 3 codebase, instead of Python 2
- Updates reflected immediately
- Interface scales better in the 10k+ item range
- Interface settings default to persistent
- Interface is sleeker
- Vastly improved debug logging
- Cleaner feed storage
- Ability connect to the daemon over the network
I can get into greater detail, but the takeaway here is that the re-engineered canto follows a much saner design. It was a hard decision to rewrite the original codebase, but in the loss of time and effort will be made up over the next few years with the ease of extension and the facilities at my disposal to debug issues that in the old codebase were nightmarish.
The new version of canto is very much informed by user feedback as well. I can’t tell you how many times someone came into the IRC channel and just wanted something simple like the ability to toggle links being shown in the reader persistently. Thus now every aspect of the display is persistently configured without the need to add obscure Python to your configuration file.
Meanwhile, none of the flexibility of the old client is gone. In fact, it’s been vastly improved. The entirety of both canto-daemon and canto-curses are plugin friendly. In essence, standard users that want basic functionality are taken care of without ever opening an editor while power users can change virtually any component of canto on the fly by designing plugins that anyone can then drop into their configuration directory and take advantage of.
There are going to be bugs. Of course. There are places that need polish (creating plugins or new themes are totally undocumented, tag folders are a bit clunky) but the core engine is there, sleek and efficient. I need users to push it harder and differently than I do. Developers make bad testers. Go forth and bug report!