FreeGuide packaging and plugins

I couldn’t sleep last night, I think because my viva for my DPhil (PhD) is coming up on Monday. Work is going to be a struggle, but at least I got a chance to think about FreeGuide.

Alex is working on a plugins system (it’s sort-of-working in CVS) that will allow us to split the grabbers out from the main program, and allow people to innovate with new plugins without delving into all the code, which is quite large and a bit messy to say the least. Both of these things are really good, especially because my own time is very limited, so allowing people to work on plugins seperately means progress can continue without me being such a bottleneck.

However, handling plugins means we need to change the way FreeGuide is packaged. I’ve had some thoughts about how to do it, and I’ve put them together into an Impress presentation (or try the PDF). I’m looking for comments on this before we finalise the system. Once it’s established it will be hard to change, so I want to try and get it right.

If there are a couple more sleepless nights we might even see FreeGuide’s 0.10.x branch going stable … Alex has a few more bugs to fix, but we’re getting there.

What is going on with FreeGuide?

I thought I’d write a little bit about FreeGuide, since I’m planning to link this page off the FreeGuide page.

I’m the lead developer on FreeGuide, and having just started a new job (which so far is excellent) my free time is seriously limited, especially as my commute is 1.5 hours at the moment. I expect as I settle in I’ll find more time, and I also hope my commute may reduce in a few months. In the meantime I’ve had to fall back into maintenance mode, but fortunately there are several contributors stepping up to add long-requested features. The most prolific contributor has been Alex, who has been working on a number of excellent new features in our development branch. That branch started when Risto refactored the code into an MVC style and optimised the display to speed up massively operation with more than about 10 channels.

That branch has been around _far_ too long, as it’s a maintenance headache to look after 2 quite different branches, and it causes confusion when people send in patches against old code.

I really want to make the development branch reasonably bug-free and then declare it stable and retire the 0.8.x branch once and for all. I hope we can do that pretty soon.

Meanwhile, Alex is adding more features, the most notable of which is the plugins system. That will eventually allow you to download and install new listings grabbers without upgrading FreeGuide itself, and plug in loads of other things like exporters, recording schedulers, and loads more. Also excitingly soon to go in is the recording scheduler system developed by Reuel and integrated by Alex.

I want to make 0.10.x stable next release, then get those features in (probably under a 0.11.x name), stabilise them, go through the TODO and make a _short_ list of things to do before 1.0, do them and NOTHING else, and then finally release 1.0. It would be great if the plugin system turned out to be flexible enough to handle all the new thigns people suggest, but if not I plan to keep the 1.0.x branch stable long term, and allow further changes in a 1.1 branch.

The features I think are needed for 1.0 are:

  • Recording (through a TV card) while FG is running
  • Scheduling recording
  • Coloured favourites
  • A manual and help

Hopefully not a lot else…