A year and a half after the last version, six months of work, and about 370 commits, 0.9.0 is here with an impressive changelog.

Daemon Changes

  • Daemon is now fully threaded.
  • Daemon now has better support for multiple simultaneous connections.
  • Performance has been enhanced significantly.
  • Many bugfixes for instability and lost data.
  • Many features polished, some stripped away.
  • Config compatible with 0.8.x., should be able to just update and restart.
  • Protocol updated to 0.9 (incompatible with old clients).
  • Much faster initial startup.
  • Optional systemd user daemon config included.
  • New sync and sync-rsync plugins to enable file-based syncing with rsync to a remote server, or to a local filesystem (e.g. for outside NFS/sshfs/Dropbox support).
  • Improved reddit plugin performance.
  • Control over caching (which is disabled by default) for systems that have a good amount of memory, but potentially slow disks.
  • Fine grain plugin control.
  • Better manpage.

Curses Changes

  • Curses client is now fully threaded.
  • Performance has been enhanced significantly.
  • Command infrastructure overhauled.
  • Command line now supports tab completion.
  • :help (hit ‘?’ by default) now provides general help as well as command specific help and keybind listing
  • Command line now supports readline-enabled line editing.
  • Better support for 256 color config
  • :set to provide support for changing all manners of configuration for daemon and curses client
  • More natural support for tag categories (or folders).
  • New plugin: autocmd.py to automatically run certain commands on startup, potentially based on environment or other settings.
  • New plugin: reader-extras.py to add additional information to reader output (such as author, or feed specific content) as well as debug options to show all content included in the story.
  • New plugin: xterm-title.py to set the xterm title for canto-curses terminals.
  • New plugin: favorites.py, a proof of concept plugin for allowing the user to mark, group and change the appearance of certain items.
  • New plugin: smartlink.py adds a reworked :fetch command to use content sensitive handlers to open links based on the URL or the output of file. Useful for using media enclosures or reading PDFs or showing images in a dedicated program.
  • Fine grain plugin control.
  • Better manpage

This release does a lot to blow the dust out of some dark corners of canto, bring performance and stability up a few notches. However, it still needs a lot of testing and there are still miles to go on the usability front. At some point, you’ve got to rein in the changes.

The Plan

0.9.0 isn’t perfect, but within the parameters set by the previous versions it’s pretty good. Canto-curses still needs more work. The command line is much nicer, but it needs to be augmented with more graphical information. This is going to require more GUI work, which is beyond the scope of this release which already gutted and rebuilt a lot of the core infrastructure.

Some ideas that I’ve had for subsequent 0.9.x releases:

  • Indicators, or perhaps a status line for information like what categories you’re showing, or your filter settings, or notification of waiting updates or working status.
  • Graphical selectors for keying between filter settings etc.
  • 256-color default theme (I’m open to input on the current one too =P).
  • Shifting keybinds a bit.

In addition, now that threading has been accomplished, and the command system overhauled, and the protocol tweaked, it’s time to formalize some testing which is a hard requirement for an eventual 1.0.0.

For now though, bugfixes, bugfixes, bugfixes and a nice rest before any more feature work.

Updates to the apt repo will be up soon.

Leave a Reply

Your email address will not be published. Required fields are marked *